You’re viewing an archive of outdated material. Visit The Web Standards Project’s updated site to learn about our current mission.

Incorrect Error Handling

The error-handling in Opera's CSS parser is in direct violation of the specification. The CSS1 specification explains in detail how things should be handled (i.e., what to ignore), but Opera fails to follow important guidelines in this part of the recommendation.

To demonstrate this, this page has the following stylesheet:

A { font: bold highlighted 150% sans-serif; }
// This is not a comment and should cause errors!
P.three {color: red; }

Example 1

This should not effect the links and anchors on this page. Since the links are in sans-serif and in bold and have size 150%, Opera is in violation of the spec. This is because the font property does not take the highlighted keyword, and thus that part of the rule should be ignored. (Opera does this correctly in the text-decoration property.)

Example 2

This text should not be red.

This bug is caused by Opera incorrectly believing the // construct to be a comment delimiter. What should happen is that the line beginning with the two slashes should be considered part of a long selector with an unrecognised operator, and as such should be ignored totally. If slashes ever become used as selectors of any kind (as was proposed in one CSS2 draft), this will make future documents break.