Re: [CSS21] [css3-selectors] case-sensitivity of :lang()

Bert Bos wrote:
> 
> fantasai wrote:
>>
>> Currently :lang() is defined as doing |= match against the
>> language string (normalized to RFC 3066 format per [1]).
>>
>> It's not clear whether this match is case-sensitive or
>> case-insensitive. Since language codes are case-insensitive,
>> I believe this match should be case-insensitive. I've tested
>> Opera, Safari, and Firefox, and they agree.
>>
>> Proposed that in
>>   http://www.w3.org/TR/CSS21/selector.html#lang
>> and
>>   http://www.w3.org/TR/css3-selectors/#lang-pseudo
>> the phrase
>>   "in the same way as if performed by the '|=' operator."
>> be replaced by
>>   "in the same way as if performed by the '|=' operator
>>    except that in this case a case-insensitive match is
>>    performed."
> 
> It's only case-insensitive if the document is. That's covered already by 
> section 4.1.3, which says that text from the document is case-sensitive 
> iff the document says it is.
> 
> So the ':lang()' applied to an HTML document is indeed case-sensitive, 
> but there may be other documents for which it is different.

:lang() information can come from places other than the document.
Also it's not clear to me for XML whether the case-sensitivity of
xml:lang from from XML's case-sensitivity rules and the string-
matching concept (in which case it is case-sensitive) or from
RFC 3066/RFC 4646's rules being applied to this particular attribute
(in which case it is not).

~fantasai

Received on Saturday, 5 July 2008 18:30:39 UTC