XHTML 2.0
» see w3.org/TR/xhtml2 as it lived, on the wayback machine
~ the goodbye ~
XHTML 1.0 arrived in 2000 and was an easy sell: HTML 4 rewritten as XML, so every tag closed and every attribute sat inside quotes. Pages written that way still worked everywhere, because the markup was compatible with what browsers already parsed. Half the web adopted the discipline inside a few years, and a validator badge at the bottom of a page was a common sight.
XHTML 2.0 was meant to follow it. Its first public Working Draft went out in August 2002, and it was not compatible with anything. Forms were deleted and replaced by XForms, a separate specification with its own data model. The onclick family of attributes was replaced by XML Events. Heading levels disappeared into a single h element that took its rank from how deeply the section containing it was nested. The presentational tags went out, and the img element was redesigned to carry its fallback content in its body rather than inside an alt attribute.
Every one of those changes was defensible on its own. Together they meant no browser could ship the thing without breaking the entire existing web, and no author could adopt it without rewriting every page and losing every reader on an older browser. The group drafting it was aware of this and considered it the price of fixing the language properly.
In the middle of 2004 the people who actually shipped browsers stopped waiting. Opera and Mozilla, joined shortly by Apple, formed the Web Hypertext Application Technology Working Group outside the W3C with the stated goal of extending HTML in a way that stayed compatible with the billions of pages already written. That work became HTML5. For three years the W3C had neither a position on it nor a group of its own, and in March 2007 it chartered an HTML working group alongside the XHTML 2 one, saying it would keep watching the market for XHTML 2.
~ the chronicle ~
| Born | August 2002, first public Working Draft |
|---|---|
| Peak | eight drafts and a working group running in parallel with HTML5 |
| Killed | 31 December 2009, charter expired unrenewed |
| Lifespan | 7 years as a draft, never a standard |
| Made by | W3C XHTML 2 Working Group |
| Killed by | HTML5 and the browser vendors who wrote it |
~ the break with html ~
The argument underneath the specification was about error handling. XML is draconian by design: one stray ampersand and the parser is required to stop and show an error rather than guess. HTML had always done the opposite, repairing whatever it was handed and rendering something. The XHTML camp considered the repair behavior the original sin of the web, the thing that let two decades of broken markup accumulate.
Anyone writing markup in that window learned the discipline anyway, and I was one of them. Close the br tag and quote every attribute, then run the result past a validator for a badge nobody was going to click. Almost nobody noticed that the strictness was never enforced anywhere: an XHTML page served as text/html, which is how essentially all of them were served, went straight into the ordinary HTML parser and got repaired exactly like everything else.
~ what the faq said ~
The W3C published a short FAQ on 2 July 2009 with the decision in it. Management had decided to let the XHTML 2 Working Group's charter expire at the end of 2009 and not renew it, after discussion with the participants. Maintenance would continue on XHTML 1.1 and XHTML Print, which were finished things people used. Work would stop on XHTML 2.0 itself along with CURIE, XFrames, HLink and XHTML Modularization 1.0, all of which would be published as Group Notes instead. That is what happened on 16 December 2010, and the Note carries a single flat sentence at the top of its status section: "The XHTML2 Working Group's charter expired before it could complete work on this document." The draft is still served at that address, sixteen years later, finished enough to read and not finished enough to use.
~ leave a rose ~
an anonymous tribute. one rose per visitor per day.
@}-->-- ... roses left here
~ leave a wreath ~
a rose fades by morning. a wreath stays on this grave for good, with your name on it.
from $1, paid once through stripe. it keeps the graveyard running: the hosting and the nightly digging. adopt it and the headstone reads "maintained in memory by" you. the groundskeeper plants new wreaths at the next tending, usually within a day.
» one email a week: new graves and the anniversaries of the dead. subscribe
other protocols: Cellular Digital Packet Data, Hashbase, Gnutella, 6bone
also died in the 2000s: Yupi, Sony AIBO (original line, 1999-2006), The Cincinnati Post
~ leave a note ~
visitors before you have left these graveside notes. anonymous welcome.