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
________________________________


Melinda S. Grant
Melinda Grant Consulting
+1.541.582.3681
Melinda.Grant@hp.com

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