W3C home > Mailing lists > Public > public-html@w3.org > August 2007

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

From: Michael A. Puls II <shadow2531@gmail.com>
Date: Fri, 3 Aug 2007 06:46:03 -0400
Message-ID: <6b9c91b20708030346g1bce1d8ehe6f2662055156055@mail.gmail.com>
To: public-html <public-html@w3.org>

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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 9 May 2012 00:16:03 GMT