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’ StuffRemember 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?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”[[1] | 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?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.
These include:
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:
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![[3] | 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[[4] | 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.
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:
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 |
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:
In this approach, you would deliver your Web application using only those capabilities delivered by HTML4, JavaScript and CSS2. Generally speaking your application will run successfully in both the old and new browsers; however, you should be aware that you will:
In this approach, you attempt (as much as possible) to make your application look and function like a modern “HTML5” based application – without actually being one. This approach is widely used at the moment by Web developers who want to make use of the benefits provided by “HTML5”, but are restricted by the limitations of browsers that do not understand the new HTML5 tags, new JavaScript functionality or CSS3 style information.
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.
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:
What Does It Mean For a Business Software Vendor to Implement an Application<br />That Uses the New Features found in HTML5, CSS3 and JavaScript?
And I think you already know the answer to this question...
🙂
Chris Whealy
[[1] | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftnref1] HTML stands for Hypertext Markup Language.
[[2] | https://weblogs.sdn.sap.com/cs/blank/create/wlg#_ftnref2] XML stands for Extensible Markup Language
[[3] | 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”.