HTML5 and CSS3 are doomed to disaster?
Kyle Neath at Warpspire wrote an article recently explaining his belief that HTML5 and CSS3 are doomed for disaster. It’s a good article with well reasoned arguments, and I urge you to go read it. I’ve been thinking along very similar lines recently, even though I’m on the HTML5 WG (perhaps because of it). This post is inspired by Kyle’s, be sure to read his thoughts on this too.
The point at which I realised HTML5 will fail was when I asked myself a question: Will I use HTML5 when it becomes available? The answer is no. No I will not, because it won’t work for most people unless I completely ignore the added elements and attributes when authoring. As Kyle correctly points out, HTML5 is not backward compatible. For example, there are no equivalents of
<section> in HTML4, so a browser trying to parse HTML5 as HTML4 will choke and die. If you want to use any of the new features of HTML5 and have a site work for all those browsers that can’t handle HTML5 (that’s all browsers as of today), you need to build a website twice. And it’s financial suicide to build a website twice, once in HTML4 and once in HTML5. How do you explain the benefits to a client? In fact, as far as I’ve been able to ascertain, there are no benefits of HTML5 over HTML4 to a client. Until there are web services and browsers that can do something useful with HTML5 that can’t be done with HTML4 there are no advantages beyond intellectual huzzahs and a new buzzword to “bring to market”. HTML4 and XHTML1 are stable and backward compatible platforms. They will be around for decades.
The case against CSS3 is a little different. I think much of it will get adopted over time, but only through its use in a ‘progressive enhancement’ role. Browsers that support it get will get prettier sites, but that’s all. On a down-side the fancy new selectors and advanced modules won’t get used until there is ubiquitous browser support for them. Which seems like it will be many years away (IE.next is still about a year away, and IE6/IE7 will still be hanging around even after then).
If HTML is to evolve successfully browser implementation of HTML needs to change. Browsers need a complete re-think of how they work. What makes Flash so consistent for developers and end-users is the fact that the Flash interpreter is identical on all browsers, and is automatically upgraded when a new Flash release is made. Browsers need to do the same with their HTML/CSS engines - preferably without having to wait for the browser author to write their own interpreter of the newest HTML/CSS specification revision (which of course leads to different interpretations across browsers, leading to cross-browser rendering problems). Browsers need to make HTML and CSS parsing engines as application plugins. Plugins that are authored and ratified by the W3C itself. In that way, you get all the benefits of how Flash is distributed and written, but without “going corporate”, or inheriting any of the other problems with the Flash platform (when used for a complete web page, as opposed to when used properly as application widgets).
Flash itself is something I have little interest in seeing adopted for the web as a whole, despite it’s (comparatively) rapid pace of change. Flash has its place, for sure, but rendering text-heavy pages on the web is not that place.
With browser’s designed the way they are, and with the industry being at the mercy of the lowest common denominator, HTML5 is going to be released followed by developer apethy. Just like XHTML2, no-one will use it. As a note; Microsoft’s IE6 is still holding a huge swath of the user market, and will for years. IE7 adoption is no help for HTML5’s cause either, as it can’t parse HTML5 either.
CSS3 is going to take years to become supported on enough browsers to be a viable choice for use as intended, with its advanced layout and presentation capabilities, rather than for a couple of less important bells-and-whistles like drop-shadows.
When browsers get smarter with their implementation is when we can move away from HTML4, until then no non-backward-compatible HTML based technology will succeed. I feel quite confident in saying that ten years from now most of the web will still be HTML4 and XHTML served with a HTML (rather than XML) MIME type. Though I’ll be pleased if that prediction proves to be wrong.
My original thoughts on HTML5 still stand. I don’t see the need for it. If anything my involvement in the WG since then has only made me more convinced that HTML5 is heading the wrong way. (Why, for example, do we need a video tag, or audio tag? Use object. It’s what it’s for).