Re: [css3-selectors] Non-core tokens vs comments

Bjoern Hoehrmann <derhoermi@gmx.net> wrote:

> Hi,
> 
>   http://www.w3.org/TR/2009/PR-css3-selectors-20091215 introduces
> tokens beyond what CSS 2.1 defines as the unchanging core tokens.
> This assigns significance to comments that they are not supposed to
> have, and creates some anomalies. For instance, there is a token for
> ":not(" defined so that
> 
>   :/**/not(...)
> 
> would not be recognized as :not pseudo class, while e.g.
> 
>   :/**/first-child
> 
> would be recognized as :first-child pseudo class. Opera, Firefox, and
> Webkit however treat the selectors above the same. The same problem
> ex- ists for the new attribute selectors.

Gecko's implementation strategy has been to assume that if some css3
module provides tokenization rules that contradict those in section 4
of css2.1, the module is wrong; with one exception, the extra X=
operators defined by css3-selectors, where we implement the module
rather than section 4.  (A strictly-according-to-section-4
implementation would have to allow [attr*/**/='value'].)  We also
consider section 4 to trump appendix G of css2.1.

If a change is required here (and I'm not convinced it is), my first
choice would be to back-propagate the X= operators to css2.1 and delete
the *entirety* of section 10.2 of css3-selectors; and my second choice
would be to insert verbiage into css2.1 somewhere saying that comments
may only appear where the S token may appear.  Note that these options
would produce different web-observable behavior.

There may also be a problem here with the an+b notation, I'm not sure.

zw

Received on Wednesday, 21 July 2010 20:40:28 UTC