Re: [CSS 2.1] Parsing unexpected atkeywords

On Wednesday 20 May 2009, fantasai wrote:
> Bert Bos wrote:
> > The former case would be something like this:
> >
> >     div { @here {is something strange} color: red }
> >
> > The question is if the same rule applies. Is the parser parsing a
> > declaration when it sees the "@here"? If yes, the rule says that
> > everything up to and including "red" is ignored.
> >
> > I would say yes. At least I think that is the intention of the
> > rule. The rule contains an example ("For example, a malformed
> > declaration may be missing a property [...]"), which indicates that
> > the parser is already parsing a declaration, even if it hasn't yet
> > seen a property.
> >
> > * Conclusion
> >
> > So my conclusion is that issue 71 is already covered by the
> > "malformed declarations" rule in section 4.2. No changes are
> > necessary in principle.
> >
> > But the existence of the issue seems to indicate that the rule is
> > not clear, so maybe an example can be added. The following could be
> > added as the eighth and ninth examples:
> >
> >     p { color: green; @foo color: red} /* unexpected token @foo */
> >     p { color: red; @foo; color: green} /* unexpected token @foo */
> >
> > * Implementation status
> >
> > A quick check indicates that Konqueror, Opera and Firefox correctly
> > apply the "malformed declarations" rule. I haven't tested any other
> > software. But given that the current formulation has been unchanged
> > since 2003, I expect few problems.
> >
> >
> > [1] http://wiki.csswg.org/spec/css2.1#issue-71
>
> Bert, the issue has a resolution already, and the resolution was to
> change the parsing behavior to be forwards-compatible with the CSS3
> @page rule. The current text, as you say, would parse an at-rule
> inside a declaration block as part of a declaration, and for CSS3
> @page we need it to parse as an at-rule.

Yes, I know it has a resolution. This is my action to propose text to 
implement that resolution. But it describes two cases which turn out to 
be both special cases of an already existing rule. So I think no text 
is needed and my action is done.

I'm not quite sure how this came to be an action for me. I think it was 
a resolution for Paged Media and it was resolved this way precisely 
because CSS 2.1 already did it this way. We wanted implementations of 
the Paged Media CR of 2004 to change as little as possible and not add 
new syntax (although I still think we *should* change the syntax, while 
we still can). Thus margin boxes continue to be inside @page, but only 
those at the end are taken into account.



Bert
-- 
  Bert Bos                                ( W 3 C ) http://www.w3.org/
  http://www.w3.org/people/bos                               W3C/ERCIM
  bert@w3.org                             2004 Rt des Lucioles / BP 93
  +33 (0)4 92 38 76 92            06902 Sophia Antipolis Cedex, France

Received on Wednesday, 20 May 2009 16:07:25 UTC