Skip to content

Commit f2506ef

Browse files
frivoalsvgeesus
andauthored
[selectors-4] Canonicalize into extlang form prior to :lang() matching (w3c#4212)
Fixes w3c#4154 Co-authored-by: Chris Lilley <chris@w3.org>
1 parent 65d3182 commit f2506ef

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

selectors-4/Overview.bs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ At Risk: the column combinator
2727
At Risk: [=user action pseudo-classes=] applying to non-[=tree-abiding=] [=pseudo-elements=]
2828
At Risk: the '':blank'' pseudo-class
2929
Ignored Terms: function token, Document, DocumentFragment, math, h1, shadow tree, querySelector(), quirks mode, button, a, span, object, p, div, q, area, link, label, input, html, em, li, ol, pre, CSS Value Definition Syntax
30-
Ignored Vars: identifier, extended filtering, i
30+
Ignored Vars: identifier, i
3131
</pre>
3232
<pre class=link-defaults>
3333
spec:css-values-4; type:dfn; text:identifier
@@ -1977,21 +1977,24 @@ The Language Pseudo-class: '':lang()''</h3>
19771977
e.g. '':lang(\*-Latn)'' or '':lang("*-Latn")''.)
19781978

19791979
Note: The <a>content language</a> of an element is defined by the document language.
1980-
For example, in HTML [[HTML5]], the <a>content language</a> is determined
1980+
1981+
For example, in HTML [[HTML5]], the <a>content language</a> is determined
19811982
by a combination of the <code>lang</code> attribute,
19821983
information from <a element>meta</a> elements,
19831984
and possibly also the protocol (e.g. from HTTP headers).
19841985
XML languages can use the <code>xml:lang</code> attribute
19851986
to indicate language information for an element. [[XML10]]
19861987

1987-
An element's <a>content language</a> matches a <a>language range</a> if,
1988-
when represented in BCP 47 syntax [[BCP47]],
1989-
it matches that <a>language range</a> in an <var>extended filtering</var>
1990-
operation per [[RFC4647]] <cite>Matching of Language Tags</cite> (section 3.3.2).
1991-
For this purpose, a wildcard [=language range=] (<code>"*"</code>) does not match
1992-
elements whose language is not tagged (e.g. <code>lang=""</code>),
1993-
but does match elements whose language is tagged as undetermined (<code>lang=und</code>).
1994-
The matching is performed [=ASCII case-insensitively=].
1988+
The element's <a>content language</a> matches a <a>language range</a> if
1989+
its <a>content language</a>, as represented in BCP 47 syntax,
1990+
matches the given <a>language range</a> in an <i>extended filtering</i>
1991+
operation per [[!RFC4647]] <cite>Matching of Language Tags</cite> (section 3.3.2).
1992+
Both the [=content language=] and the [=language range=]
1993+
must be <i>canonicalized</i>
1994+
and converted to <i>extlang form</i> as per section 4.5 of [[!RFC5646]]
1995+
prior to the <i>extended filtering</i> operation.
1996+
The matching is performed case-insensitively within the ASCII range.
1997+
19951998
The <a>language range</a> does not need to be a valid language code to
19961999
perform this comparison.
19972000

0 commit comments

Comments
 (0)