- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Thu, 21 Aug 2008 23:54:13 +0100
- To: Justin Rogers <justrog@microsoft.com>, Anne van Kesteren <annevk@opera.com>, "www-style@w3.org" <www-style@w3.org>
L. David Baron wrote: > On Saturday 2008-03-08 19:09 -0800, Justin Rogers wrote: >> An at-rule consists of everything up to and including the next >> semicolon (;) or the next block, whichever comes first. >> <<< >> >> @media all { @ } >> div { color: green; } >> >> I think the sticky point for this test case is what takes priority in >> error recovery. The open parenthesis starts a block which is owned by >> the @media. The closing parenthesis should close the block because it >> is currently the only open block and we found a matching closing >> character. We may do this while we are in error recovery for something >> else like a selector though. > > This does make sense to me; I'm fine with changing Mozilla to do this. > > I think the way to fix this in the spec would be to make the following > changes: > > In section 4.2, change: > # User agents must ignore an invalid at-keyword together with > # everything following it, up to and including the next semicolon (;) > # or block ({...}), whichever comes first. > to say: > # User agents must ignore an invalid at-keyword together with > # everything following it, up to and including the next semicolon (;), > # the next block ({...}), or the end of the block (}) that contains > # the invalid at-keyword, whichever comes first. Looks fine to me. > In section 4.1.7, after the following: > # When a user agent can't parse the selector (i.e., it is not valid > # CSS 2.1), it must ignore the declaration block as well. > add: > # If the block containing the selector is closed with a "}" before > # finding a declaration block, the rule set does not have a > # declaration block (so the user agent does not need to find one to > # ignore). I would instead replace # When a user agent can't parse the selector (i.e., it is not valid # CSS 2.1), it must ignore the declaration block as well. with # When a user agent can't parse the selector (i.e., it is not valid # CSS 2.1), it must ignore the selector and the following declaration # block (if any) as well. ~fantasai
Received on Thursday, 21 August 2008 22:54:48 UTC