While there’s been talk for some time about the future of HTML, including debates over XHTML 2.0, semantic web, and the like, the latest release of Firefox makes it more concrete by actually including some HTML 5 support. So I’ve been reading up on it a bit, and while it will fill in some holes — video support! — overall it seems somewhat muddled and disappointing.
Now we’re going to add all sorts of “semantic” items like nav, header, article, footer, which will absolutely not be compatible with older browsers. (This ensures that it will take years before it is considered “safe” to use. Pages such as this break in browsers as new as IE8!) How exactly is this an improvement upon existing use of DIVs with class and id? You can use your DIV in any way you wish to accomplish all of these things. If a standard nomenclature was needed (like Dublin Core), that could have been standardized, as in <div id=”nav”> <div id=”header”> and so on. This works today.
The user will never see this anyway, and search engines could easily understand the semantic nature of these divs, since just about everyone uses the same names! (That was supposedly the basis of the research proposing these — they were drawn from he most commonly used div names) Google could easily — today — treat anything with an ID or class of “nav” as a navigation. Heck, it probably already does. So where’s the benefit for these major changes to the most widely-used document standard in the world? I’m not seeing anything that couldn’t have been achieved in other ways.
A while back, A List Apart had some suggestions for adding extensibility while preserving backward compatibility using attributes. (Ex: <div structure="header">) These were duly ignored. But the introduction is worth repeating:
I’m going to make a bold prediction. Long after you and I are gone, HTML will still be around. Not just in billions of archived pages from our era, but as a living, breathing entity. Too much effort, energy, and investment has gone into developing the web’s tools, protocols, and platforms for it to be abandoned lightly, if indeed at all.
Let’s stop to consider our responsibility. By an accident of history, we are associated with the development of an important tool our civilization will use to communicate for decades to come. So, when we turn our minds, idly or in earnest, to improving HTML, we must understand just how far-reaching the ramifications of today’s decisions may be.
This also seems a step back to the bad old days of font tags, b, i, etc. These were not only presentational, they were also not extensible or flexible. Class and ID enable great flexibility, so that new techniques can be developed and sites can be changed easily from a central style sheet. Now we are back to an array of one-trick ponies that are hard-coded into the HTML. And we will add more in coming years, which will also break compatibility.
Headings and sections
And then there’s those sections:
<section>
<h1>Level 1</h1>
<section>
<h1>Level 2</h1>
<section>
<h1>Level 3</h1>
</section>
</section>
</section>
Maybe I am missing something, but the current usage of h1, h2, h3, h4, h5 and their child paragraphs are equally structural, giving clear hierarchy. Is it really better to only use h1’s in nested sections, rather than the less verbose use of numbered headings?:
<h1>Level 1</h1>
<p>Level 1 content</p>
<h2>Level 2</h1>
 <p>Level 2 content</p>
 <h3>Level 3</h1>
<p>Level 3 content</p>
Even the video element, which I welcome, might be messy: Is it clear that everyone will switch to OGG or Vorbis or whatever the spec says? All we need now is Microsoft and Apple strong-arming everyone to push their video formats as the standard. Isn’t this why Flash video took off in the first place — because it bypassed the OS makers video format wars?
So, is HTML 5.0 a consequence of the latest round of browser wars? Perhaps the rush to beat the competition has pushed Firefox, and soon the others, to rush into HTML 5.0 without adequate thought.
Also, is this a case of browser and OS makers strong-arming the W3C into making HTML a friendlier place for their web apps, rather than the ideal that the users, coders and designers would have wanted?
Many of the fixes in HTML 5 seem to solve non-problems. It is also not future-proof or extensible. In 5 or 10 years, they will need to add entirely new elements, and remove some older ones. So we are stuck with never have a truly extensible standard that is backward and forward compatible.
I’m not against progress, but I think they could have done better than this.