What Does It Mean For A Business Software Vendor To Support HTML5?<br />(Executive Summary)
There are two versions of this blog; this one – aimed at non-technical decision makers, and a second more technical one aimed at developers.
Irrespective of the version you read, the purpose of this blog is to cut through all the marketing phluff and hype that has grown up around HTML5 and get down to the hard facts.
My approach focuses first on examining whether the correct question is being asked, and secondly, on the various standards and recommendations that exist for the functional capabilities of a browser. This will act as the groundwork for establishing what HTML5 actually is. Only then we can start to address the opening question of what it means for a software vendor to “support” HTML5.
h2. More Hype ‘n’ Phluff ‘n’ Stuff
Remember all the hype that AJAX generated 6 or so years ago? Well, history seems to be repeating itself; but this time, the name “Ajax” has been substituted for “HTML5”.
Even though there are an increasing number of websites dedicated to showcasing and explaining what HTML5 is, the public perception of HTML5 still seems to consist of 9 parts disinformation, hype and marketing phluff, mixed with 1 part hard fact.
h2. So, What Really is the Question?
Albert Einstein was once asked by a journalist the following question: “What would you do if you knew that in 1 hour, the earth would be hit by an asteroid that could destroy all life on the planet?”
Einstein replied (no doubt with a wry smile): “I would spend 55 minutes defining the question, and 5 minutes answering it.”
Extracting the HTML5 facts from the phluff will require exactly the same approach. Once we have carefully defined the question, answering it should be very straight forward.
h1. So What Is HTML5?
The most accurate description of HTML5 is to say that it is the next major revision of HTML – the language used to build web pages. However, this description is not particularly helpful since many people do not have a clear understanding of what the term “HTML”[ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftn1] actually describes.
In addition to this, through the indiscriminate use of hype and marketing phluff, the media has expanded the term “HTML5” such that it is now little more than a generic, blanket term covering a wide range of new, Web-based features that you may (or may not) find popping up in the shiny new browser you’ve just installed.
In order to de-phluff the whole “What is HTML5?” question, we must first backtrack few steps and look at how standards for the Web are defined and who defines them.
h2. Is There A Standards Body For The Web?
Yes: this organization is the called World Wide Web Consortium (W3C) and was founded (and is currently chaired) by the man who invented the World Wide Web, Tim Berners-Lee.
In addition to the W3C, there is the Web Hypertext Application Technology Working Group (WHATWG). Formed in 2004, the WHATWG is a community of individuals all interested in evolving HTML and its various related technologies. It was formed by a small group of people who had become somewhat frustrated – not only by the slow progress made on standards development by the W3C, but also on the W3C’s 2004 decision to abandon HTML in favour of XML.[ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftn2]
Independently of the W3C, the WHATWG took it upon themselves to develop a major revision of the W3C’s current HTML standard known as HTML4. This is where the term “HTML5” was first used.
Then In April 2007, the WHATWG proposed that the W3C adopt their new HTML5 proposal as the starting point for their work. This proposal was accepted and, as of May 2007, the W3C took on WHATWG’s specification for HTML5 as their official proposal for the new HTML standard.
h2. How Is The W3C Organised And What Standards Do They Define?
The W3C exists as a community of individuals, businesses, non-profit organizations, universities and government bodies who have made it their task to bring agreement to the development of software standards for the World Wide Web. The W3C has an Advisory Committee that oversees the process of standards recommendation.
As of January 2011, the W3C had 324 members.
The W3C defines standards not only for HTML, but also for many other areas of Web based software.
As you can see, HTML is just one of many different standards defined by the W3C.
h2. How Long Does It Take For The W3C To Create A Recommendation?
Well, let’s just say you shouldn’t hold your breath waiting.
There is a well-defined process through which all recommendations pass, starting with the initial idea and finally ending up at a formal recommendation. These stages of maturity are as follows:
Working Draft (WD)<br />This is the first publically available version of a standard that is open for comment by anyone. Working drafts go through multiple, possibly disruptive revisions.
Candidate Recommendation (CR)
The group responsible for the particular standard is now satisfied that the functional requirements have been achieved. At this point, the development community is approached to determine how viable the standard is as working software.
Proposed Recommendation (PR)<br />It has now been agreed that the standard both achieves its functional requirements and can be implemented as working software. It is then submitted to the W3C Advisory Committee for approval.
W3C Recommendation (REC)<br />The Advisory Committee has approved the standard and now issues it as a formal W3C recommendation. At this point it becomes a defined standard to which Web-based software should conform.
The time it takes to get an initial idea to progress through these stages of maturity varies widely and in some cases, can be quite long. For instance the third revision of the Cascading Style Sheet standard (known as CSS Level 3 or just CSS3) started in 1998. This standard is still being worked on in 2011![ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftn3]
h2. Once A W3C Recommendation Is Made, What Then?
Having a standards body for Web based software is all very good and necessary, but the W3C has no direct authority to enforce the adoption of any of its recommendations. Therefore, browser vendors have implemented only those new features that best suited their development timescales and/or corporate goals. This piece-meal approach to feature development has created a high degree of inconsistency between different browsers and has been a major source of heart-ache and pain for Web developers – just ask any Web developer how much extra time, effort and expense is required to get a website to function equally well in not just different browsers, but different versions of the same browser.
In spite of the fact that the bureaucratic processes of the W3C move like a speeding glacier, the hype and media interest surrounding HTML5, together with the fact that the Web has become a ubiquitous part of our business and social lives, has provided sufficient incentive for the major browser vendors to implement many of the new W3C features long before they ever reach even the Candidate Recommendation stage.
Consequently, the picture today for inter-browser compatibility is still not perfect, but is looking better than it has done in the past.
h2. So Where Are We Up To With HTML5?
Back in 2008, Ian Hickson, the editor of the HTML5 specification, quipped[ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftn4] that he did not expect HTML5 to become a full W3C Recommendation before 2022. Fortunately, he has since revised that opinion and stated that he expects HTML5 to reach the Candidate Recommendation stage in 2011, and become an official W3C Recommendation by 2014.
Writing this blog in February 2011, 2014 still seems like quite a long way off; but unlike the adoption of HTML4 and CSS2 over a decade ago, browser vendors have not waited for the W3C to give the green light; they have just gone ahead and implemented the features anyway. This is largely because browser vendors can achieve many functional advantages through early adoption of the W3C’s proposed new features – regardless of the fact that most of the proposals are still at the Working Draft stage.
So let’s look at what HTML5 actually is and what it can offer.
h1. HTML5 – What Is It Really?
As we have seen from the previous section, the W3C is currently working on multiple proposals for how Web based software should operate. These recommendations cover a wide range of functionality that includes:
|HTML & CSS||Defines the structure for a web page’s content and how it should be presented)|
|Scripting and Ajax||(Adds dynamic, asynchronous refresh capabilities to a web page)|
|Graphics||(Defines which picture formats are supported)|
|Audio & Video||(Defines how audio & video content can be handled without the need for plug-ins)|
|Accessibility||(Defines how web pages can be accessed by people with disabilities)|
|Mobile Web||(Defines the standards for accessing the Web from mobile devices)|
These topics are just some of the many currently being dealt with by the W3C. However, if you look at all the different features that the media are labelling as “HTML5”, you will find that they are drawn from many different W3C proposals – only one of which is actually called HTML5.
So when the term “HTML5” appears in common usage, it is typically being used simply as a generic term to cover a wide variety of new, browser based features – and not simply the single W3C standard called HTML5.
h1. So I Can Just Go Ahead And Build Cool New RIA Apps in HTML5!
Hold on a second there, Tiger!
As stated above, browser vendors have looked at the wide range of new functionality proposed by the W3C and adopted those parts that best suited their development schedules or corporate needs. Although the situation is better than it has been in the past, incompatibility still exists between different browsers with regard to support for the full range of “HTML5” functionality. So the bottom line is this:
You can build a business application using as many of these new, ambiguously named “HTML5” features as you like.
However, it’s your customer’s choice of browser that will determine whether or not your application will work.
So support for all these wonderful new “HTML5” features is provided by the browser used to display the application and not by the company writing the business application! The limiting factor here is the customer’s choice of browser.
h1. Ok, So Where Does That Leave Me?
As someone who writes Web-based business applications, it probably leaves you feeling pretty annoyed at the authors of all those rave blogs and eZine articles who’ve told you how wonderful life will be in HTML5’s Promised Land. So here’s how to proceed:
- Check with your customer base and find out what browser(s) they are using.
- Check to see which of the new “HTML5” features are supported by those browsers.
- The list created in step 2) will then define the subset of true “HTML5” features you are free to work with.
- Only then can you start to build an “HTML5” application that will work at your customer’s site.
h2. So Which Browsers Are The HTML5 High Flyers And Which Are The Lame Ducks?
As of Feb 2011, Google’s Chrome 9 and Apple’s Safari 5.0.3 offer the widest range of support for all the new features generically known as “HTML5”.[ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftn5]
Coming in second is Firefox 4 which also has good support for “HTML5”, but it’s not quite as extensive as that found in Chrome or Safari.
And unfortunately, trailing in a somewhat distant third place is Microsoft’s Internet Explorer. The latest version of Internet Explorer (IE9) has some support for “HTML5”, but lacks support for many of the new features in HTML5 Forms and CSS Level 3.
Opinion is also divided as to whether IE9 has as much HTML5 support as is claimed. Microsoft claim it has around 99% HTML5 support, but the rest of browser-savvy world disagrees. See http://people.mozilla.com/~prouget/ie9/ for details.
The bottom line here is that you’re nowhere near the Promised Land of “HTML5” – instead, you’re wandering in the HTML4 wilderness without even having satisfactory support for CSS2.
h2. How Do I Know What HTML5 Features Are Supported By Which Browser?
Various websites exist that will either present you with tables of which browser supports which feature, or the website will check the capability of your particular browser and give you a simple report. These include:
|Can I Use?||[http://www.camiuse.com | http://www.camiuse.com]||Tables of which browsers support which features|
|HTML5 Readiness||[http://www.html5readiness.com | http://www.html5readiness.com/]||Chart of which browsers support which features|
|Modernizr||[http://www.modernizr.com | http://www.modrnizr.com/]||Performs HTML5 feature checks on your browser|
h2. What Should I Do If My Customer’s Browser Really Belongs In a Museum?
By museum piece, I really mean Internet Explorer 6, but these principles apply to any out-of-date browser.
Under these circumstances, it would be best to enter into discussions with your customers and explain that you would love to deliver them some shiny new, “HTML5” enabled applications, but until they start to use HTML5-enabled browsers, you are unable to provide them with up-to-date applications that deliver a modern UI experience.
If the customer is willing to upgrade their browsers, then you are free to use whatever HTML5 features are supported by the customer’s choice of browser.
If, however, the customer is either unwilling or unable to upgrade from their old version(s) of IE, then you can adopt one of three approaches:
Completely Ignore HTML5
- Accept the current limitations of HTML4 and CSS2 to be less of a problem than a browser upgrade
- Be unable to deliver an application that provides a modern UI experience
There should be a strong business case against a browser upgrade before this approach can be considered viable.
Since this approach requires that HTML5-like functionality is re-developed using old technology, a Cost/Benefit analysis is strongly recommended before embarking on such an exercise.
Dynamic AdaptationTrue support for this new functionality takes place in the browser and not in the business application.
A business software vendor can make use of as many of these new “HTML5” features as they like, but there is no guarantee that these features have been implemented in the browser used by their customers.
If your business applications need to accommodate the widely varying capabilities of old and new browsers alike, then the dynamic adaptation approach described above should be followed.
What Does It Mean For a Business Software Vendor to Support HTML5?
By now it should be clear that the word “support” is not the best choice of verb in this question. This is because the actual support for these new features takes places within the browser, and not in any application created by a business software vendor. So it is the browser that supports “HTML5”, and the business software vendor then writes an application that makes use of these various new features.
Unless you, the business software vendor, also write your own browser, then you are entirely reliant on the 3rd party browser vendor to provide support for the various new “HTML5” features you wish to use.
Therefore in the above question, we should replace the word “support” with the word “implement” and also be a little more specific on what we mean by the term HTML5. So the question now reads:
And I think you already know the answer to this question…
[ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftnref1] HTML stands for Hypertext Markup Language.
[ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftnref2] XML stands for Extensible Markup Language
[ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftnref3] Due to the slow rate of progress with CSS3, the W3C has now stated that individual style sheet features should be treated as separate units of development (known as modules) that can reach “W3C Recommendation” status independently; yet all are considered part of the wider standard known as “CSS Level 3”.
[ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftnref4] See http://blogs.techrepublic.com.com/programming-and-development/?p=718 [ | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftnref6] A tool such as that found on http://www.html5boilerplate.com could be helpful here</p></div></div>