Re: css identifier parsing bugs, escapes in classnames

Daniel W. Connolly wrote:
> 
> The text of the paragraph in the following document
> should be purple, no?

Yes.

> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <title>test</title>
> <style type="text/css">
> p.a\:b { color: purple }
> </style>
> </head>
> <body>
> <p class="a:b">aslkfj</p>
> </body>
> </html>

> 
> I don't see a relevant test in the test suite.
>         http://www.w3.org/Style/CSS/Test/

No. There is one at http://richinstyle.com/test/keyconcepts/escapes.html
however (not this, but similar).

Results of this test are tabulated at
http://richinstyle.com/bugs/table.html.

> Are there *any* implementations that get the identifier
> parsing in CSS right? 

No. Internet Explorer standardised on broken parsing (whatever else you
might say about Netscape, it did at least attempt to follow the parsing
rules in Netscape 4, although as with most aspects of its CSS
implementation it did get things wrong) in Internet Explorer, with
elaborate error recovery, and now is unwilling to fix things. As a
result of this, 'CSS' like this is to be found (because it works in
MSIE)
<style>
<!-- HTML comment used as CSS -->
P {color: red}
</style>

(I saw this in a script somewhere).

and also:

border: '.025cm solid gray'
(in http://www.w3.org/TR/becss)

Other browsers have followed suit, Opera actually introducing parsing
bugs between v3.62 and v4, presumably in an attempt to gain
'compatibility' with MSIE.

Extensive tests of identifier parsing are to be found at:

http://www.richinstyle.com/test/application/classvalidity.html
http://www.richinstyle.com/test/application/idvalidity.html
http://www.richinstyle.com/test/keyconcepts/selectors.html

and generally http:/www.richinstyle.com/test/application,
http:/www.richinstyle.com/test/attachment (in respect of media parsing,
which is an IDENT token AIR), and
http:/www.richinstyle.com/test/keyconcepts (all passim). 

In particular the most common (deliberate) bug is disregarding
identifier case-sensitivity, but other problems in respect of identifier
parsing include not recongising that identifiers starting with numbers
are invalid (either permitting them or else not ignoring blocks with
which such selectors are associated). 

See:

Mozilla:
http://www.richinstyle.com/bugs/mozillademo.html#error (demos)
http://www.richinstyle.com/bugs/mozilla.html#error (lists of bugs)

MSIE3:
http://www.richinstyle.com/bugs/ie3b.html#error (lists of bugs)
http://www.richinstyle.com/bugs/ie3.html#parse (lists of bugs)

MSIE4
http://www.richinstyle.com/bugs/ie4b.html#error (lists of bugs)
http://www.richinstyle.com/bugs/ie4.html#parse (lists of bugs)

MSIE5
http://www.richinstyle.com/bugs/ie5b.html#error (lists of bugs)
http://www.richinstyle.com/bugs/ie5.html#parse (lists of bugs)

Netscape 4 
http://www.richinstyle.com/bugs/netscape4b.html#error (lists of bugs)
http://www.richinstyle.com/bugs/netscape4.html#application (lists of
bugs)

Opera 3.6
http://www.richinstyle.com/bugs/opera3b.html#errors (lists of bugs)
http://www.richinstyle.com/bugs/opera3.html#parse (lists of bugs)

Opera 4
http://www.richinstyle.com/bugs/opera4b.html#errors (lists of bugs)
http://www.richinstyle.com/bugs/opera4.html#parse (lists of bugs)
http://www.richinstyle.com/bugs/operademo.html (demos)

> I tried Netscape 4 and IE 4
> and Opera 4 and Amaya and they all failed.

Use Mozilla (it passes your test). I've tested it (at the escapes url
above) and it works (almost) perfectly (the exception is /* comment \*/,
which is treated as a complete commeent).
 

-----------------------------------
Please visit http://RichInStyle.com. Featuring:
MySite: customizable styles.         AlwaysWork style 
Browser bug table covering all CSS2 with links to descriptions.
Lists of > 1000 browser bugs         Websafe Colorizer 
CSS2, CSS1 and HTML4 tutorials.      CSS masterclass 
CSS2 test suite: 5000++ tests and 300+ test pages.

Received on Wednesday, 19 July 2000 05:54:50 UTC