mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Support lang pseudo class
This commit is contained in:
parent
050d9d9097
commit
7456bcf02b
63 changed files with 250 additions and 238 deletions
|
@ -354,6 +354,7 @@ pub trait LayoutElementHelpers {
|
||||||
fn style_attribute(&self) -> *const Option<Arc<RwLock<PropertyDeclarationBlock>>>;
|
fn style_attribute(&self) -> *const Option<Arc<RwLock<PropertyDeclarationBlock>>>;
|
||||||
fn local_name(&self) -> &LocalName;
|
fn local_name(&self) -> &LocalName;
|
||||||
fn namespace(&self) -> &Namespace;
|
fn namespace(&self) -> &Namespace;
|
||||||
|
fn get_lang_for_layout(&self) -> String;
|
||||||
fn get_checked_state_for_layout(&self) -> bool;
|
fn get_checked_state_for_layout(&self) -> bool;
|
||||||
fn get_indeterminate_state_for_layout(&self) -> bool;
|
fn get_indeterminate_state_for_layout(&self) -> bool;
|
||||||
fn get_state_for_layout(&self) -> ElementState;
|
fn get_state_for_layout(&self) -> ElementState;
|
||||||
|
@ -693,6 +694,30 @@ impl LayoutElementHelpers for LayoutJS<Element> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(unsafe_code)]
|
||||||
|
fn get_lang_for_layout(&self) -> String {
|
||||||
|
unsafe {
|
||||||
|
let mut current_node = Some(self.upcast::<Node>());
|
||||||
|
while let Some(node) = current_node {
|
||||||
|
current_node = node.parent_node_ref();
|
||||||
|
match node.downcast::<Element>().map(|el| el.unsafe_get()) {
|
||||||
|
Some(elem) => {
|
||||||
|
if let Some(attr) = (*elem).get_attr_val_for_layout(&ns!(xml), &local_name!("lang")) {
|
||||||
|
return attr.to_owned();
|
||||||
|
}
|
||||||
|
if let Some(attr) = (*elem).get_attr_val_for_layout(&ns!(), &local_name!("lang")) {
|
||||||
|
return attr.to_owned();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None => continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TODO: Check meta tags for a pragma-set default language
|
||||||
|
// TODO: Check HTTP Content-Language header
|
||||||
|
String::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
fn get_checked_state_for_layout(&self) -> bool {
|
fn get_checked_state_for_layout(&self) -> bool {
|
||||||
|
@ -2372,6 +2397,10 @@ impl<'a> ::selectors::Element for Root<Element> {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// FIXME(#15746): This is wrong, we need to instead use extended filtering as per RFC4647
|
||||||
|
// https://tools.ietf.org/html/rfc4647#section-3.3.2
|
||||||
|
NonTSPseudoClass::Lang(ref lang) => lang.eq_ignore_ascii_case(&self.get_lang()),
|
||||||
|
|
||||||
NonTSPseudoClass::ReadOnly =>
|
NonTSPseudoClass::ReadOnly =>
|
||||||
!Element::state(self).contains(pseudo_class.state_flag()),
|
!Element::state(self).contains(pseudo_class.state_flag()),
|
||||||
|
|
||||||
|
@ -2576,6 +2605,19 @@ impl Element {
|
||||||
self.set_click_in_progress(false);
|
self.set_click_in_progress(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://html.spec.whatwg.org/multipage/#language
|
||||||
|
pub fn get_lang(&self) -> String {
|
||||||
|
self.upcast::<Node>().inclusive_ancestors().filter_map(|node| {
|
||||||
|
node.downcast::<Element>().and_then(|el| {
|
||||||
|
el.get_attribute(&ns!(xml), &local_name!("lang")).or_else(|| {
|
||||||
|
el.get_attribute(&ns!(), &local_name!("lang"))
|
||||||
|
}).map(|attr| String::from(attr.Value()))
|
||||||
|
})
|
||||||
|
// TODO: Check meta tags for a pragma-set default language
|
||||||
|
// TODO: Check HTTP Content-Language header
|
||||||
|
}).next().unwrap_or(String::new())
|
||||||
|
}
|
||||||
|
|
||||||
pub fn state(&self) -> ElementState {
|
pub fn state(&self) -> ElementState {
|
||||||
self.state.get()
|
self.state.get()
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,7 @@ use selectors::matching::ElementSelectorFlags;
|
||||||
use selectors::parser::{AttrSelector, NamespaceConstraint};
|
use selectors::parser::{AttrSelector, NamespaceConstraint};
|
||||||
use servo_atoms::Atom;
|
use servo_atoms::Atom;
|
||||||
use servo_url::ServoUrl;
|
use servo_url::ServoUrl;
|
||||||
|
use std::ascii::AsciiExt;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::fmt::Debug;
|
use std::fmt::Debug;
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
|
@ -618,6 +619,10 @@ impl<'le> ::selectors::Element for ServoLayoutElement<'le> {
|
||||||
},
|
},
|
||||||
NonTSPseudoClass::Visited => false,
|
NonTSPseudoClass::Visited => false,
|
||||||
|
|
||||||
|
// FIXME(#15746): This is wrong, we need to instead use extended filtering as per RFC4647
|
||||||
|
// https://tools.ietf.org/html/rfc4647#section-3.3.2
|
||||||
|
NonTSPseudoClass::Lang(ref lang) => lang.eq_ignore_ascii_case(&self.element.get_lang_for_layout()),
|
||||||
|
|
||||||
NonTSPseudoClass::ServoNonZeroBorder => unsafe {
|
NonTSPseudoClass::ServoNonZeroBorder => unsafe {
|
||||||
match (*self.element.unsafe_get()).get_attr_for_layout(&ns!(), &local_name!("border")) {
|
match (*self.element.unsafe_get()).get_attr_for_layout(&ns!(), &local_name!("border")) {
|
||||||
None | Some(&AttrValue::UInt(_, 0)) => false,
|
None | Some(&AttrValue::UInt(_, 0)) => false,
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
use {Atom, Prefix, Namespace, LocalName};
|
use {Atom, Prefix, Namespace, LocalName};
|
||||||
use attr::{AttrIdentifier, AttrValue};
|
use attr::{AttrIdentifier, AttrValue};
|
||||||
use cssparser::ToCss;
|
use cssparser::{Parser as CssParser, ToCss, serialize_identifier};
|
||||||
use element_state::ElementState;
|
use element_state::ElementState;
|
||||||
use restyle_hints::ElementSnapshot;
|
use restyle_hints::ElementSnapshot;
|
||||||
use selector_parser::{ElementExt, PseudoElementCascadeType, SelectorParser};
|
use selector_parser::{ElementExt, PseudoElementCascadeType, SelectorParser};
|
||||||
|
@ -100,44 +100,52 @@ impl PseudoElement {
|
||||||
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
||||||
#[allow(missing_docs)]
|
#[allow(missing_docs)]
|
||||||
pub enum NonTSPseudoClass {
|
pub enum NonTSPseudoClass {
|
||||||
AnyLink,
|
|
||||||
Link,
|
|
||||||
Visited,
|
|
||||||
Active,
|
Active,
|
||||||
|
AnyLink,
|
||||||
|
Checked,
|
||||||
|
Disabled,
|
||||||
|
Enabled,
|
||||||
Focus,
|
Focus,
|
||||||
Fullscreen,
|
Fullscreen,
|
||||||
Hover,
|
Hover,
|
||||||
Enabled,
|
|
||||||
Disabled,
|
|
||||||
Checked,
|
|
||||||
Indeterminate,
|
Indeterminate,
|
||||||
ServoNonZeroBorder,
|
Lang(Box<str>),
|
||||||
|
Link,
|
||||||
|
PlaceholderShown,
|
||||||
ReadWrite,
|
ReadWrite,
|
||||||
ReadOnly,
|
ReadOnly,
|
||||||
PlaceholderShown,
|
ServoNonZeroBorder,
|
||||||
Target,
|
Target,
|
||||||
|
Visited,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ToCss for NonTSPseudoClass {
|
impl ToCss for NonTSPseudoClass {
|
||||||
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
|
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
|
||||||
use self::NonTSPseudoClass::*;
|
use self::NonTSPseudoClass::*;
|
||||||
|
if let Lang(ref lang) = *self {
|
||||||
|
dest.write_str(":lang(")?;
|
||||||
|
serialize_identifier(lang, dest)?;
|
||||||
|
return dest.write_str(")");
|
||||||
|
}
|
||||||
|
|
||||||
dest.write_str(match *self {
|
dest.write_str(match *self {
|
||||||
AnyLink => ":any-link",
|
|
||||||
Link => ":link",
|
|
||||||
Visited => ":visited",
|
|
||||||
Active => ":active",
|
Active => ":active",
|
||||||
|
AnyLink => ":any-link",
|
||||||
|
Checked => ":checked",
|
||||||
|
Disabled => ":disabled",
|
||||||
|
Enabled => ":enabled",
|
||||||
Focus => ":focus",
|
Focus => ":focus",
|
||||||
Fullscreen => ":fullscreen",
|
Fullscreen => ":fullscreen",
|
||||||
Hover => ":hover",
|
Hover => ":hover",
|
||||||
Enabled => ":enabled",
|
|
||||||
Disabled => ":disabled",
|
|
||||||
Checked => ":checked",
|
|
||||||
Indeterminate => ":indeterminate",
|
Indeterminate => ":indeterminate",
|
||||||
|
Lang(_) => unreachable!(),
|
||||||
|
Link => ":link",
|
||||||
|
PlaceholderShown => ":placeholder-shown",
|
||||||
ReadWrite => ":read-write",
|
ReadWrite => ":read-write",
|
||||||
ReadOnly => ":read-only",
|
ReadOnly => ":read-only",
|
||||||
PlaceholderShown => ":placeholder-shown",
|
|
||||||
Target => ":target",
|
|
||||||
ServoNonZeroBorder => ":-servo-nonzero-border",
|
ServoNonZeroBorder => ":-servo-nonzero-border",
|
||||||
|
Target => ":target",
|
||||||
|
Visited => ":visited",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,6 +170,7 @@ impl NonTSPseudoClass {
|
||||||
Target => IN_TARGET_STATE,
|
Target => IN_TARGET_STATE,
|
||||||
|
|
||||||
AnyLink |
|
AnyLink |
|
||||||
|
Lang(_) |
|
||||||
Link |
|
Link |
|
||||||
Visited |
|
Visited |
|
||||||
ServoNonZeroBorder => ElementState::empty(),
|
ServoNonZeroBorder => ElementState::empty(),
|
||||||
|
@ -204,21 +213,21 @@ impl<'a> ::selectors::Parser for SelectorParser<'a> {
|
||||||
fn parse_non_ts_pseudo_class(&self, name: Cow<str>) -> Result<NonTSPseudoClass, ()> {
|
fn parse_non_ts_pseudo_class(&self, name: Cow<str>) -> Result<NonTSPseudoClass, ()> {
|
||||||
use self::NonTSPseudoClass::*;
|
use self::NonTSPseudoClass::*;
|
||||||
let pseudo_class = match_ignore_ascii_case! { &name,
|
let pseudo_class = match_ignore_ascii_case! { &name,
|
||||||
"any-link" => AnyLink,
|
|
||||||
"link" => Link,
|
|
||||||
"visited" => Visited,
|
|
||||||
"active" => Active,
|
"active" => Active,
|
||||||
|
"any-link" => AnyLink,
|
||||||
|
"checked" => Checked,
|
||||||
|
"disabled" => Disabled,
|
||||||
|
"enabled" => Enabled,
|
||||||
"focus" => Focus,
|
"focus" => Focus,
|
||||||
"fullscreen" => Fullscreen,
|
"fullscreen" => Fullscreen,
|
||||||
"hover" => Hover,
|
"hover" => Hover,
|
||||||
"enabled" => Enabled,
|
|
||||||
"disabled" => Disabled,
|
|
||||||
"checked" => Checked,
|
|
||||||
"indeterminate" => Indeterminate,
|
"indeterminate" => Indeterminate,
|
||||||
|
"link" => Link,
|
||||||
|
"placeholder-shown" => PlaceholderShown,
|
||||||
"read-write" => ReadWrite,
|
"read-write" => ReadWrite,
|
||||||
"read-only" => ReadOnly,
|
"read-only" => ReadOnly,
|
||||||
"placeholder-shown" => PlaceholderShown,
|
|
||||||
"target" => Target,
|
"target" => Target,
|
||||||
|
"visited" => Visited,
|
||||||
"-servo-nonzero-border" => {
|
"-servo-nonzero-border" => {
|
||||||
if !self.in_user_agent_stylesheet() {
|
if !self.in_user_agent_stylesheet() {
|
||||||
return Err(());
|
return Err(());
|
||||||
|
@ -231,6 +240,19 @@ impl<'a> ::selectors::Parser for SelectorParser<'a> {
|
||||||
Ok(pseudo_class)
|
Ok(pseudo_class)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn parse_non_ts_functional_pseudo_class(&self,
|
||||||
|
name: Cow<str>,
|
||||||
|
parser: &mut CssParser)
|
||||||
|
-> Result<NonTSPseudoClass, ()> {
|
||||||
|
use self::NonTSPseudoClass::*;
|
||||||
|
let pseudo_class = match_ignore_ascii_case!{ &name,
|
||||||
|
"lang" => Lang(String::from(try!(parser.expect_ident_or_string())).into_boxed_str()),
|
||||||
|
_ => return Err(())
|
||||||
|
};
|
||||||
|
|
||||||
|
Ok(pseudo_class)
|
||||||
|
}
|
||||||
|
|
||||||
fn parse_pseudo_element(&self, name: Cow<str>) -> Result<PseudoElement, ()> {
|
fn parse_pseudo_element(&self, name: Cow<str>) -> Result<PseudoElement, ()> {
|
||||||
use self::PseudoElement::*;
|
use self::PseudoElement::*;
|
||||||
let pseudo_element = match_ignore_ascii_case! { &name,
|
let pseudo_element = match_ignore_ascii_case! { &name,
|
||||||
|
|
|
@ -149,3 +149,6 @@ skip: true
|
||||||
skip: true
|
skip: true
|
||||||
[xhtml1print]
|
[xhtml1print]
|
||||||
skip: true
|
skip: true
|
||||||
|
|
||||||
|
[selectors-3_dev]
|
||||||
|
skip: false
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-005.htm]
|
||||||
|
type: testharness
|
||||||
|
[A :lang value will match a lang attribute value when the latter contains additional subtags.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-009.htm]
|
||||||
|
type: testharness
|
||||||
|
[A :lang value with a multiple subtags will match a lang attribute value with multiple subtags as long as the first part is the same.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-024.htm]
|
||||||
|
type: testharness
|
||||||
|
[A lang|= value will match a lang attribute value regardless of case differences.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-035.htm]
|
||||||
|
type: testharness
|
||||||
|
[A lang|= value will match a lang attribute value regardless of case differences in the script tag.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-044.htm]
|
||||||
|
type: testharness
|
||||||
|
[A lang= value will match a lang attribute value regardless of case differences.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-055.htm]
|
||||||
|
type: testharness
|
||||||
|
[A lang= value will match a lang attribute value regardless of case differences in the script tag.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-letter-001.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-letter-002.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-letter-003.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -1,3 +1,3 @@
|
||||||
[case-sensitive-004.htm]
|
[grid-first-line-001.htm]
|
||||||
type: reftest
|
type: reftest
|
||||||
expected: FAIL
|
expected: FAIL
|
|
@ -1,3 +1,3 @@
|
||||||
[lang-selector-003.htm]
|
[grid-first-line-002.htm]
|
||||||
type: reftest
|
type: reftest
|
||||||
expected: FAIL
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-line-003.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-letter-001.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-letter-002.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-letter-003.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-line-001.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-line-002.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-line-003.htm]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-005.xht]
|
||||||
|
type: testharness
|
||||||
|
[A :lang value will match a lang attribute value when the latter contains additional subtags.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-009.xht]
|
||||||
|
type: testharness
|
||||||
|
[A :lang value with a multiple subtags will match a lang attribute value with multiple subtags as long as the first part is the same.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-letter-001.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-letter-002.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-letter-003.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-line-001.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-line-002.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-line-003.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-letter-001.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-letter-002.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-letter-003.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-line-001.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-line-002.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-line-003.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-005.xht]
|
||||||
|
type: testharness
|
||||||
|
[A :lang value will match a lang attribute value when the latter contains additional subtags.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[css3-selectors-lang-009.xht]
|
||||||
|
type: testharness
|
||||||
|
[A :lang value with a multiple subtags will match a lang attribute value with multiple subtags as long as the first part is the same.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-letter-001.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-letter-002.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-letter-003.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-line-001.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-line-002.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-first-line-003.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-letter-001.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-letter-002.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-letter-003.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-line-001.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-line-002.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
||||||
|
[grid-inline-first-line-003.xht]
|
||||||
|
type: reftest
|
||||||
|
expected: FAIL
|
|
@ -1,23 +1,11 @@
|
||||||
[Element-matches.html]
|
[Element-matches.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
[In-document Element.matches: :lang pseudo-class selector, matching inherited language (with no refNodes): #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.matches: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)]
|
[In-document Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Detached Element.matches: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)]
|
[Detached Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fragment Element.matches: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)]
|
[Fragment Element.matches: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -30,12 +18,6 @@
|
||||||
[In-document Element.matches: Universal selector, matching all descendants of the specified reference element (with refNode Element): *]
|
[In-document Element.matches: Universal selector, matching all descendants of the specified reference element (with refNode Element): *]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In-document Element.matches: :lang pseudo-class selector, matching inherited language (1) (with no refNodes): #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.matches: :lang pseudo-class selector, matching specified language with exact value (1) (with no refNodes): #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.matches: :lang pseudo-class selector, matching specified language with partial value (1) (with no refNodes): #pseudo-lang-div3:lang(en)]
|
[In-document Element.matches: :lang pseudo-class selector, matching specified language with partial value (1) (with no refNodes): #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,11 @@
|
||||||
[ParentNode-querySelector-All-xht.xht]
|
[ParentNode-querySelector-All-xht.xht]
|
||||||
type: testharness
|
type: testharness
|
||||||
[Document.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Document.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Document.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
[Document.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -48,30 +30,12 @@
|
||||||
[Document.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
[Document.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Detached Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Detached Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
[Detached Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -96,30 +60,12 @@
|
||||||
[Detached Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
[Detached Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fragment.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Fragment.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
[Fragment.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -144,30 +90,12 @@
|
||||||
[Fragment.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
[Fragment.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In-document Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[In-document Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
[In-document Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,11 @@
|
||||||
[ParentNode-querySelector-All.html]
|
[ParentNode-querySelector-All.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
[Document.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Document.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Document.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Document.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Document.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
[Document.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -48,30 +30,12 @@
|
||||||
[Document.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
[Document.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Detached Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Detached Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Detached Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
[Detached Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -96,30 +60,12 @@
|
||||||
[Detached Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
[Detached Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fragment.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[Fragment.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Fragment.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
[Fragment.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -144,30 +90,12 @@
|
||||||
[Fragment.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
[Fragment.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In-document Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
[In-document Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[In-document Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
[In-document Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[lang-xmllang-01.html]
|
|
||||||
type: reftest
|
|
||||||
reftype: ==
|
|
||||||
refurl: /html/dom/elements/global-attributes/lang-xmllang-01-ref.html
|
|
||||||
expected: FAIL
|
|
|
@ -1,5 +0,0 @@
|
||||||
[lang-xyzzy.html]
|
|
||||||
type: reftest
|
|
||||||
reftype: ==
|
|
||||||
refurl: /html/dom/elements/global-attributes/lang-xyzzy-ref.html
|
|
||||||
expected: FAIL
|
|
|
@ -1,5 +0,0 @@
|
||||||
[the-lang-attribute-001.html]
|
|
||||||
type: testharness
|
|
||||||
[The browser will recognize a language declared in a lang attribute on the html tag.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[the-lang-attribute-002.html]
|
|
||||||
type: testharness
|
|
||||||
[The browser will NOT recognize a language declared in an xml:lang attribute on the html tag.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[the-lang-attribute-005.html]
|
|
||||||
type: testharness
|
|
||||||
[If there is a conflict between the language declarations in the HTTP header and the html element using lang, the browser will recognize the language declared in the html element.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[the-lang-attribute-007.html]
|
|
||||||
type: testharness
|
|
||||||
[If there is a conflict between the language declared using lang in the html element and that in the meta element, the UA will recognize the language declared in the html element.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[the-lang-attribute-008.html]
|
|
||||||
type: testharness
|
|
||||||
[If an element contains a lang attribute with an empty value, the value of a lang attribute higher up the document tree will no longer be applied to the content of that element.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[the-lang-attribute-009.html]
|
|
||||||
type: testharness
|
|
||||||
[If the HTTP header contains a language declaration but the html element uses an empty lang value, the UA will not recognize the language declared in the HTTP header.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[the-lang-attribute-010.html]
|
|
||||||
type: testharness
|
|
||||||
[If the meta Content-Language element contains a language declaration but the html element uses an empty lang value, the UA will not recognize the language declared in the meta Content-Language element.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[the-lang-attribute-012.html]
|
|
||||||
type: testharness
|
|
||||||
[The UA will not recognize a language declaration in the Content-Language meta element when more than one language is declared.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue