Is HTML5 based on false assumptions?
The transition from existing to future Web technology needs to be smooth or the Web could break. When HTML5 was conceived, it was taken for granted that the future specification (i.e. the language itself) needs to be backwards and forwards compatible. All design decisions in HTML5 are influenced by these two assumptions. If these assumptions are false and there are better alternatives for a smooth transition of the technology, is HTML5 a big design mistake?
The backwards compatibility false assumption
Backwards compatibility is when new Web browsers are able to render old Web pages. The authors of HTML5 falsely assumed that it is the specification (i.e. future markup language) that needs to be backwards compatible, when in fact user-agents can be made backwards compatible. So specifications don't need to be backwards compatible if future Web browsers are backwards compatible by supporting old and new specifications.
The forwards compatibility false assumption
Forwards compatibility is when old Web browsers are able to gracefully accept new languages written to new specifications. The authors of HTML5 falsely assumed that it is the specification (i.e. future markup language) that needs to be forwards compatible when in fact it is better to manage forward compatibility by phasing out old technology and creating tools to transform new languages into old ones.
Old Web browsers do not need to be supported forever. The passage of time makes forward compatibility a temporary issue. For example, does anyone test Web pages in Netscape 4 or Internet Explorer 5 anymore? No. So forward compatibility of Web technology is a matter of managing the phase out of older browsers.
HTML5 achieves forwards compatibility by causing old Web browsers to ignore new elements or fools them into treating these new/unknown elements as elements that they know. There are other options. One solution is to transform future languages written to new specs into old languages, using technology similar to XSLT. This feature can be added to future Web servers and can be made transparent to most users. Alternatively, such a feature can be added to existing Web browsers right now, in order to make them forwards compatible, while the really old browsers that lack this feature will be naturally phased out by the time that the new specifications are ready.
So specifications don't need to be forwards compatible if there is a temporary way to transform languages written to new specifications into old languages.
Why have these false assumptions been made?
The authors of HTML5 are smart guys, so why have they made false assumptions? The only explanation that comes to mind is that this is happening because only one group of stakeholders in future Web technology (the browser vendors) is steering the decisions that will evolve the Web. When this happens, you limit your options and get tunnel vision. The browser vendors only have one tool in their mind - the browser - and when you only have a hammer, everything looks like a nail.
The consequences of false assumptions
Backwards and forwards compatibility is a principle that keeps the Web from breaking. But there are multiple ways to achieve backwards and forwards compatibility. Using the specification (HTML5) to achieve compatibility puts significant constraints on the innovation of future Web technology. Because of this, current problems with HTML cannot be fixed in HTML5. No significant semantics can be added to HTML5. No extensibility can be added to HTML5. New accessibility features cannot be added to HTML5. HTML5 cannot be made more secure.
It's time to do a project evaluation of HTML5
A project evaluation is a way to objectively assess HTML5, determine if it is producing the desired outcome, and if it is the correct way forward. So, let's use this method to re-examine the assumption that the specification should be backwards and forwards compatible. Are there better alternatives? Let's have a real conversation amongst all stakeholders about all the options available to improve Web technology without breaking the current Web. Let's examine how all stakeholders in future Web technology can help manage the transition from the old to the new Web.
Comments are closed for this article.