XHTML - Tips & Tricks


This chapter lists out various tips and tricks which you should be aware of while writing an XHTML document.

The XML declaration

An XML declaration is not required in all XHTML documents but XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16.

Empty elements

They include a space before the trailing / and > of empty elements, e.g. <br />, <hr /> and <img src="/html/xhtml.gif" alt="xhtml" />.

Embedded style sheets and scripts

Use external style sheets if your style sheet uses < or & or ]]> or --.

Use external scripts if your script uses < or & or ]]> or --.

Line breaks within attribute values

Avoid line breaks and multiple whitespace characters within attribute values. These are handled inconsistently by different browsers.

Isindex Element

Do not include more than one isindex element in the document head. The isindex element is deprecated in favour of the input element.

The lang and xml:lang attributes

Use both the lang and xml:lang attributes while specifying the language of an element. The value of the xml:lang attribute takes precedence.

Element identifiers

XHTML 1.0 has deprecated the name attributes of a, applet, form, frame, iframe, img, and map elements, and they will be removed from XHTML in subsequent versions. Therefore, start using id element for element identification.

Using ampersands in attribute values

The ampersand character ("&") should be presented as an entity reference &


<!-- This is invalid in XHTML -->

<!-- Correct XHTML way of writing this is as follows -->

Whitespace characters in HTML vs. XML

Some characters that are legal in HTML documents are illegal in XML document. For example, in HTML, the form-feed character (U+000C) is treated as white space, in XHTML, due to XML's definition of characters, it is illegal.

Named character reference &apos;

The named character reference &apos; (the apostrophe, U+0027) was introduced in XML 1.0 but does not appear in HTML. Web developers should therefore use &#39; instead of &apos; to work as expected in HTML 4 Web Browsers.