Browser Support for XHTML
Many web browsers, especially Internet Explorer 5.0 and earlier and Netscape 4.79 and earlier, deal inconsistently with XHTML. Certainly they don’t require it, accepting as they do such a wide variety of malformed, invalid, and out-and-out mistaken HTML. However, beyond that they do have some problems when they encounter certain common XHTML constructs.
The XML declaration and processing instructions
Some browsers display processing instructions and the XML declaration inline. These should be omitted if possible.
Few, if any, browsers recognize or respect the encoding
declaration in the XML declaration. Furthermore, many browsers
won’t automatically recognize UTF-8 or UCS-2 Unicode text. If you
use a non-ASCII character set, you should also include a meta
element in the header identifying
the character set. For example:
<meta http-equiv="Content-type" content='text/html; charset=UTF-8'></meta>
Empty elements
Browsers deal inconsistently with both forms of empty element
syntax. That is, some browsers understand <hr/>
but not <hr></hr>
(typically
rendering it as two horizontal lines rather than one), while
others recognize <hr></hr>
but not <hr/>
(typically omitting the
horizontal line completely). The most consistent rendering seems
to be achieved by using an empty-element tag with an optional
attribute such as class
or
id
—for example, <hr class="empty" />
. There’s no
real reason for the class
attribute here, except that its presence keeps browsers from choking ...
Get XML in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.