When Steve Jobs refused to allow Flash on iOS devices, he argued that HTML5 could do everything Flash did.
He wasn't being entirely honest - the reality distortion field was strong that day - but ultimately Apple won and Adobe didn't; HTML5, not Flash, is the technology that's transforming the web. So what exactly is it, and what does it want from us?
What is HTML5?
HTML5 is the latest version of Hypertext Markup Language, the code that describes web pages. It's actually three kinds of code:
- HTML, which provides the structure
- Cascading Style Sheets (CSS), which take care of presentation
What's so great about HTML5?
HTML5 has been designed to deliver almost everything you'd want to do online without requiring additional software such as browser plugins. It does everything from animation to apps, music to movies, and can also be used to build incredibly complicated applications that run in your browser.
There's more. HTML5 isn't proprietary, so you don't need to pay royalties to use it. It's also cross-platform, which means it doesn't care whether you're using a tablet or a smartphone, a netbook, notebook or ultrabook or a Smart TV: if your browser supports HTML5, it should work flawlessly. Inevitably, it's a bit more complicated than that. More about that in a moment.
What does HTML5 do?
We've come a long way since HTML could barely handle a simple page layout. HTML5 can be used to write web applications that still work when you're not connected to the net; to tell websites where you are physically located; to handle high definition video; and to deliver extraordinary graphics.
When will HTML5 be finished?
HTML5 is an evolving standard, so it's a bit misleading to talk about when it'll be finished. What's important is that HTML's features - such as the aforementioned geolocation, web apps, video and graphics can be used now, provided your browser supports them.
Do I need an HTML5 browser?
You've probably got one already. All of the big name browsers - Internet Explorer, Firefox, Chrome, Safari and Opera, Mobile Safari and Android's browser - support HTML5, but they don't all support the same things.
Firefox generally supports the widest selection of HTML5 features, with Chrome and Safari following shortly afterwards, but as we said HTML5 is an evolving standard and the latest versions of each browser more than cover the basics.
What's the problem with HTML5 video?
The HTML5 standard supports video, but unfortunately nobody could agree on which format(s) to support - and that means that different browsers support different HTML5 video formats. There are three main ones:
- Ogg Theora, which is supported by every browser bar Internet Explorer (Safari support requires a manual installation)
- H.264, which is supported by everyone but Firefox
- VP8/WebM, which is supported by everything (although Safari and IE require manual installations). Google announced that it would eventually remove H.264 support from Chrome. If you're thinking "blimey, that sounds like a right mess," we'd agree with you.
Will HTML5 replace Flash and Silverlight?
In some ways it already has: iOS devices don't run Flash, and many video websites have either moved from Flash to HTML5 video or at least offered HTML5 as an option. However, as HTML5 doesn't include digital rights management (DRM) technology to prevent copying, many content owners prefer proprietary, DRM-friendly formats such as Flash or Silverlight. For example, UK video site LoveFilm is dropping Flash - but instead of HTML5, it's moving to Silverlight.
Although Adobe has announced that it will stop developing the Flash Player for mobile devices, Flash is also used for considerably more than just showing video, so it's not going anywhere in a hurry.
What tools do I need to create HTML5 websites?
Purists would say that you don't need any tools: "you can write HTML5 code with a biro and a bit of paper if you wish" but others prefer tools such as Adobe's Dreamweaver, which gained an HTML5 pack in 2010. Adobe is also readying Edge, a dedicated HTML5 animation tool that promises to make it easy to create Flash-style animation.