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.
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.
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.
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 --> http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user. <!-- Correct XHTML way of writing this is as follows --> http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
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 '
The named character reference ' (the apostrophe, U+0027) was introduced in XML 1.0 but does not appear in HTML. Web developers should therefore use ' instead of ' to work as expected in HTML 4 Web Browsers.