This morning, my buddy Gil pointed me to a run-down of the new features in HTML 5. There are a slew of new tags, some of which I think will be useful I mostly think they're poorly implemented or unnecessary.

  • Structural and Block Semantic Elements: The major addition is a set of tags for organizing content (e.g. <header>, <nav>, <article> and <aside>). This is designed to replace stuff like <div class="header"> and I think it's a great idea. It'll make it much easier to re-use DOM javascript to manipulate a wide variety of sites since you won't have to guess if a class is named masthead or header or top-box or place-for-thingies.
  • <time>: The idea is great, but the implementation blows. Currently you enter <time datetime="2007-04...">April 2007<time>, when it should be the other way around. You should be able to specify a format and have the browser change it programatically, which could hopefully be done by a future version of CSS. It'd look like <time format="%h:%m%P">2007-04-07 13:12:00<time>. That would be infinitely more useful.
  • <meter>: Similarly, the code for meter is all wrong. They suggest using <meter value="88.7" min="0" max="100" low="65" high="96" optimum="100">B+</meter> but imagine doing that for thirty grades. Instead, create a container tag, something like <meterset>, and assign all the common values there and just keep the value as a parameter of meter.
  • Embedded media: Finally. So there will soon be <video> and <audio> tags at your disposal, which is great but incredibly short-sighted. What if there is something else that comes down the line? Instead, it should just be <media type="audio" />. At least this way we can one day have <media type="kabuki theater" />.
  • <details>: This would hold meta-data that you might not want to show, but might want to use in another way. Apparently the details are a little fuzzy, but I'm hoping this can hold some rss-like info to make it easier to parse XHTML in feed readers. I'm guessing this is wishful thinking.

Really, that's about it based on what's in this article. There is also a new tag called <datagrid> that will let you have easier access to a table or select via the DOM, but I can't imagine it will allow you to do much more than you can right now. As Gil put it, "Can't micro-formats take care of most of this stuff?" I do think it's nice to build it in, but creating specific tags for instances when I would normally use a div is underwhelming. I guess the key is to tighten up the data structures enough so that they're easier to manipulate with javascript and CSS, which is probably why I'd be more excited by a major update to either of those languages.

For the many of you here who aren't web geeks, I apologize — this is as nerdy as it gets. For those who are, enjoy this brief moment of super-geekery on Capn Design.