@@ -569,9 +569,33 @@ <h2 id=at-supports><span class=secno>6. </span>Feature queries: the
569569 ;
570570
571571supports_declaration_condition
572- : '(' S* declaration ')' S*
572+ : '(' S* core_declaration ')' S*
573573 ;</ pre >
574574
575+ < p > in which < code > core_declaration</ code > is the production
576+ < code > declaration</ code > in the core syntax of CSS defined in < a
577+ href ="http://www.w3.org/TR/CSS21/syndata.html#tokenization "> section 4.1.1
578+ (Tokenization)</ a > of < a href ="#CSS21 "
579+ rel =biblioentry > [CSS21]<!--{{!CSS21}}--> </ a > .
580+
581+ < p > Any ‘< code class =css > @supports</ code > ’ rule that does not
582+ parse according to the grammar above is invalid. Style sheets < strong > must
583+ not</ strong > use such a rule and processors < strong > must</ strong > ignore
584+ such a rule.
585+
586+ < p class =note > Note that this means that declarations that meet the
587+ forward-compatible syntax for declarations are permitted (and support for
588+ them is then tested by the ‘< code class =css > @supports</ code > ’
589+ rule), but declarations that do not meet the forward-compatible syntax for
590+ declarations cause the entire ‘< code
591+ class =css > @supports</ code > ’ rule to be ignored.
592+
593+ < p class =issue > Is any further allowance for forward-compatible parsing
594+ needed, for example, to allow additional features (such as, say, selector
595+ tests) to be added to the ‘< code class =css > @supports</ code > ’
596+ rule? Or are these forward-compatible parsing rules the best solution for
597+ such future expansion anyway?
598+
575599 < p > Each of these grammar terms is associated with a boolean result, as
576600 follows:
577601
0 commit comments