Origins · stage 01
The standards split
Two bodies claimed authority over HTML at the same time — and the web kept moving under both of them.
Stage 01 of six/Origins, piece 2 of 3/Full piece/Next: Why nothing is ever removed
The break
The W3C had declared HTML finished. When HTML 4.01 shipped in 1999, the consortium's attention turned to XHTML: a reformulation of HTML in XML syntax, stricter about well-formedness, demanding that browsers reject malformed documents with an error. The reasoning was tidy — XML toolchains were well understood, namespace support came along for free, and the discipline of treating a malformed page as a hard error seemed like a step toward a more rigorous web. What it was not, in practice, was compatible with how the web actually worked. Decades of hand-authored markup, server-generated pages, and browser tolerance for sloppy syntax did not vanish because a specification said they should.
The browser makers saw this more clearly than the standards process did. In 2004, representatives from Apple, Mozilla, and Opera met at a W3C workshop and put forward a proposal for extending HTML to handle web applications — forms, event handling, client-side behaviour — as an evolution of HTML rather than a replacement. The W3C declined. The three organisations responded by founding the Web Hypertext Application Technology Working Group — WHATWG — outside W3C's process entirely. Opera's Ian Hickson became its primary editor. The group set to work on what would become HTML5, posting its drafts publicly and iterating in the open, without waiting for formal adoption.
Chronology
In order- 1999HTML 4.01 published; W3C pivots toward XHTML
- 2004WHATWG founded by Apple, Mozilla and Opera outside the W3C process
- 2006Berners-Lee acknowledges the XML transition has not succeeded; W3C opens HTML5 working group
- 2009XHTML 2.0 abandoned; HTML5 name adopted by the W3C track
- 2014W3C publishes HTML5 as a formal Recommendation
- 2019W3C and WHATWG sign Memorandum of Understanding; Living Standard becomes canonical
Running in parallel
For several years, two HTML specifications existed side by side. The W3C continued with XHTML 2.0, which was progressively decoupled from the HTML that browsers actually implemented. The WHATWG continued with its HTML Living Standard, treating the specification as a continuously updated document rather than a versioned snapshot. Browsers, unsurprisingly, implemented what the WHATWG described — structured parsing rules, clear definitions for error recovery, the <canvas> element, <video>, <audio>, web workers, local storage. These features were not in XHTML 2.0.
By 2006, Tim Berners-Lee publicly acknowledged that the attempt to move the web to XML had not succeeded. The W3C relicensed the WHATWG's work, and a parallel effort — an HTML5 working group inside W3C — began, building substantially on what WHATWG had already written. This created its own awkwardness: two groups, related but distinct, maintaining diverging forks of what was notionally the same document. The W3C fork aimed toward a stable, dated release; the WHATWG Living Standard aimed for continuous refinement with no fixed point of closure.
XHTML 2.0 was abandoned in 2009 when the W3C declined to renew its working group charter. That same year, HTML5 — the W3C version — moved through the formal recommendation process, reaching Recommendation in 2014. The WHATWG, meanwhile, had stopped calling its document "HTML5" and simply called it the HTML Living Standard, with no version number at all.
Where it settled
The explicit convergence came in 2019, when W3C and WHATWG signed a Memorandum of Understanding. The agreement made the WHATWG HTML Living Standard the canonical upstream source, with the W3C producing snapshots from it for its own formal process rather than maintaining an independent fork. CSS remained — and remains — developed inside the W3C's CSS Working Group, under a different model, with discrete specification levels rather than a single living document. The WHATWG continues to develop HTML, the DOM, and related APIs.
What the split period left behind was not chaos but, oddly, progress. The competition between processes accelerated features that a unified, slower body might have deferred. It also demonstrated something that would come to matter for thinking about why nothing is ever removed: specifications describing the web have to work backward from what browsers already do. Authority in web standards is, ultimately, derivative — it belongs to whoever describes reality most accurately, and browser implementors are the ones who define what that reality is.
The competition between processes accelerated features that a unified, slower body might have deferred.
For several years, two HTML specifications existed side by side.
The stage in a room: the W3C and the WHATWG went different ways on HTML and eventually converged again.