In a recent post, Adrian Roselli ranted a bit about the awkward position we are in with regard to HTML5. Here’s a taste:
The trend continues where I speak to clients, vendors, young developers fresh out of college, and even the teachers/professors who instruct them and they don’t understand that HTML5 and CSS3 aren’t the same specification. I have repeatedly shown an HTML 4.01 site with CSS3 to explain that they are each distinct specifications which can be applied in different combinations of different versions. This is further complicated when JavaScript is folded into the mix—some folks even think jQuery is part of the HTML5 specification.
It’s true: For all intents and purposes, “HTML5” has become a meaningless catch-all marketing phrase defining a platform rather than a specification. It’s “DHTML” all over again.1
This all probably started with the fact that “HTML5,” as a spec, was always more than a markup language. Even from the very early days at the WHATWG (before they decided to go versionless and just call it “HTML”), “HTML5” was a markup language, an updated DOM interface, and a set of new APIs for interacting with browsers and devices. A few of us took issue with classifying it all as “HTML5,” but it’s not like anyone can tell Hixie what to do.
So yeah, from the beginning “HTML5” has been a bit of a misnomer, but the final blow to HTML5’s usefulness as a term—to me at least—came in the form of Apple’s “HTML5 Showcase.” It received a ton of attention in the press and really got the term “HTML5” out there… oddly enough while mostly demoing CSS3 features and making little to no attempt to disambiguate the technologies at work.
Ok, so what’s the problem with all of this? Some argue that there is no problem, that the public’s enthusiasm for “HTML5” can only bring about positive change on the web. I don’t disagree with that, but I also strongly believe semantics are important. Chris Mills summed up my feelings pretty well on the WaSP blog around this time last year:
This really isn’t good—I appreciate that it is good to have an umbrella term for a group of related technologies and techniques that would otherwise be difficult to talk about in conversation. “Ajax” and “Web 2.0” serve that purpose well. And it is ok to talk about closely-related specs such as Geolocation and Web Sockets as being under the HTML5 umbrella, as long as you clarify it somewhere (you can find a good example in Get familiar with HTML5!). But this is different—HTML5 and CSS3, for example, are two distinctly different technologies, and should not be confused with one another. To do so will impede learning and cause problems with development, documentation, and all manner of other things.
That’s the rub. When engaging in conversations, we need too know which “HTML5” is being discussed. Personally, when I discuss HTML5, I always draw a distinction between “HTML5” the marketing term and “HTML5” the specification even if asked ambiguous questions about HTML5. I’m not saying everyone needs to know the precise differences between the two uses of the term, but it’s our duty to educate them that there is a difference, even if they can’t fathom the particulars.
- DHTML, as you may recall, was a catch-all phrase that meant using HTML, CSS, and JavaScript together, but some people thought it was an actual technology in its own right. Thanks marketing wonks!