HTML
Diese Seite drucken Hier können Sie uns eine Emaiil schreiben zurück Zur Übersicht vorwärts Links | Archiv   Letzte Änderungen 28.09.2021
     
Was sind Doctypes?
"Doctypes? Was ist denn das?", mag sich manch ein Leser fragen. "Doctype" steht für "Document Type". Doctypes geben also an, welchen Typs ein (XML- oder SGML-) Dokument ist. Eine Doctype-Deklaration kann dann z.B. so aussehen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Hinter dieser Deklaration würde dann der normale HTML-Code folgen. Wer dafür ein Beispiel sehen möchte, findet es im Abschnitt HTML der Webdesign-Referenz.

Wenn Sie im Allgemeinen mehr über das Konzept der Doctype-Deklarationen wissen möchten, finden Sie dazu im
Teil V unseres XML-Tutorials mehr Informationen.

Thema dieses Artikels ist jedoch ein anderes: das Zusammenspiel zwischen Doctype-Angaben und Browsern.

Doctypes und Browser

Der HTML-Standard schreibt vor, dass jedes HTML-Dokument mit einer Doctype-Deklaration beginnen soll. Diese Deklaration soll verarbeitenden Browsern mitteilen, nach welcher HTML-Version das entsprechende Dokument erstellt wurde. Folgendes Beispiel z.B. weist die Datei als "HTML 4.01 Transitional" aus:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Übrigens ist es nicht verwunderlich, wenn Sie bisher noch nie auf eine solche Deklaration innerhalb eines Dokuments gestoßen sind. Obwohl Doctype-Angaben eigentlich vom Standard verlangt werden, haben sie sich noch nicht so recht durchgesetzt. Wieso auch, schließlich hatten Doctype-Angaben nie einen praktischen Effekt.

Doctypes beeinflussen Darstellung

"Hatten keinen Effekt"? Ja. Hatten! Moderne Browser beherrschen das sogenannte "Doctype Switching". Soll heißen: je nach Doctype wird die Seite anders dargestellt.

Dabei kennen die Browser zwei verschiedene Modi: den standardkonformen Modus, in dem HTML so interpretiert wird, wie es vom W3C spezifiziert wurde. Wer den Standard-Modus aktiviert und Fehler im HTML-Code hat, handelt sich als Webdesigner oft schwerwiegende Darstellungsprobleme ein. Wer dagegen einwandfreien Code verwendet, hat im Standard-Modus größtmögliche Sicherheit, denn andere standardkonforme Browser werden die Seite in etwa genauso anzeigen - und das gute Gefühl, sich an einen Standard zu halten.

Der andere Modus wird oft als "Quirk-Modus" bezeichnet und ist standardmäßig aktiviert: in ihm sind die Browser fehlertolerant und versuchen, unter allen Umständen eine möglichst benutzbare Website anzuzeigen. Das hört sich zunächst vorteilhaft an, jedoch verzichtet man als Webdesigner hier auf die Sicherheit, seine Website auf genau definierte Standards aufzubauen. Jeder Browserhersteller ist für seinen eigenen Quirk-Modus verantwortlich, daher kann es vorkommen, dass zwei verschiedene Browser mit demselben Code-Fehler anders umgehen. Zudem werden im Quirk-Modus häufig Fehler und Macken älterer Browser-Versionen am Leben erhalten, weil sonst ältere Seiten nicht richtig dargestellt würden.

Standard-Modus als Lösung

Wer also größtmögliche Sicherheit will, sollte den Standard-Modus aktivieren (die Bezeichnung kann übrigens leicht missverstanden werden - der Standard-Modus ist eben nicht standardmäßig aktiviert, sondern befolgt die Standards des W3C). Nachteil ist, dass die Internet-Seiten dann wirklich den Standards des W3C folgen müssen. Überprüfen lässt sich das z.B. mit dem Online-Validator des W3C.

Wie wird der Standard-Modus aktiviert?

Wie weiter oben schon einmal angesprochen, wird der Standard-Modus durch Angabe der richtigen Doctypes aktiviert (Voraussetzung: das Dokument ist standardkonform!). Dabei sind verschiedene Fälle zu unterscheiden:

  • Wer XHTML verwendet, ist automatisch im Standard-Modus. Der entsprechende Doctype ist dann <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

  • Wer HTML 4/4.01 verwendet, kann zwischen Standard- und Quirk-Modus wählen.

  • HTML 1, 2 und 3 werden automatisch im Quirk-Modus gerendert.

Wie diese kurze Übersicht vielleicht schon andeutet, liegt der entscheidende Punkt bei HTML 4. Die Situation ist folgende: das W3C hat verschiedene Versionen von HTML 4 spezifiziert. "HTML 4 Transitional" ist eine Art "Übergangs-Version", die noch einige Tags erlaubt, die in "HTML 4 Strict" dagegen nicht mehr zugelassen sind. Das <font>-Tag z.B. ist in "HTML 4 Strict" nicht mehr zulässig. Zusätzlich dazu gibt es noch eine Frameset-Version von HTML 4, auf die wir hier aber nicht weiter eingehen wollen.

HTML 4.01 Strict

Browser, die Doctype-Switching beherrschen, gehen, sofern sie einen "HTML 4 Strict"-Doctype vorfinden, in den Standard-Modus.

Beispiel:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

HTML 4.01 Transitional

Wird dagegen eine Transitional-Version von HTML 4 angegeben, hängt das Verhalten des Browsers davon ab, ob in der Doctype-Deklaration eine URL angegeben ist. Wenn ja, wird der Standard-Modus aktiviert. Ist dagegen keine URL vorhanden, wird nach Quirk-Richtlinien gerendert.

Beispiel (Standard-Modus):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Beispiel (Quirk):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Webdesigner sind gehalten, so schnell wie möglich auf HTML 4 Strict umzustellen. Daher wird auch das Verhalten zukünftiger Browser, wenn sie auf HTML 4 Transitional treffen, nicht genau vorhersagbar sein - es ist möglich, dass sie dann automatisch in den Quirk-Modus umschalten, anstatt wie heute eine Fallunterscheidung zu treffen.

Sonderfall HTML 4.0

Dazu an dieser Stelle noch ein kleiner Hinweis: HTML 4.0 ist im Vergleich zu HTML 4.01 noch einmal gesondert zu betrachten, da sich der Mozilla-Browser hierbei anders verhält als seine Konkurrenten. Einen Link zu einer genauen Übersicht gibt es im übernächsten Abschnitt!

Sonderfall IE 5,6 / Opera 7

Diese Browser sind von einem sehr ärgerlichen Bug betroffen: Wenn sich irgendetwas vor der Doctype-Deklaration befindet (z.B. eine XML-Deklaration), wird der Quirk-Modus aktiviert.

Eine Übersicht über alle Browser und Doctypes...

... wurde von Matthias Gutfeldt unter http://gutfeldt.ch/matthias/articles/doctypeswitch/table.html online gestellt!

Fazit

Doctype Switching ist eine gute Idee: sie ermöglicht bestimmten Webdesignern, für ihre Seiten den Standard-Modus zu aktivieren. Wer das nicht will oder kann, oder wer ältere Seiten besuchen will, ist nicht betroffen - dafür gibt es ja immer noch den zu fehlerhaftem Code kompatiblen Quirk-Modus. Eine sogenannte "Win-Win-Situation" sozusagen - wenn da nicht diese kleinen, ärgerlichen Fehler wären.

Trotzdem empfehlen wir Ihnen, wenn möglich auf HTML 4.01 Strict (oder auch XHMTL) zu setzen. Sie haben damit die Sicherheit, dass Ihre Seiten auch in einigen Jahren noch korrekt dargestellt werden. Zusätzlich - ein ganz anderer Aspekt - verwenden Sie HTML damit entsprechend seiner Konzeption, entsprechend der Idee, die dahinter steht - und das kann so schlecht nicht sein!