It was 2004, and Ian Hickson had just got out of a W3C workshop organized by Adobe. The topic was how to use web standards to address the growing needs of web applications and developers. Hickson pushed hard to simply extend HTML, the existing markup language of the web, rather than invent something entirely new. Others pushed for a new evolution of HTML that they called XHTML.
There was vote. 8 for. 11 against. HTML was shot down. XHTML had emerged the winner.
Hickson left frustrated. You see, the last time anyone had advanced HTML in the slightest was five years earlier, in 1999. That’s when the official specification for HTML 4.01 was published. Since then, not a thing. Instead the W3C, the organization that governs standards for the World Wide Web, had shifted priorities towards XHTML which blended XML and HTML together and allowed for more advanced development techniques.
The first version of XHTML was published in 2000. By 2004, it was being implemented in most browsers, with the notable exclusion of Internet Explorer. It was also supported in most content management systems and text editors. There was even a way to serve XHTML documents to browsers that had yet to catch up with the standard.
The only problem was that XHTML was made to strictly enforce the rules. If there was even a syntax error, the page wouldn’t load properly. Browser makers (like Opera, where Ian Hickson worked) believed that XHTML couldn’t meet the growing demands of users and developers. They wanted to bet hard on the more flexible HTML. But they had no way of doing so.
Hickson gathered together a few like-minded programmers from Opera and Mozilla and talked it out. They decided that if the W3C wasn’t going to keep working on HTML, then they would just do it themselves. On June 4 of 2004, just two days after the Adobe conference, Hickson and company started a mailing list and published a charter for a newly formed standards body, one that operated independently of the W3C. They would be called the Web Hypertext Application Technology Working Group. Or WHATWG for short.
Rather then put their faith in XHTML, the WHATWG started working on further extensions to HTML, which was already fully supported in modern browsers. They made Web Forms 2.0 their first target, but their goals were outlined pretty clearly in the charter they published.
They declared that HTML was not dead. In fact, it was the way forward.
It’s important to realize that there actually is quite a bit to like about XHTML. It’s rigidness when it came to errors made it more semantic and interoperable. Members of the W3C dreamed of a day when a single document could be used in a browser, but also on any number of other devices (like your TV or refrigerator for instance), all with a single language. XHTML would allow for that kind of flexibility thanks, in part, to its strict ruleset.
But browsers began to shift from adopting XHTML, choosing instead to build off of the work the WHATWG was doing with HTML. They began to implement, or at least experiment with, new features before they were technically “a standard”. This created a feedback loop between the browsers and the WHATWG which constantly fed the new HTML specification the group was working on.
Alas, XHTML was not long for this world. In 2007, the W3C announced that they would be forming an HTML working group to once again throw their support behind the language. Not only would this new group work from the WHATWG’s specification, but Ian Hickson was named editor of the new HTML standard. It wasn’t hard to read between the lines. The WHATWG and HTML had won. And by extension, XHTML had lost (The XHTML charter expired in 2009, and the W3C let it wither away).
The new standard was to be called HTML5. And it would bring new API’s for interactivity and deeper support for graphics and multimedia. HTML5 would come to include new semantic elements, like
header, and new multimedia elements such as
canvas. It would expand to include a host of features for developers to access native operating system properties and create richer web applications.
So, it took some time.
The first draft of HTML5 actually came out pretty quickly, in January of 2008. But after that, it took a while to gather feedback and to work out the details of implementation.
But the WHATWG had already set up a new process to accommodate this long stretch of time between versions. Just like before, browsers started implementing new elements and API’s as experimental features, before they were fully defined in an official specification. The standard itself would, in turn, be influenced by any bugs or quirks discovered by browser makers. Rather then jump from version to version, HTML was in constant motion. This introduced another rift in the relationship of the WHATWG and the W3C.
It boiled down to mostly semantics. The WHATWG preferred to think of HTML as a “living standard”. No versions, always in flux, and always being added to. The W3C thought in “snapshots.” Each version of HTML was like a crystalized moment of fully developed features.
The relationship was already fragile, so they just chose both. In 2012, the two groups announced that the WHATWG would maintain a living standard, while the W3C would continue with versions. What’s the real difference? Not much, honestly. It’s just a matter of approach.
Which is why HTML5 was not an official recommendation of the W3C until October of 2014, even though people were already using HTML5 features. And it’s why some people will insist that there is only HTML, and HTML5 (or any number for that matter) does not truly exist.
But make no mistake. It is because of the WHATWG that we see the latest HTML and CSS make its way into browsers before the details of a specification are fully worked out. It’s a process they invented.