- From: Benjamin Hawkes-Lewis <bhawkeslewis@googlemail.com>
- Date: Fri, 14 Mar 2008 07:40:32 +0000
- To: www-validator-css@w3.org
The CSS 2.1 spec defines some rules for parsing malformed declarations:
http://www.w3.org/TR/CSS21/syndata.html#parsing-errors
Based on the two CSS grammars and these rules, I would expect that given
the input:
h1 {color: red;}
p {font-weight: bold; width: 100em !ie; color: green;}
em {color: yellow;}
the validator would extract the following CSS:
h1 {
color: red;
}
p {
font-weight: bold;
color : green;
}
em {
color: yellow;
}
since while width: 100em !ie cannot be tokenized as a CSS 2.1
declaration, I think it can be tokenized with the core CSS grammar like
this:
(ruleset: (selector: (ident: p) (whitespace) ) ('{') (declaration:
(property: width) (whitespace) (':') (value: (dimension: 100em)
(whitespace) (delim: !) (ident: ie) ) ) ('}') )
However, the validator drops the entire ruleset, extracting only:
h1 {
color: red;
}
em {
color: yellow;
}
I noticed that the validator doesn't handle some of the examples of
malformed declarations given in the spec correctly.
(a) p { color:red; color; color:green }
(a) p { color:green; color{;color:maroon} }
(c) p { color:red; color{;color:maroon}; color:green }
The validator should have extracted color: red; in (a) and (c) and
color: green; in (a), (b), and (c), but in fact it extracts no valid CSS
information.
Can anyone confirm if this reflects a bug in the validator?
--
Benjamin Hawkes-Lewis
Received on Friday, 14 March 2008 07:41:07 UTC