W3C home > Mailing lists > Public > www-style@w3.org > August 2011

RE: [css3-selectors] [css4-selectors] [CSS21] pseudo grammar conflicts with BCP 47 (RFC4647) for :lang()

From: Arron Eicholz <Arron.Eicholz@microsoft.com>
Date: Wed, 31 Aug 2011 15:59:28 +0000
To: Bjoern Hoehrmann <derhoermi@gmx.net>
CC: "www-style@w3.org" <www-style@w3.org>
Message-ID: <07349ECFC3608F48BC3B10459913E70B14865BCC@TK5EX14MBXC294.redmond.corp.microsoft.com>
On Monday, August 29, 2011 11:21 AM Bjoern Hoehrmann wrote:
> * Arron Eicholz wrote:
> >I think we are getting somewhat off my original point. I'm not asking
> >to change the definition of :lang(). It is already defined to support
> >BCP47 which includes RFC4647 for any matching that it needs to do. What
> >is incorrect now is the grammar defining what can go into :lang(). This
> >grammar was never updated to account for changes when RFC4647 was
> >created to replace parts of RFC3066 within BCP47. The spec states that
> >you should use the successor to BCP47 which means if the grammar
> >requirements change for the successor (within RFC5646 and RFC4647) then
> >the grammar in CSS should change.
> You are mistaken. In CSS 2.1 the definition is "Whether there is a match is
> based solely on the identifier C being either equal to, or a hyphen- separated
> substring of, the element's language value, in the same way as if performed
> by the '|=' operator" with no mention of any wildcards and BCP 47 is
> referenced only informatively in a note unrelated to matching.

There are a few things wrong with CSS 2.1. Let me list them all out.

With the current definition as it is stated in the Recommendation we have the following issues.
1) The CSS 2.1 spec selectors section was supposed to be updated to match the CSS Selectors Level 3 spec. It seems as if the :lang() section was not updated.
2) If we go with what is in the CSS 2.1 Recommendation today without any changes. We must understand that the text that is there is not based on the most recent definition for language identification and matching. It is still based on RFC3066 which is horribly outdated.
3) The note may be informative however it says that it is recommended that you use BCP47 which means if your implementation can support BCP47 it should. However, the updated BCP47, as I have stated before, has changed and now the grammar does not allow for that recommendation to be possible.

Point 3 is where I have the most issue though the entire section from CSS 2.1 needs to be corrected to be something like we have in Selectors Level 3.

CSS Selectors Level 3 has some other interesting things to note:
The requirement for BCP47 is now fully normative. This then will absolutely require a change to the grammar. 
Issues I have are these:
1) The text is still based on an older version of BCP47, It seems as if it still assumes RFC3066.
2) The grammar is now violated by the updated version of BCP47 (RFC5646 and RFC4647).

At this point I think the specs just need to be corrected to match the latest BCP47 requirements.

Arron Eicholz
Received on Wednesday, 31 August 2011 16:00:07 UTC

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:08:03 UTC