HTML Versions

The web is somewhat different from most other aspects of computers because the relevance of particular versions of web based languages is determined not by when browsers start to support them but by when browsers that don't support them finally die.

At the time of writing this (and probably for many many years to come) there are three versions of (X)HTML that are relevant - HTML 4.01, XHTML 1.0 and (X)HTML 5 (by whatever name they have decided to call it this week).

The specification for HTML 4.01 was finished back in 1999 and so all browsers after that were able to implement support for it.Not all browsers did implement support for it straight away though. Since HTML 4 was significantly different from HTML 3.2 in that it did away with all of the tags and attributes intended to affect the appearance of the page and replaced them with CSS, a transitional step was allowd for so that people could convert their web pages gradually as browsers implemented more and more of the HTML 4 and CSS 2.1 "standards". The actual HTML 4 standard is referred to as "strict".

While it was possible to start transitioning to HTML 4 straight away, at least some of the old HTML 3.2 tags and attributes continued to be necessary until about 2005 when Netscape 4 finally died (with the number of people using that browser finally falling low enough that providing them with a simpler version of the web page that didn't necessarily look the same as it did in more modern browsers became an acceptable option. Since then there has been no reason to create new web sites using any of the HTML 3.2 that was done away with in HTML 4 and all mew web sites from then on ought to have been created using HTML 4.01 strict.

While HTML 4.01 strict became the defacto web standard in about 2005, workarounds for browsers that don't fully support CSS 2.1 were still necessary with some of those workarounds requiring additional HTML tags to serve as hooks for the workaround CSS. The last browser in popular use that doesn't fully support CSS 2.1 is Internet Explorer 7 and so as web sites decide that the number of visitors that they have using that browser or earlier versions has fallen low enough to give them a simpler version of the page then workarounds will no longer be necessary to make uup for browser's lack of CSS 2.1 support (although it may still be necessary if the web site wants to implement any of the new options offered by CSS 3).

The specification for XHTML 1.0 was completed in 2001. This was basically HTML 4.01 rewritten so that it is based on XML and can be combined with other XML based document types such as SVG to provide more powerful documents. Again an option for transitioning to the new version was provided with the ability to use a subset of XHTML 1.0 and serve it as HTML instead of as XHTML. This allows you to write your pages using code that will work as XHTML while still serving it as HTML until such time as all browsers support XHTML. Again with this Netscape 4 was a limiting factor since it required a slight modification to the subset of XHTML that is supposed to work as HTML in order for it to work in that browser. The self closing tags in XHTML use a / immediately before the > that marks the end of the tag to indicate that the tag is self closing. This would break the last attribute in the tag in Netscape 4 (or the entire tag if it didn't have any attributes). The fix to get it to work in Netscape 4 was to insert an extra space before the /. This extra space is unnecessary in XHTML itself and is also unnecessary when serving the XHTML to more recent browsers such as Internet Explorer 4.

The last of the browsers that doesn't support XHTML is Internet Explorer 8 so once that browser dies it will be possible to finish converting from HTML to XHTML. In this instance the situation is slightly different from the moves between different HTML versions because XHTML is processed differently than HTML. For one thing any browsers that do not support it (such as IE8) will not be able to display the page at all but will instead offer the file for download. The other difference is that browsers will correct minor errors in your HTML (such as reversing the order in which you close tags or meaningless / in the end of tags. XHTML doesn't correct any errors. If you make any mistakes in the XHTML then the web page will not display at all. This is a GOOD thing because it means that it will be really easy to detect errors in the XHTML and get them fixed before the page goes live instead of them still being there ten years later.

The newest version of (X)HTML is (X)HTML 5 (although they seem to have decided to drop the 5 from the name which makes it just about impossible to discuss it unless youdisregard what those developing it decided and continue touse the 5). This version of HTML and XHTML is so new that it is still only a draft and subject to change. While browsers may implement some parts of the proposal there is no guarantee that what they implement will match what is in the final standard (as happened with IE5 implementing a draft version of part of the CSS 2 specification wrelating to what is known as the box model which was changed between then and the standard being finished leading to IE5's implementation being non-standard).

Until such time as the (X)HTML 5 standard (by whatever name you decide to call it) is finished, browsers can't implement the standard. They may implement parts of the proposal and if they are extremely lucky those implementations may actually match the final standard, but until that final standard is released we will not know if the browser implementation actually matches the standard. Once the standard is finished then browsers will be able to start implementing it properly. We will then just have to wait for them to all finish implementing all of that new standard and for all of the prior browsers that do not implement all of it to die out before that will then take over as the latest standard that all browsers support.

It took about six years to go from HTML 4.01 being finished until it became a usable standard. Based on how long people seem to cling to using old versions of Internet Explorer and the fact that IE9 will not run on Windows XP it could easily be 15 years from when XHTML 1.0 was finished until it becomes a usable standard. Based on that and with not knoing how long it will take for (X)HTML 5 to be finished it is just about impossible to even guess as to when that might become a usable standard - it will probably depend on how long it takes for IE12 to die (or an equivalent version of whichever other popular browser is the one lagging behind after the standard is finished).


This article written by Stephen Chapman, Felgall Pty Ltd.

go to top

FaceBook Follow
Twitter Follow