- From: L. David Baron <dbaron@dbaron.org>
- Date: Thu, 27 Mar 2008 11:03:07 -0700
- To: Justin Rogers <justrog@microsoft.com>
- Cc: Anne van Kesteren <annevk@opera.com>, "www-style@w3.org" <www-style@w3.org>
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.
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).
-David
--
L. David Baron http://dbaron.org/
Mozilla Corporation http://www.mozilla.com/
Received on Thursday, 27 March 2008 18:04:16 UTC