After 9 months of work the first working draft of HTML 5 is here. I take a look at some of the changes from HTML 4 and think about how this will affect how web developers build sites in the future.
Opinion: why is the Macbook Air a full 300 pounds (600 dollars) more expensive than in the US?
HTML 5 working draft announced
Back in 1997 HTML4 became a W3C standard. Since then it has been formalised into XML as xHTML 1 and pretty much every site on the web uses either plain HTML4 or xHTML with CSS. Today the W3C announced the first draft of the next wave of HTML standards, HTML5.
HTML5 is based upon HTML4 and aims to extend rather than re-write the basic HTML syntax. There have been some thing removed from the basic HTML language but this is in the spirit of moving more towards the current xHTML/CSS model with the HTML describing the content and the CSS defining how it should appear.
Looking at the spec its very noticeable that it is now aimed squarely at making web applications much easier to implement. Every part of the language has been visited and extended to add features and tools which will make it easier to do basic web application type things. Some of the new features include:
Ramped up forms with support for dynamic controls such as select boxes
Extra form elements and attributes to deal with dates, times, number only fields, mandatory elements, email and URL format validators, etc.
links can now have a 'ping' attribute which will 'ping' an additional URL when the link is clicked, useful for stats tracking, banner tracking, etc
Forms now have 'replace' attribute which will change the page layout on form submission, I'm guessing this will be useful for AJAX type form submissions
There are new elements which include 'datagrid', 'event-source' to catch server driven events, 'datalist', 'output' and 'progress'. It looks like all are added with dynamic data in mind.
New API's to cover drag and drop, repeatable items (such as a catalogue listing), editing content, networking, 2D drawing, data storage, server sent events, offline operation and displaying audio and video.
Its clear that HTML5 is preparing for a very web 3.0 world where much less is done using backend code/front end script and much more is done by the browser and the actual markup language itself. This should free web developers from writing hundreds of lines of boiler plate code just to do basic things. It should allow developers to focus on the mechanics and business logic of their applications making them work much more like desktop apps.
These improvements should take away much of the pain from web development and should provide improvements in application reliability, application design and interface design driving things much more towards an MVC type mentality.
Of course a standard is more or less useless unless its actually implemented by the browser vendors. This means its a waiting game to see how long it will take these goodies to make it into the mainstream.
I predict the open source based browsers like Safari and Firefox will catch on quickly, as will browsers that market standards support such as Opera. Microsoft will almost certainly be slow the party as its not in their best interests to support or indorse open standards on something as major as the web. Microsoft's recent announcement that IE8 will continue to support a broken standards compliant model in preference to an actual standards compliant model is proof that they are still just doing their own thing whenever they can get away with it.
At any rate its likely we'll have to wait several years (and several more lawsuits) before we see usable and decent support for HTML5 across all major browsers.
I you have any questions of comments about anything I've written here or would like to discuss the article in more detail then feel free to drop me a line.