Die Unterschiede zwischen XHTML und HTML

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 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.

Dokumentenerweiterung
HTML:

.htm und .html
XHTML:

.htm, .html oder .xhtml.
Mit den Dokumenterweiterungen .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.
Dokumentenstruktur
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:

<?xml version="1.0" encoding="UTF-8"?>
<!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>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 XML-Deklaration, der eigenen DTD und die Angabe des XML-Namensraums im öffnenden HTML-Element erforderlich. Desweiteren 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 wie P, H1, DIV usw. enthalten sein. Die Sprachangabe des Dokuments im lang-Attribut ist optional. 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 des Bildes">

<br>

<ul>
  <li>Listenpunkt 1
  <li>Listenpunkt 2
</ul>
XHTML:

<img src="bild.gif" alt="Alternativtext des Bildes" />

<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 HTML-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 name="text"></a>
<p id="text">Text</p>
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 ist der Sprung zu einer solchen Textmarke nicht mehr definiert. Um auch die Kompatibilität mit älteren Browsern zu gewährleisten muss jedoch in XHTML sowohl die Textmarke als auch die standarkonforme Schreibweise über die Zuweisung eines id-Attributs zum verlinkten Text berücksichtigt werden.
Sprachauszeichnung
HTML:

<H1 lang="de">Willkommen!</H1>
XHTML:

<h1 lang="de" xml:lang="de">Willkomen!</h1>
Die Dokumentensprache sowie Sprachwechsel innerhalb eines Dokuments sollten in HTML mit dem lang-Attribut gekennzeichnet werden. In XHTML sollte das XML-Universalattribut xml:lang verwendet werden. Da ältere Browser auch dieses Attribut nicht unterstützen, sollte zusätzlich das lang-Attribut eingesetzt werden.
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. Der 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.

Weiterführende Informationen:

Über das CSS-Design

Lesen Sie, [intern] warum ich mich an die Standards halte und warum das Layout mit [intern] Cascading Style Sheets statt Tabellen oder Frames gestaltet wurde. Sollten Sie Probleme mit dem Layout haben, so finden Sie in der [intern] Liste standardkonformer Browser Links zu entsprechenden Download-Seiten.

Suchen Sie was auf barrierefreies- webdesign.de?


Entspricht die Seite den W3C-Normen?


validiertes XHTML 1.0
validiertes CSS

Die [intern] Gesamtübersicht dieses Webauftrittes erreichen Sie jederzeit über das -Pad mit Alt+6.

Der schnelle Seitenzugriff

Verwenden Sie [intern] Tastenkürzel, etwa Alt mit der entsprechenden Zahl, um auf diesem Webauftritt zu navigieren.

 

[intern] Startseite [intern] Know-How [intern] Bücher [intern] Richtlinien [intern] Links [intern] Kontakt

Logo: Xplain  Die Entstehung