Thoughts on HTML5

I have an issue with the HTML5 draft specification. I hadn't read it before, but poked around in it yesterday. I've come to the conclusion it's not what I want.

I noticed lots of redundant attributes and elements. Basically HTML5 adds a lot of code for problems that don’t exist. What’s wrong with using div id=”header” ? Why do we need a header element? It’s an example of North-American thinking. Sometimes, I will create a Dutch website, and use Dutch class names. So I won’t be using a specific “header” element if i can use something Dutch. Besides, I don’t think standardization on the div element is such a bad thing. It is flexible enough now, why need something else?

The main problem is the spec seems to be written for the benefit of JavaScript. Every new element represents a way to add interaction with JavaScript. This leads to a lot of ridiculous solutions to problems that don’t exist. An example:

3.4.6 The irrelevant attribute

All elements may have the irrelevant content attribute set. The irrelevant attribute is a boolean attribute. When specified on an element, it indicates that the element is not yet, or is no longer, relevant. User agents should not render elements that have the irrelevant attribute specified.

In the following skeletal example, the attribute is used to hide the Web game’s main screen until the user logs in:

<h1>The Example Game</h1>
<section id=”login”>
<h2>Login</h2>
<form>

<!– calls login() once the user’s credentials have been checked –>
</form>
<script>
function login() {
// switch screens
document.getElementById(‘login’).irrelevant = true;
document.getElementById(‘game’).irrelevant = false;
}
</script>
</section>

<section id=”game” irrelevant>

</section>

The irrelevant attribute must not be used to hide content that could legitimately be shown in another presentation. For example, it is incorrect to use

irrelevant to hide panels in a tabbed dialog, because the tabbed interface is merely a kind of overflow presentation — showing all the form controls in one big page with a scrollbar would be equivalent, and no less correct.

Elements in a section hidden by the irrelevant attribute are still active, e.g. scripts and form controls in such sections still render execute and submit respectively. Only their presentation to the user changes.

The irrelevant DOM attribute must reflect the content attribute of the same name.

Source: w3c HTML5 specification

At first I thought this was a joke, but apparently this is a serious suggestion. Couple this with the fact that 70% of the specification consists of a description of the “canvas” element, and we get a spec I really can’t take seriously at the moment. There’s still a long road ahead before implementation can begin (5-10 years apparently).

Which doesn’t really make HTML5 a concern of mine, I most likely won’t be working as a frontend-developer anymore by then.