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