XHTML 3.0 announced!

The W²C has announced a new recommendation for HTML, the linguage franca of the Web. Following the strategy adopted years ago, it follows the eXtensibility principle and therefore carries the letter “X” in its name. However, it exceeds the limitations imposed by earlier XHTML versions and the underlining XML technology. This means that authors can use mixed case of letters in tags (they can use either border or BORDER or even Border, just as they like), as most authors have actually kept using. XHTML 3.0 also restores the old principle that quotation marks are optional, so that color=red is just fine, you don’t need to type color="red".

The radical, yet natural, move is to base the new and recommended version of XHTML on CSS, Cascading Style Sheets! Artificial elements like div are not needed any more. The fundamental principle is strikingly simple: XHTML tags correspond to CSS properties. For example, CSS has border-color property for setting the color of a border around something. XHTML uses the <border> tag, and the part following a hyphen in the property name is made into an attribute. Thus, the CSS code border-color: lightgreen becomes <border color=lightgreen> in XHTML 3.0.

Example of simplification
Old HTML XHTML 2.0 + CSS XHTML 3.0
<blockquote> XHTML: <p class="indent">
CSS: p.indent { margin-left: 42px; }
<margin left=42>

Thus, XHTML 3.0 is as simple as old HTML was, yet more flexible. Instead of just specifying indentation, it lets you set the exact amount to be used. Also note that XHTML 3.0 does not suffer from the rigidity of CSS, where a unit identifier (like px for pixels) is always required. Instead, XHTML 3.0 has natural, context-sensitive default units for quantities. This usually means pixels, but e.g. in <font size=10> the implied unit is point, following an old typographic tradition and practice.

Further simplifications are possible with the new construct called “Generic Identifier Omission” (GOI). This means that for CSS properties that are simple words, without a hyphen, that word can be used both as a tag and as an attribute. For example, the CSS declaration color: blue naturally translates into the tag <color=blue>. For compatibility, however, the more verbose <span color=blue> is permitted, too.

This new approach paves the way to harmonization and unification of CSS and XHTML. Authors no longer need to worry about remembering the differences between CSS and XHTML syntax, since they can simply decide to use XHTML 3.0, which gives them the full power of CSS using just XHTML tags!

While XHTML 3.0 still has a few old HTML tags for compatibility, they will be obsoleted as support to the new approach matures. Major browser vendors have already promised fast progress along these lines. This development is accelerated by the forthcoming CSS 3.0 specification, which will encompass CSS 2.0 and a useful collection of industry-standard CSS features especially as implemented in the leading browser, Internet Explorer. Theoretical work on the development of new versions of CSS will continue within the relevant W²C Working Group after a special Task Force has carried out the more practical integration of industry standards into CSS.

Comment from Bertil Wennergren in a Usenet article:

Thrilling. I like to live on the edge of standards-compliance, so I'll include an XHTML 3 version of my pages shortly. Of course I'll serve them only to browsers that accept the relevant MIME type in the Accept headers: "aprilcation/xhtml+xml".

Click here for more information.