How to achieve perfection?

The back of my company’s business cards contains a quote from Antoine de Saint-Exupéry. I found the English translation and it reads:

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.

If perfection as defined by Saint-Exupéry  is the goal, HTML5 is – in my opinion – far from being perfect. Even if not perfection, but improvement is the goal, there’s still a lot to do. In this blog I will (today and in the future) ask why some things must be so complicated in HTML(5).

<i> is NOT italics!?

When CSS appeared on the scene the message was clear: Don’t use formatting stuff in HTML. Remove everything from your HTML, that controls the visual appearance and put an equivalent rule in your CSS. W3C moved some of the deprecated markup to the HTML4 “transitional” DTD. I thought “transitional” means “a limited period of time”! But nothing changed in more than a decade. Furthermore, not all of the visual markup was removed from the strict DTD. What about <i> and <b>?

I had removed <i> and <b> from HTML, because of { font-weight: bold } and { font-style: italic }. But it seems to be a fact, people want <i> and <b>. Even the editor I’m using right now, has buttons “b” and “i” (and I’m using the German WordPress UI!).

And what happens now? Things are getting worse! Instead of

  1. removing <i> and <b> or
  2. accepting people want this

WHATWG redefines the “meaning”. But you can NOT redefine meaning in the people’s minds! Last week I gave a workshop on HTML5. It’s impossible to explain, what the HTML5 spec says about <i> and <b>:

Current definition of <i>: “The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, a thought, or a ship name in Western texts.

So <i> is still in the spec, browsers will still render the content in italics, but it doesn’t mean italics anymore? Bullshit. And there is a lot more of this:

Current definition of <b>: “The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede.


Remove <i> and <b>, because of CSS, or leave it as it is. In both cases: Make the spec more precise and pragmatic. Write exactly what an element type does in the browsers. Yes, I understand the ambitious goal of defining HTML not only for visual browsers. But why not define the element types like that:

“As a general rule, b means

  • { font-weight: bold } in a visual browser
  • { volume: 110% } in an aural browser”

BTW: volume was already in the CSS2 Recommendation of 1998.

This entry was posted on 31/05/2011 in critique, proposal and tagged , , , , , , . Bookmark the permalink. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.

Creative Commons License
HTML5 DTD by Stefan Mintert/Linkwerk GmbH is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.