The Problem with HTML

XHTML tries to solve a lot of the problems with HTML at one time. I’ll go over each of the problems, and try to describe how XHTML tries to fix it.

1. Small devices, like handhelds, can’t surf the web.
Why_

The latest Netscape browser download is over 18 MB in size. Most of the handheld devices have at most an 8 MB capacity. Why are web browsers so big_ One of the reasons is that HTML is so flexible, so browsers have to be extremely complex in order to support all the different ways to do things.

How is XHTML addressing this_

XHTML is attempting to cut down on the complexity of HTML, by simplifying the rules and making the rules much stricter. Hopefully, the code required to read and display XHTML is a lot smaller than for regular HTML. Also, in XHTML 1.1, the W3C is introducing the concept of profiles. Devices (like handhelds) will declare to a web site what tags it supports, and web sites declare to handhelds what tags it requires. This is called Modularized XHTML, and that means that not all devices need to support all tags. A browser could be XHTML compliant, but not support color and sound.

2. Browsers like Internet Explorer and Netscape Navigator vary greatly in the tags they support.
Why_

HTML was originally developed by Tim Berners-Lee. The original version of HTML was very bland – no colors, no sound, no multimedia. Black on grey. Netscape began adding something they called “Netscape Extensions” to HTML – new tags not supported by the official specification or other browser companies. When Microsoft entered the browser market, they added more tags of their own as a form of competitive advantage. Thus the term “embrace and extend” was born. Recently, both companies have announced they will no longer add tags not officially supported, and will instead go through the official specifications process. But the damage is already done. Browsers do the same things differently, or some tags and attributes are supported by one and not the other.

How is XHTML addressing this_

The X in XHTML stands for Extensible. Extensible means that tags can easily be added to XHTML using XHTML Modules. So if you wanted to create a set of tags to support a new technology, like surfing the web with your toaster, then you could create those tags within the XHTML standard.