HTML is a markup language (that's what the ML part stands for). As with any popular markup language, it changes over time just as programming languages and human languages do. The only differences wsith HTML is the speed at which it changes and the way that so much old HTML continues to exist.

HTML changed much more quickly in its earlier years than it has done more recently. HTML 4 became the "standard" back in 1997. One of the things that it did was to get rid of a lot of the tags that would no longer be necessary once browsers supported defining the page appearance using CSS. It finally became practical to actually do this in about 2005 once use of Netscape 4 dropped low enough to ignore - since that was the last of the popular browsers that didn't support enough CSS to be able to actually use HTML 4 as intended.

Now it takes time for existing code to be updated to reflect modern usage. For many years programming languages have "deprecated" code that was valid in the prior version but which shouldn't be used in the new version. This provides a warning to those writing new code to not use those constructs and for those with old code that does use those constructs that they will need to update their code to replace those before the next version of the language comes out - because that next version will no longer support that code at all.

That same meaning for "deprecated" was intended with HTML 4. A "transitional" doctype was also provided that accepted the deprecated tags as valid so as to allow people to slowly transition their web pages from HTML 3.2 to HTML 4. Unfortunately, most people don't appear to have understood what "deprecated" and "transitional" mean with many web pages only being transitioned to use the transitional doctype while still continuing to use the antiquated HTML 3.2 tags that HTML 4 was warning would soon be dropped completely from the standard.

As a result of so many web pages continuing to use HTML 3.2 tags the web browsers cannot actually proceed to the next step and actually drop support for those now long dead tags. Unlike with programming languages where the following version actually ceases to support those things deprecated in the prior version, any attempt to do so with HTML would break the over 90% of the web that still uses the HTML 3.2 tags that were deprecated in 1997.

Now "deprecated" basically means the same thing as "obsolete" but most people are far more familiar with the latter term. HTML 5 has therefore decided to cease using the term "deprecated" for all the tags that HTML 4 removed in 1997 and the few additional ones that HTML 5 itself is intending to remove and instead now refers to them as "obsolete". The other change that has been made in switching the term used is recognition that there are lots of people out there who will continue to create web pages using HTML 3.2 (regardless of what doctype they use with it) and so while calling the tags deprecated implied that they were about to have support for them removed, the newly named "obsolete" tags are no longer intended to be removed from browsers.Instead browsers will be required to continue to support the obsolete tags so that the vast majority who still write HTML 3.2 will be able to have their web pages display correctly when people visit.

To a large extent the people working on HTML 5 are looking at making their new standard match the way browsers work rather than attempting to define how browsers ought to work (perhaps they are leaving that for HTML 6). This means that with HTML 5 there is no provision for trying to suggest that browsers should process different versions of HTML differently. Unlike with HTML 4 where you could use a strict doctype to identify that your page is supposed to be HTML 4 and a transitional doctype to indicate that it was still really HTML 3.2 and at least use a validator to test whether your HTML actually matched the appropriate standard, you don't have that information stored in an HTML 5 web page itself and so would need to select what version to validate against in the validator. The lack of this information within the page means that there is no longer even a possibility that browsers might actually implement something that will validate the HTML against the actual standard you are attempting to use. This is particularly unfortunate now that the latest versions of all browsers support XHTML because some browsers can actually perform this type of validation on XHTML web pages.


This article written by Stephen Chapman, Felgall Pty Ltd.

go to top

FaceBook Follow
Twitter Follow