HTML5 means whatever you want it to mean

Last Friday I found evidence for increasing confusion about what the HTML5 spec actually is. I don’t have any doubts on that score: HTML5 is anything you want it to be as long as it’s new and cool.

In a discussion on the WHAT-WG IRC channel Jeremy got fed up with the fact that he can’t just point people at the spec during his HTML5 evangelism:

I'm doing my damndest to evangelise HTML5 to front end developers and designers but you guys don't make it easy.
[...]
As if this stuff wasn't confusing enough for authors already. Now they have to put up with stupid spec obfuscation for the sake of some minor semantic victory for someone somewhere.
[...]
The WHATWG couldn't make the spec more author-unfriendly if they tried.

Inevitably, it was pointed out that specs aren’t meant for developers but for browser vendors. That’s true but unhelpful, just as it has been for the past ten years. The ritual dance begins anew.

Personally, I’m not going to take part in the dance this time. I already know what the outcome is going to be, and I’m going to skip the rituals.

Because “HTML5” is so vaguely defined we web developers can decide for ourselves what is part of HTML5 and what isn’t, and that’s something I’m looking forward to. (If spec defenders don’t like that they should have been clearer.)

My favourite examples are geolocation and Web Storage, which will feature prominently in my upcoming HTML5 mobile compatibility tables despite the fact that they’re not in the spec. They’re new, exciting, and absolutely vital on mobile. They’re in my HTML5 spec.

HTML5 is the continuation of Web 2.0 by other means, just as Web 2.0 was the continuation of DHTML. Apparently we need a vague, all-encompassing term for cool new stuff that we want browsers to support and clients to buy so we can play with it.

That’s what HTML5 should be. Because there are new and exciting things going on, people will start to make wish lists. Exactly which items on those lists are described in a document called “HTML5” will slowly cease to matter, as long as they have some browser support.

As soon as a certain feature appears on enough HTML5 lists it will become canonical. Conversely, the stuff that nobody’s really interested in will no longer be HTML5, even if it’s in a spec with that name.

I consider this a Good Thing. Wisdom of the crowds and all that. (Again, if spec defenders don’t like it, they should have been more accomodating to authors.)

So what’s in your HTML5 spec? Top three, anyone?

Update: If you still want to vote, do it here.

This is the blog of Peter-Paul Koch, mobile platform strategist, consultant, and trainer. You can also follow him on Twitter.
Atom RSS

I’m speaking at the following conferences:

(Data from Lanyrd)

Categories:

Monthlies:

Comments

Comments are closed.

1 Posted by Mathias Bynens on 11 January 2010 | Permalink

My HTML5 top three:

1) The new doctype. Seriously, it’s awesome.
2) The new input types. I can’t wait to see these get more widespread browser support.
3) A as block level element :)

While this is probably not a top three in order of coolness, it’s definitely a list of the HTML5 stuff I’ll be using the most in my activities as a front-end developer.

2 Posted by jerone on 11 January 2010 | Permalink

I think HTML5 and Web3.0 are going hand in hand.

3 Posted by Harald Kirschner on 11 January 2010 | Permalink

True words … specs are nice to read if you have time, but HTML5 gets more and more simply the next step, the new tools we can use (when we don't need them on old browsers).

Top 3:
* Client-side storage.
* Offline resources.
* New semantic elements like article, header, footer, etc.

WTF #1: Dropping strict syntax. (Yes I know, but I like XML)

4 Posted by Christian Wirkus on 11 January 2010 | Permalink

- less needless stuff in markup to be valid (no rows and cols in textarea, shorter doctype, no type="text/..." in script)
- SVG
- css-columns

5 Posted by Guillaume Stricher on 11 January 2010 | Permalink

Video, audio, canvas.

6 Posted by Bannerlog on 11 January 2010 | Permalink

* Client-side storage
* Web workers
* Canvas

7 Posted by kL on 11 January 2010 | Permalink

I demand element to be removed from HTML5!

8 Posted by kL on 11 January 2010 | Permalink

I demand <lightbox> element to be removed from HTML5!

(ppk, your HTML/entity sanitisation code sucks: submit submits something else than preview previews).

9 Posted by qFox on 11 January 2010 | Permalink

1. Canvas
2. File Api
3. Web Workers

Maybe we should just call it web5.0 and be done with it :)

10 Posted by Andrew Hedges on 11 January 2010 | Permalink

For me, right now, HTML5 means more semantic markup. Offline storage, video and audio tags, etc. will all be super duper when they're widely supported.

11 Posted by bruce on 11 January 2010 | Permalink

I'm guilty of lumping geolocation in with "html5" even though it isn't. (It wasn't deliberate, and if I'd thought about it I'd have realised in 0.65 seconds that it isn't.)

My definition of "HTML5" is: it came out of WHATWG (and XML-heads and W3C process-heads hate it.)

12 Posted by Michael on 11 January 2010 | Permalink

1. <canvas>
2. <canvas>
3. <canvas>

13 Posted by Martin Kliehm on 11 January 2010 | Permalink

- Browser APIs
- Canvas 2D + 3D
- Video

14 Posted by Trygve Lie on 11 January 2010 | Permalink

- Widgets
- Web Storage
- Websockets

On a close fourth spot; the Canvas, Video and Audio elements.

15 Posted by Dave Mosher on 11 January 2010 | Permalink

If the HTML5 spec proposed is only for browser vendors where are the developer support and input channels?

Anyways, here's my top 3:

- form and input element changes
- client side storage
- canvas

16 Posted by John A. Bilicki III on 11 January 2010 | Permalink

Maybe XHTML5 but not HTML5. Web 3.0 is not going to be loosely defined or exceptionally subjective, I can guarantee that. The doctype is a massive mistake in my opinion and there are so many other things wrong with HTML5 that I might consider XHTML5...might.

Obviously all specifications need to be written for vendors and designers/developers. Just as all software should adapt to savvy and non-savvy users. Because of the monotone in the technology industry as a whole I don't see this happening anytime soon. Not until designers rise up and take the helm and by designers I don't mean minimalists who think everyone knows what they're doing when they sit down in front of a computer. Every company and unfortunately the absolute majority of people I've spoken about this with disagree hence why the user experience remains so vaguely defined.

17 Posted by semper on 11 January 2010 | Permalink

1. doctype
2. websockets
3. web storage

18 Posted by Steve Souders on 11 January 2010 | Permalink

1. SCRIPT attributes that really work: async, defer, and postonload
2. border-radius (really CSS3)
3. resource packages, a la http://limi.net/articles/resource-packages/

19 Posted by Marcos Caceres on 11 January 2010 | Permalink

Um, then in should just be called "HTML". Not HTML5. This is exactly what the WHAT-WG did already: they renamed their spec to be just WHATWG HTML. Of course, then they decided to "continue evolving the specification" outside the W3C, which I strongly disagree with (browser vendors are not the custodians of the Web, and WHATWG should really be dismantled having now served its purpose: the destruction of XHTML and the advancement to HTML5).

Also, there is no reason not to tell the WHATWG and HTMLWG to make the spec legible to EVERYONE. Raise a formal objection if they don't - dont let assholes push you around. The spec is completely illegible at the moment and that is a major barrier to adoption and interoperability. When they say "it's for implementers", just tell them you are implementing and you don't get it. Then they have to fix it.

Well, I might as well now join in the fun. My HTML5:
Putting header tags at the end of the document. Having multiple body elements, and iong off whatever I feel like.... oh, and not giving a crap about validity, because the HTML parsing algorithm will just put everything in the right place anyway, so who gives a crap, right? :)

@Trygve Lie, please don't associate widgets with HTML5.

20 Posted by Samuel Michelot on 11 January 2010 | Permalink

For me :

* Offline web app. (database and cache)
* Media (Video, sound etc... without flash)
* Web workers

Oups, I need another bullet :

* Canvas !

HTML5 will rock, especially on mobile !

21 Posted by r4 kaart on 11 January 2010 | Permalink

My favorites are:

* canvas
* datagrid
* video

22 Posted by chriskalani on 11 January 2010 | Permalink

1. New sexy selectors (header, nav, section, footer, etc.)
2. Canvas
3. Forms

23 Posted by Luca on 12 January 2010 | Permalink

My bests:

* Client-side storage
* File API
* Audio/Video without plugins

24 Posted by Sander Aarts on 12 January 2010 | Permalink

@kL:
"I demand element to be removed from HTML5!"

Can you provide a link to the part of the spec where this element is described? ;)

25 Posted by Sander Aarts on 12 January 2010 | Permalink

.. and indeed: 'submit' submits something else than 'preview' previews ;(

26 Posted by Iraê on 12 January 2010 | Permalink

* Clientside Storage
* Canvas
* Media (audio/video)

27 Posted by Lachlan Hunt on 13 January 2010 | Permalink

No, HTML5 doesn't mean whatever you want it to mean. It still means the stuff that appears in the W3C HTML5 spec, which is a subset of all the things that are considered to be part of the HTML platform as a whole. This includes things like the proposed device element and, as of the recent spec split, Microdata.

Nobody in the WHATWG is claiming things like Web Storage and Geolocation are part of HTML5 (though, Web Storage did start its life within it), and it does not help anyone for you to start claiming that HTML5 means whatever you like. That's why we call the all-in-one spec that contains everything that Hixie works on "Web Applications 1.0".

The whole point of dropping the version number is that versions are not important. The state of the spec as a whole is not important. What's important are the things that are part of the HTML platform as a whole, and the state of individual features with regards to spec maturity and implementation status.

28 Posted by Ian Hickson on 13 January 2010 | Permalink

There's even a section in the WHATWG HTML spec's introducation that specifically addresses the question of what HTML5 is:

http://www.whatwg.org/specs/web-apps/current-work/#is-this-html5?

29 Posted by Miller Medeiros on 13 January 2010 | Permalink

I think that it's really weird that the HTML5 spec (markup language) includes a lot of things that are SCRIPT related.

Canvas, Forms, Messaging, and any other JavaScript APIs should be included on different specs. - Like the DOM [http://www.w3.org/DOM/DOMTR].

30 Posted by Maik on 15 January 2010 | Permalink

1 Canvas!!
2 Doctype
3 Audio and Video

31 Posted by Bobby Jack on 15 January 2010 | Permalink

Video, so it finally won't matter that I don't have flash installed.
The new structural elements that will enable sharing of content in a non-brain-dead manner.
Canvas, to make things pretty the right way.

32 Posted by Alf Lervåg on 15 January 2010 | Permalink

1. Canvas
2. WebSocket
3. LocalStorage

33 Posted by John Allsopp on 15 January 2010 | Permalink

Lachlan Hunt says

"That's why we call the all-in-one spec that contains *everything that Hixie works* on "Web Applications 1.0"."

telling?

34 Posted by Constantine Vesna on 16 January 2010 | Permalink

›› Posted by Ian Hickson on 13 January 2010
›› There's even a section in the WHATWG HTML spec's introduction that specifically addresses the question of what HTML5 is:
http://www.whatwg.org/specs/web-apps/current-work/#is-this-html5?

... ok. This means that the only things left in HTML5 worth mentioning are:

1) AUDIO and VIDEO tags.
2) "The WTF of HTML5" - no enforcement of strict markup. Come on - soon, 90% of html code will be either written in GUI, or generated from server/client side scripts. Why return back bad practices ?

ps: While HTML5 spec looked like a candy few years ago, now it looks like an empty wrapping paper - 'coz the candy is not there anymore.

35 Posted by Luckypouet on 19 January 2010 | Permalink

For me about HTML5 :

1 - Semantic (tags : "header","section", etc)
2 - Medias (tags : "audio", "video")
3 - Events (attributs : "ondragstart", etc)

36 Posted by Wolfgang on 22 January 2010 | Permalink

My favorites for HTML5:

- canvas
- datagrid
- media (audio/video)

37 Posted by Josh on 27 January 2010 | Permalink

html5 is great. i don't like flash and i have often problems with it. now they have to clear the codec problem

38 Posted by Tyler Waters on 31 January 2010 | Permalink

Wow I just visited the what-wg link that Ian submitted and it darn-near crashed my browser. I'll say it reminds me of a generic argument I've heard Americans say on cable-tv about health-care reform and the inability to understand the x-number of pages in the bill... Those bills ain't got nothing on the HTML-5 spec, and hey at least they have a legislative framework to work the bill through. They should count their blessings.
Anyway:

(1) new doctype. so clean & simple. I can't count the number of times I've looked up the existing doctypes.

(2) media elements like video and audio -- it would be nice to have a simple element for including media on a page without worrying about classids and ... other stuff.

(3) local-storage, 'nuff said

39 Posted by Martin Saulis on 3 February 2010 | Permalink

Storage, workers, canvas, video / audio.

I do think it's all about bringing the web experience to the user without middlemen.