Re: [CSS2.1] Grammar for @media versus general block parsing

Simetrical said:
  Melinda said:
>> Specing that at-rules inside @media are to be ignored in CSS 2.1 and understood in CSS3 will I think lead to some undesirable outcomes.  (For instance, we will or should create a test for 2.1 that must fail as a CSS3 test.)  It's not clear to me, since CSS doesn't do versions, how a browser will know it is processing a 2.1 stylesheet, and therefore must ignore embedded at-rules, as opposed to processing a CSS3 stylesheet, in which case it must process the embedded at-rules.

> Doesn't that logic apply to any new feature at all?  If you were to
> create a test including, say,

> font-size: 1rem;

> then that would have to fail as a CSS 2.1 test and pass as a CSS 3
> test too, or vice versa.

Not really.  The difference is that if the 2.1 spec contains a statement to the effect that "At-rules inside @media are invalid in CSS2.1 and must be ignored per 4.2 Rules for handling parsing errors", then there *will be* a test created to verify that implementations obey that spec mandate.  Any UA implementing css3-page will necessarily fail that test.

While it is theoretically possible that a 2.1 test will incorporate an undefined identifier that later becomes defined, it's highly unlikely: test authors try to steer away from such possibilities when they choose those undefined identifiers in creating tests.  And if and when this should occur, it would be a simple matter to modify the offending test to change the identifier in question.  No such simple solution for the 'ignore at-rules inside @media' test.

Maybe changing the 'must' above to a 'may' is a workable approach: "At-rules inside @media may be ignored in CSS2.1 per 4.2 Rules for handling parsing errors."  That would allow css3 compliance without breaking 2.1 compliance.

Best wishes,


Melinda S. Grant
Melinda Grant Consulting

Received on Thursday, 10 July 2008 02:47:47 UTC