The Last of the Parsing Quirks
I implemented a single quirk for HTML5 parsing yesterday.
- March 1995
-
Netscape
1.1 beta 1 is released with table support. Table
closes a paragraph implicitly.
-
August 1995
-
Internet
Explorer 1.0 is released. Table
does not close a paragraph.
-
May 1996
-
The IETF publishes experimental RFC 1942 which says that table is
block level content like paragraphs (i.e. closes paragraph
implicitly).
-
January 1997
-
The W3C publishes HTML 3.2
with a DTD that makes tables close paragraphs implicitly in an SGML
parser.
-
December 1997
-
The W3C publishes HTML
4.0 with a DTD that makes tables close paragraphs implicitly in
an SGML parser.
-
April 1998
-
The W3C revises HTML
4.0 without changing the DTD on the point of paragraphs and
tables.
-
December 1999
-
The W3C publishes HTML 4.01
without changing the DTD on the point of paragraphs and tables.
-
May 2000
-
IE5
for Mac is released. It is the first shipping browser to have a
quirks mode and a standards mode.
-
July 2001
-
A bug
is filed saying that Mozilla is wrong in not making table close a
paragraph implicitly and that Mozilla should start closing
paragraphs in the standards mode.
-
October 2001
-
IE6
is released. It is the first version of IE for Windows that has
a quirks mode and a standards mode. A table doesn’t close a
paragraph in either mode.
-
June 2003
-
The Mozilla bug is fixed
making Mozilla close paragraphs upon tables in the standards mode.
The quirks-mode behavior is left to not closing a paragraph upon a
table.
-
April 2005
-
The Web Standards Project publishes
the Acid2
test made by Ian Hickson and Håkon Lie. To pass the test,
a user agent must close a paragraph upon table (in the standards
mode).
-
April 2005
-
In order to pass Acid2, Safari
is changed to make a table close a paragraph in the standards
mode. The quirks-mode behavior is left to not closing a paragraph
upon a table.
-
May 2005
-
In order to pass Acid2, Opera
is changed to make a table close a paragraph in the standards
mode. The quirks-mode behavior is left to not closing a paragraph
upon a table.
-
January 2006
-
Ian Hickson changes the comment parsing part of Acid2 and blogs
about it.
-
February 2006
-
Ian Hickson publishes
the first draft of the HTML5 parsing algorithm. It makes a table
close a paragraph but the source code of the spec contains a comment
saying “XXX quirks: don't do this”.
-
November 2006
-
IE7 is
released. A table doesn’t close a paragraph in either mode.
-
March 2008
-
A preliminary version
of IE8 passes Acid2 when hosted on www.webstandards.org.
-
February 2009
-
I file a spec
bug requesting parsing quirks be defined.
-
March 2009
-
IE8 is
released. It has
four layout modes. To pass Acid2, the new ones make a table
close a paragraph. The parser behavior of
<p><table>
is now the only HTML parsing difference between the quirks and
standards modes that is interoperably implemented in all of the top
4 browser engines. -
March 31st 2009
-
Ian Hickson asks
for vendor input about parsing quirks.
-
April 1st 2009
-
I start
a thread about finding vendor input in Mozilla’s platform
development newsgroup. The
<p><table> issue
seems to be the only quirk left. -
April 1st 2009
-
Philip Taylor uses the Validator.nu HTML Parser to compile
a list of dmoz-listed pages where closing paragraph vs. not
closing would lead to different parse trees.
-
April 21st 2009
-
Simon Pieters analyzes
50 sites from Philip’s list concluding that “our options
regarding
<p><table> parsing are (1) having
the quirk, and (2) changing Acid2”. -
April 22nd 2009
-
I check
in an implementation of the quirk into the Gecko HTML5 parsing
repository.
-
May 26th 2009
-
Hixie checks
in the definition of the quirk into the HTML5 spec. The commit also includes this comment: “i hate myself (this quirk was basically caused by acid2; if i'd realised we could change the specs when i wrote acid2, we could have avoided having any parsing-mode quirks) -Hixie”
A big thank you to Philip Taylor
and Simon Pieters for their
research (both the feasibility research and the timeline research).