Tuesday 31 August 2010

HTML 5

I am currently in the long and drawn-out process of developing a new website. The project is not yet ready for announcement, but prototyping work and coding is well advanced. As usual, the design of the website is proving problematic for this non-designer.

However, the coding of the underlying technology is going swimmingly. It has been years since I have done any database (SQL) work - britishwalks.org is firmly based around flat files generated by a Perl backend. Yet the SQL work has proved to be both enjoyable and interesting, leaving me free to ponder other questions.

HTML (Hyper Text Markup Language) is the underlying technology that defines how a webpage looks and feels to the end-user. Development of the HTML standard has evolved rather slowly over the years,with some dead ends along the way. W3C is the group of experts in charge of specifying the HTML standards.

W3C wants agreement from all interested parties before a technology is standardised. Foremost among these interested parties are the browser developers who need to update their browsers to cope with the new standards. The companies behind these browsers - especially Microsoft, Google and Apple - have their own visions for the future of the Web, and want to bend the specifications towards their visions and business plans. For this reason, they often introduce conflicting versions of new features before they appear in the standard. This compounds arguments between them over the shape and future direction of the technology.

The new version of HTML, HTML 5, is progressing well, and is now a draft standard.It includes new features such as drag-and-drop, video playback, offline storage, 2-D drawing and many others.

There are some problems. For example, take one new feature of HTML 5: the video tag. The final aim for this it to allow embedded video, in a similar style to YouTube. Currently this can only be done via a plugin (a non-standard extension that runs within a browser). Unfortunately some developers want to use one system to encode the video, others another. The lack of agreement has led to the HTML 5 standard having a video tag, but no standardised underlying video system. It is a farcical situation that will not benefit users of the web.

The browser developers are all in a race to implement all the features of HTML 5 as quickly as possible. The latest versions of Internet Explorer, Google Chrome, Firefox and Apple Safari all implement at least part of the standard and are in a race against each other to develop the rest. Sites such as HTML5Test allow you to see which parts of the standard your browser supports.

HTML 5 is going to change the way the web works (although, hopefully, not visibly to the end-users). This has led me to wonder whether my new website should use these new features. On the positive side I shall learn a great deal about these new web technologies, and future-proof my website. On the downside, it might not be fully accessible to users of old web browsers such as the long-lived Internet Explorer 6.

As one small example, my britishwalks website has maps that show walks that I have done in various counties. These maps are generated using a technology called Scalable Vector Graphics (SVG), but as few browsers supported SVG, the website converts these to images for display. SVG should be supported in all major browsers soon, but HTML 5 introduces a new element, canvas, which could well do the job. Using SVG or Canvas instead of images will enhance the user experience in several ways - for instance, using SVG the user could zoom in to see more detail, or click on the image to access a particular walk.

It will be some time before I have to make a decision - I have a great deal of other work to do before then, in addition to pulling together the mass of data needed for the website. By that time the features I want to use may be much more common in browsers, removing that problem.

It is an interesting conundrum. I can achieve all of my aims by using the old HTML 4.01 standard, but only by jumping through various hoops. Time will tell which way I jump.

No comments: