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
<border>
tag, and the part following
a hyphen in the property name is made into an attribute. Thus,
the CSS code
becomes
<border color=lightgreen>
in XHTML 3.0.
Old HTML | XHTML 2.0 + CSS | XHTML 3.0 |
---|---|---|
<blockquote> |
XHTML: <p class="indent"> CSS: p.indent { |
<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.
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.