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

微軟的 Arron Eicholz 在 CSS 工作組的郵件群 www-style[1] 上提了有關於
:lang() 跟 RFC 4647 的東西(討論串[2]),基本上就是我們上次會議討論的內
容[3],所以我也去回信說「這跟我們有關了」。看來要加緊腳步把一些簡單的案
例寫出來。

[1] http://lists.w3.org/Archives/Public/www-style/
[2] http://lists.w3.org/Archives/Public/www-style/2011Aug/thread#msg630
[3] http://www.w3.org/2011/08/17-html5-zh-minutes#item06


Kenny

-------- Original Message --------
Subject:  [css3-selectors] [css4-selectors] [CSS21] pseudo grammar
conflicts with BCP 47 (RFC4647) for :lang()
Resent-Date:  Fri, 26 Aug 2011 17:21:57 +0000
Resent-From:  www-style@w3.org
Date:  Fri, 26 Aug 2011 17:21:03 +0000
From:  Arron Eicholz <Arron.Eicholz@microsoft.com>
To:  www-style@w3.org <www-style@w3.org>



After spending extensive time reading over BCP 47 and the respective RFCs that are related I believe we have a small error in our core grammar that prevents BCP 47 and specifically RFC4647 from working correctly for :lang().

Since :lang() is doing matching against language identifiers the match logic should follow what BCP47 expects for matching. This matching is covered by the RFC4647. The CSS specs assume that matching is covered in these RFCs: RFC5446, RFC4646 or RFC3066, it is not. The :lang() is not identifying languages it is matching language identifiers and thus RFC46474 is relevant.

Here is the specific part of the core grammar that is incorrect: 

Appendix G

pseudo
: ':' [ IDENT | FUNCTION S* [IDENT S*]? ')' ]

Needs to be changed to something like this:

pseudo
: ':' [ IDENT | FUNCTION S* [ \*? IDENT S*]? ')' ]

At this point we might not be able to edit in for Selectors Level 3 but we should at least add this to the errata and make the correction in Selectors Level 4. The errata for CSS 2.1 should also get this update as well.

--
Thanks,
Arron Eicholz

Received on Saturday, 27 August 2011 10:36:27 UTC