http://jendryschik.de

Usability und Webstandards

Suche
SucheMenü

Kompatibilitätsrichtlinien

Hinweis: Diese »Einführung in XHTML, CSS und Webdesign« ent­spricht der zwei­ten Auf­lage des gleich­na­mi­gen Buches, das im Dezem­ber 2008 im Ver­lag Addison-Wesley erschie­nen ist. Die Inhalte sind mittlerweile veraltet, fast alles hat sich weiterentwickelt. Seit einigen Jahren gibt es HTML5, von XHTML redet niemand mehr, und auch die Entwicklung und Unterstützung von CSS ist um Einiges weiter. Auch fast alle Grundlagentexte müsste man schon lange fortschreiben. Falls Sie die Texte dennoch lesen möchten, behalten Sie das bitte im Hinterkopf.

Zurück zur Startseite und zum Inhaltsverzeichnis des Buchs

Wie bereits an mehreren Stellen angesprochen, unter anderem in Kapitel 2.6.3, in dem es um die Frage geht, weshalb Webautoren XHTML 1.0 einsetzen sollten und nicht HTML 4.01, unterscheiden sich HTML und XHTML nur in wenigen Punkten. Nahezu alle Unterschiede zwischen HTML und XHTML resultieren aus der Tatsache, dass HTML ein SGML-Dokumenttyp ist, während XHTML der strengeren XML-Syntax folgt. Es ist nicht das Ziel dieser Einführung, Sie im Detail mit HTML vertraut zu machen. Jedoch sollten Sie einen Blick auf die in der XHTML-Empfehlung aufgeführten HTML-Kompatibilitätsrichtlinien werfen, die es Ihnen ermöglichen, XHTML-Dokumente so zu verfassen, dass heutige HTML-Benutzerprogramme und -browser sie ohne Probleme anzeigen können. Dieser Abschnitt stellt die wichtigsten Regeln vor.

Fügen Sie ein Leerzeichen vor dem abschließenden /> bei Leeres-Element-Tags ein.
Schreiben Sie <br /> und nicht <br/>. Auch auf die zugelassene, aber unübliche Form <br></br> sollten Sie verzichten. Sie könnten sonst Schwierigkeiten bei der Darstellung in älteren Browsern bekommen.
Fassen Sie Start- und End-Tag von Elementen ohne Inhalt nicht zusammen.
Elemente, die eigentlich mit Start- und End-Tag notiert werden, dürfen – wenn sie keinen Inhalt haben – in XML mit einem Leeres-Element-Tag notiert werden. Dies bezeichnet man als Elementminimierung. Davon sollten Sie jedoch Abstand nehmen. Falls es einen guten Grund gibt, ein Element ohne Inhalt zu notieren, schreiben Sie zum Beispiel <div></div>, aber niemals <div />.
Notieren Sie den Inhalt von script- und style-Elementen innerhalb von CDATA-Abschnitten

In XHTML-Dokumenten werden die Inhalte des script- und des style-Elements (siehe Kapitel 5.11.3 und Kapitel 6.3.2) anders behandelt als in HTML. Dort ist es so, dass der Inhalt des script-Elements nicht geparst wird, das heißt, (X)HTML-Markup-Zeichen wie < oder & (siehe Kapitel 4.1.4 »Zeichenreferenzen«) innerhalb eines Scripts sind unkritisch. In XHTML ist das anders. Wenn Sie derartige Zeichen verwenden, werden diese als XHTML interpretiert – in den meisten Fällen wird Ihr Dokument dadurch ungültig. Um dies zu verhindern, müssen Sie diese Zeichen als Zeichenreferenz notieren, dann funktioniert allerdings häufig das Script nicht mehr. Um das Problem zu lösen, schließen Sie den Inhalt des script-Elements in einen sogenannten CDATA-Abschnitt ein. Dadurch teilen Sie dem Parser mit, dass kein Markup folgt, sondern normaler Text.

CDATA-Abschnitte beginnen mit <![CDATA[ und enden mit ]]>. Leider gibt es Browser, die diese Zeichenketten dann als JavaScript-Code oder CSS zu interpretieren versuchen. Daher ist es gängige Praxis, sie durch entsprechende Kommentare zu umschließen; sowohl bei JavaScript als auch bei CSS werden diese mit /* eingeleitet und mit */ beendet.

<style type="text/css">
  /* <![CDATA[ */
    ... ungeschützter (unescaped) Inhalt ...
  /* ]]> */
</style>

CDATA-Abschnitte werden vom XML-Prozessor erkannt und erscheinen als Knoten im Dokumentstammbaum.

Verwenden Sie sowohl das Attribut lang als auch das Attribut xml:lang zur Festlegung der Sprache eines Elements oder Attributs.
Liefern Sie XHTML-Dokumente mit dem MIME-Typ text/html aus.

Das W3C sieht für XHTML-Dokumente den MIME-Typ application/xhtml+xml vor. Leider verstehen nicht alle Browser diesen MIME-Typ, allen voran der Internet Explorer, der auf diese Art ausgelieferte Ressourcen zum Download anbietet, anstatt sie im Browserfenster anzuzeigen. Die einfachste Lösung besteht darin, XHTML-Dokumente wie HTML-Dokumente als text/html auszuliefern. Dies ist für XHTML 1.0-Dokumente, die den Kompatibilitätsrichtlinien genügen, zulässig und unproblematisch. Leider entgehen Ihnen damit die Vorteile, die XHTML mit sich bringt; das Dokument wird nicht durch einen XML-Parser behandelt, sondern durch den gewöhnlichen HTML- beziehungsweise SGML-Parser gejagt.

Es gibt unterschiedliche Methoden, die es ermöglichen, XHTML-Dokumente je nach Fähigkeiten des Browsers als text/html oder application/xhtml+xml auszuliefern. Versteht ein Browser den XHTML-MIME-Typ, wird das Dokument mit diesem ausgeliefert, ansonsten mit text/html. Verschiedene Methoden schildert Christoph Schneegans in seinem Artikel XHTML-Einmaleins.