Jump to main navigation, main content

Archived entry | Matt Wilcox .net

HTML5 is not backward compatible

The following is a republication of a comment I made at Jonathan Snook’s blog entry on The importance of being HTML5. Reposted here because the conversation was getting off-topic.

I understand the concept [of Progressive Enhancement], but the trouble is that HTML is not like CSS. I am struggling to see how HTML5 can be used in a Progressive Enhancement way.

When the user agent doesn’t understand CSS3 you are sacrificing a little visual flair, and nothing more. Instead of seeing rounded corners you get straight ones, for example. We use CSS3 elements in a way that is not detrimental to users with an agent that can’t render CSS3 elements. But how is that possible with HTML? HTML is semantics, and if the user agent doesn’t understand the semantics of new elements then meaning is lost. It’s just not the same as losing a presentational effect. The user experience is harmed. The HTML4 agent can’t recover or fall-back from meeting a <section> - so what does it do? Throw out the content, not rendering it? Render it as a block element? Render it in-line? What do screen readers do with that? Can a user agent that doesn’t support a HTML5 element apply styling or behaviour to it? HTML5 elements in a HTML4 parser = fail.

I have been trying to figure out in what ways you could practically use HTML5 today, and I can’t think of any. Unless you can afford to throw away the content of whatever unsupported element you’re trying to use, HTML5 isn’t viable because that new element is encapsulating semantic data, and we have no idea what will happen to that data in a user agent that doesn’t support that particular HTML5 element.

I stand by my opinion that despite the claim of the people involved, HTML5 is not backward compatible in any useful way. Yes, you can use it now but only at the expense of using any of the new HTML5 elements. That being the case, what’s the point of using a HTML5 DOCTYPE in an otherwise HTML4 page?

And by way of clarifying why HTML5 is a dead donkey for the foreseeable future:

In order to use any of the new HTML5 features we will have to wait until the number of browsers that don’t do HTML5 is extremely low. No corporation on earth is going to throw away even a couple of percent of people when those people are potential profit, and it isn’t personal blogs that will be the decider on whether HTML5 is successful or not. It’s corporate land that decide that.

So we have to wait for IE6, IE7, Safari 3, Firefox 2 & 3, all to die off before [using any new element from] HTML5 is viable on the corporate web. We’re going to have to wait for browsers that aren’t even out yet to become statistically irrelevant before we can use [the new elements of] HTML5 without either duplicating the site in XHTML or throwing away customers/visitors/revenue.

And that’s one reason for my giant ‘meh’ feeling over the entire topic. Not to mention the more pedantic/picky issues of questionable accessibility regressions, weird choices for ’semantic’ tags, and any of the other HTML5 issues that have been argued back and forth on the mailing lists.


skip to comment form
  1. Tim Wright posted 1 years, 153 days, 4hrs after the entry and said:

    On backwards compatibility:
    The HTML5 syntax is no longer based on SGML despite its markup being very close. It has, however, been designed to be backward compatible with common parsing of older versions of HTML. It comes with a new introducing line which looks like an SGML document type declaration, &lt;!DOCTYPE html&gt;, and enables standards-compliant rendering in all browsers that use “DOCTYPE sniffing”

  2. Michael Reynolds posted 1 years, 362 days, 6hrs after the entry and said:

    You might wish to look at this post. I've been finding all kinds of stuff to make HTML 5 backwards compatible.

From the archives

Other enteries filed under:

Web Development

Site information

Built with valid XHTML and CSS, designed with web standards and accessibility in mind. Best viewed in a modern browser [Firefox, Safari, Opera]

This domain and all content is a copy of my old website, for historical purposes only.