Section 16.4. XHTML 1.1

In May 2001, the W3C released an updated XHTML standard, XHTML 1.1. While most standards expand upon their previous versions, XHTML 1.1 takes the unusual step of defining a more restrictive version of XHTML. If you think of XHTML 1.0 as unwieldy, picky, and time-consuming, you'll find XHTML 1.1 even more so. In our opinion, XHTML 1.1 is an example of the standards process taken to absurd levels, defining a standard that may be academically pure but is essentially unusable.

16.4.1 Differences in XHTML 1.1

XHTML 1.1 begins with the XHTML 1.0 strict DTD and makes a few modifications. By supporting only the strict version of XHTML 1.0, Version 1.1 eliminates all deprecated elements and all browser extensions still in common use on the Web. It also makes the following minor changes:

  • The lang attribute has been removed from every element. Instead, authors should use the xml:lang attribute.

  • The name attribute has been removed from the <a> and <map> elements. Authors should use the id attribute in its place.

Finally, the XHTML 1.1 standard defines a new set of elements that implement a typographic feature known as "ruby" text. Ruby text is short runs of text placed alongside the base text; it is often used to annotate the text or to indicate pronunciation. Ruby text has its roots in East Asian documents, particularly Chinese schoolbooks and Japanese books and magazines. Ruby text is typically displayed in a smaller font[7] than the base text and follows certain alignment rules to ensure that it appears adjacent to the appropriate base text element.

[7] The origin of the name "ruby" lies in the name used by printers for the 5.5-point font used by the British press to set this smaller adjacent text.

Ruby text is defined and managed with a set of elements that provides grouping and layout control. We'll be blunt: this new feature is so esoteric and of so little importance to the vast majority of HTML authors ? even those who would subject themselves to the needless agony of XHTML 1.1 conformance ? that it does not warrant extensive coverage in this book. For those who are interested, a complete discussion of ruby text can be found at

For the rest of us, it is sufficient to know that there are a few new elements in XHTML 1.1 that you would be wise not to use in your own DTDs, if only to prevent confusion with the XHTML 1.1 DTD. These new elements are:


Defines a segment of ruby text


Defines the ruby base text


Defines the ruby text associated with the base text


Is used as a "ruby parenthesis" to group related ruby elements


Serves as a ruby base text container to group several base text elements


Serves as a ruby text container to group several ruby elements

Should you encounter any of these elements in a document, refer to the above-mentioned specification for the details of how they are used. In general, you'll find a single outer <ruby> element with at least one <rb> and <rt> element within it. Multiple <rb> and <rt> elements may be collected within an <rp> element or may be grouped within the <rbc> or <rtc> container elements.