Re: CR and LF in the input stream / as NCRs (detailed review of parsing algorithm)

http://lists.w3.org/Archives/Public/public-html/2007Aug/0151.html

Here's a demo of those findings:
(Note that this is with the pre element specifically. There seem to be
exceptions depending on what element you test.)

http://shadow2531.com/opera/testcases/cdata/003.html

(In a zip file so you can download it in-tact.)
http://shadow2531.com/opera/testcases/cdata/003.zip

Rendering:
Both Opera and IE give the correct rendering for all those cases.

Firefox and Safari fail to render 2 of them correctly. (See the entity
ones where line1 and line2 are separated by a newline.)

Newline Normalization:

Opera doesn't do any normalization for attributes or data.
Firefox and Safari don't do any normalization for attributes, but
normalize to \n for data (keeping the 2 quirks that cause the
rendering differences in mind)

IE does the same as Safari and Firefox minus the 2 exceptions, but
instead of normalizing to \n, it normalizes to \r.

So, minus the Safari and Firefox entity quirks:

Safari and Firefox normalization for data is:

\r -> \n
\n -> \n
\r\n -> \n
\n\r -> \n\n

IE's normalization for data is:

\r -> \r
\n -> \r
\r\n -> \r
\n\r -> \r\r

Given that:

1. newlines in attribute values should not be normalized.
2. newlines in data should be normalized to \n like Firefox and Safari
(but without the 2 quirks).

-- 
Michael

Received on Friday, 3 August 2007 10:46:07 UTC