Die Unterschiede zwischen XHTML und HTML
geschrieben von Beatrix Jost (2004)

Für die Gestaltung barrierefreier Webauftritte ist es nicht wichtig, ob HTML 4.01 oder XHTML 1.0 eingesetzt wird. Die beiden Spezifikationen unterscheiden sich nur in Details. Das W3C empfiehlt jedoch XHTML 1.0. Warum? Diese Spezifikation ist XML-basiert und somit kompatibel mit anderen W3C-Standards.
Die folgende Liste stellt die Unterschiede zwischen HTML und XHTML jeweils mit einem Beispiel dar. Zunächst wird eine HTML-, danach eine XHTML-Schreibweise beispielhaft aufgeführt. Eine kurze Erläuterung der Unterschiede wird ebenfalls angegeben.
- Dateierweiterung
HTML:
.htm
und.html
XHTML:
.htm
,.html
oder.xhtml
- Mit den Dateierweiterungen
.htm
und.html
werden Dokumente von Browsern fehlertoleranter geparst. Neuere Browser verfügen über einen XML-Parser, mit dem.xhtml
-Dokumente aufbereitet werden können. Dieser Parser ist gegenüber Code-Fehlern sehr "streng" und bricht die Aufbereitung eines Dokuments bei Auftreten von Fehlern ab. - Dokumentstruktur
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
… Inhalt des Dokuments …
</html>XHTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
…
<title>Titel des Dokuments </title>
…
</head>
<body>
…
<p>Strukturierter Inhalt des Dokuments</p>
…
</body>
</html>- In HTML genügt die Angabe des Dokumententyps sowie die Einbindung aller Inhalte im
HTML
-Element, um dem Sprachstandard zu entsprechen. Hingegen sind in XHTML-Dokumenten der eigenen DTD und die Angabe des XML-Namensraums im öffnendenHTML
-Element erforderlich. Des Weiteren sind Anforderungen an die Dokumentenstruktur etwas strenger: Das Dokument muss in einen Kopfbereich (HEAD
) und einen Textkörper (BODY
) geteilt werden. Im Kopfbereich muss eine Seitenüberschrift (TITLE
) enthalten sein. Alle Inhalte des Textkörpers müssen außerdem in Blockelementen wieP
,H1
,DIV
usw. enthalten sein. Die Sprachangabe des Dokuments imlang
-Attribut ist nach den Sprachstandards optional ebenso wie die XML-Deklaration. Die Sprachangabe in XHTML variiert zu HTML und muss deshalb ggf. ergänzend bereitgestellt werden. - Groß-/Kleinschreibung
HTML:
<H1 ALIGN="CENTER">Überschrift</H1>
<P>Weitere Inhalte</P>XHTML:
<h1 class="zentriert">Überschrift</h1>
<p>Weitere Inhalte</p>- Während in HTML die Groß-/Kleinschreibung keine Rolle spielt, müssen in XHTML sowohl Elemente als auch Attribute und Attributwerte klein geschrieben werden. Das gilt auch für Event-Handler.
- Abschluss von Elementen
HTML:
<img src="bild.gif" alt="Alternativtext">
<br>
<ul>
<li>Listenpunkt 1
<li>Listenpunkt 2
</ul>XHTML:
<img src="bild.gif" alt="Alternativtext" />
<br />
<ul>
<li>Listenpunkt 1</li>
<li>Listenpunkt 2</li>
</ul>- In HTML müssen bestimmte Elemente nicht abgeschlossen werden (z.B.
LI
). In XHTML müssen alle Elemente abgeschlossen werden. Auch Elemente, die für sich stehen (z.B.IMG
), benötigen einen Abschluss, indem am Ende des Elements ein Leerzeichen und ein Schrägstrich angefügt werden. - Attributwerte
HTML:
<hr noshade>
<input type="radio" checked>XHTML:
<hr noshade="noshade" />
<input type="radio" checked="checked" />- Wie für einzelne Elemente gibt es in HTML auch Attribute, die für sich stehen. Um der XML-Spezifikation zu genügen, wird solchen Attributen einfach das Attribut selbst als Wert zugewiesen.
- Textmarken (Anker)
HTML:
<a href="#text">zum Text</a>
…
<a name="text"></a>XHTML:
<a href="#text">zum Text</a>
…
<a id="text" name="text"></a>- Um in HTML einen Verweis innerhalb eines Dokuments zu setzen, wird an der Zielposition ein leeres Ankerelement mit einem
name
-Attribut eingefügt. In XHTML kann zu einem beliebigen Element mit einem passendenid
-Attribut gesprungen werden. Um auch die Kompatibilität mit älteren Browsern zu gewährleisten muss jedoch in XHTML sowohl das HTML-konformename
-Attribut als auch die XML-konforme Schreibweise über die Zuweisung einesid
-Attributs berücksichtigt werden. - Sprachauszeichnung
HTML:
<H1 lang="de">Willkommen!</H1>
XHTML:
<H1 xml:lang="de" lang="de">Willkommen!</H1>
- Die Dokumentensprache sowie Sprachwechsel innerhalb eines Dokuments sollten in HTML mit dem Universalattribut
lang
gekennzeichnet werden. In XHTML sollte das XML-spezifische Attributxml:lang
ergänzend verwendet werden. Für die Barrierefreiheit, sprich: Unterstützung in Sprachausgaben, ist daslang
-Attribut aber entscheidend. - JavaScript
HTML (
strict
):<script type="text/javascript">
<!--
alert('Hallo Welt!');
//-->
</script>XHTML (
strict
):<script type="text/javascript">
<!-- //
/*<![CDATA[*/
alert('Hallo Welt!');
/*<]]>*/
//-->
</script>- In HTML kann ein Scriptbereich an jeder Stelle eines Dokuments definiert werden. Das umgebende HTML-Kommentar ist dazu da, den JavaScript-Code vor Browsern zu verstecken, die kein JavaScript unterstützen. In XHTML sollte der Inhalt von Skripten als CDATA (Character Data) definiert werden, da der XML-Parser Zeichen wie z.B.
<
als den Beginn eines HTML-Elements erkennt. Dieses Problem kann aber auch gelöst werden, indem das Skript in eine externe Datei ausgelagert wird.