Der HTML-Standard verlangt von jedem HTML-Dokument die Angabe des Dokumententyps per DOCTYPE. Es spezifiziert den zugrundeliegenden Standard. ZDNet erklärt, wie man den richtigen Dokumententyp wählt.
Die DOCTYPE-Deklaration erscheint ganz am Anfang einer Webseite, noch vor dem öffnenden HTML-Tag. Sie teilt dem Browser mit, welche HTML- oder XHTML-Spezifikation das Dokument verwendet. Eine gültige DOCTYPE-Deklaration bedeutet, dass standardkonforme Browser die Seite korrekt darstellen. Außerdem wird auch der Rest der Seite, HTML-Code und CSS[1], nicht validiert, wenn keine gültige DOCTYPE-Deklaration vorliegt.
Validierungsdienste wie der Markup Validation Service des W3C[2] oder der HTML Validator der Web Design Group[3] verlangen eine DOCTYPE-Deklaration auf jeder Seite.
Die DOCTYPE-Deklaration besteht aus drei Teilen: Start, Public Identifier und System Identifier. Der System Identifier ist optional und kann weggelassen werden. Die folgende Zeile bietet ein Beispiel für eine Seite, die dem Standard "HTML 4.01 Strict" entspricht:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Hier folgen die einzelnen Bestandteile des Codes:
- Start: <!DOCTYPE HTML PUBLIC
- Public Identifier: "-//W3C//DTD HTML 4.01//EN"
- System Identifier: "http://www.w3.org/TR/html4/strict.dtd">
Wichtig: Beim Public Identifier kommt es auf die Groß- und Kleinschreibung an. Daher muss er exakt so angegeben werden wie in der entsprechenden Definition im nächsten Abschnitt.Die aktuellen HTML- und XHTML-Spezifikationen kennen drei Dokumententypen: Strict, Transitional und Frameset.
- Strict bezieht sich auf den HTML-Standard, bei dem alle Darstellungsfeatures per CSS implementiert werden. Das sorgt für einen HTML-Code, der frei von Elementen ist, die nur der Darstellung dienen. Damit ist eine strikte Trennung von Darstellung (CSS) und Struktur (HTML) garantiert. Strict betont die Struktur gegenüber der Präsentation.
- Transitional lässt auch Attribute und Elemente zu, die der Darstellung dienen, und eigentlich auch per CSS realisiert werden könnten. Diesen Dokumententyp sollte man verwenden, wenn man Präsentationsfunktionen von HTML verwenden muss, weil die Browser der Benutzer kein CSS unterstützen.
- Der Dokumententyp Frameset ist für Websites gedacht, die HTML-Frames verwenden. Ansonsten entspricht er dem Transitional-Standard, außer dass man das FRAMESET-Element statt des BODY-Elements verwendet.
Wie das vorangegangene Beispiel zeigt, kann auch eine URL des Standards, also dessen vollständige Webadresse, in der DOCTYPE-Deklaration angeben werden. Beim Verwenden von Webdesign-Software wie Microsoft Expression[4] oder Home-Site, wird der DOCTYPE-Tag automatisch eingefügt. Die folgende Liste gibt die komplette DOCTYPE-Zeile für die entsprechende Spezifikation an:
- HTML Strict DTD: <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> - HTML Transitional DTD: <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> - Frameset DTD: <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> - XHTML Strict DTD: <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - XHTML Transitional DTD: <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - XHTML Frameset DTD: <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> - HTML 3.2: <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 3.2 Final//EN"> - HTML 2.0: <!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML//EN">
Das W3C unterhält eine Empfehlungsliste[5] mit gültigen DOCTYPE-Deklarationen.Wenn eine Webseite eine unvollständige, eine fehlerhafte oder gar keine DOCTYPE-Deklaration enthält, bleibt es dem Browser oder der für die Darstellung benutzten Anwendung überlassen, wie die Seite aussieht. Die meisten Browser verfügen über einen so genannten Quirks-Modus, der in solchen Fällen greift.
In diesem Modus setzen Browser sich über CSS-Spezifikationen hinweg, um abwärtskompatible Layouts zu erzielen. Der Quirks-Modus unterscheidet sich allerdings von Browser zu Browser. Jeder Browser implementiert andere Quirks (Eigenarten). Daher garantiert dieser Modus nicht unbedingt eine einheitliche Darstellung. Mozilla imitiert zum Beispiel Netscape 4.x. Die Windows Internet Explorer 6 und 7 orientieren sich dagegen am Internet Explorer 5. Auf der Website von Henri Sivonen[6] gibt es eine umfangreiche Tabelle, aus der hervorgeht, wie sich die einzelnen Browser in den unterschiedlichen Modi verhalten.
Zeitgemäße Webseiten sollten eine DOCTYPE-Deklaration enthalten
Entwickler, die schon einige Versionen von Webstandards kennengelernt haben, sind häufig verwirrt von den Dokumententyp-Deklarationen. Denn früher wurden diese nicht verwendet. Moderne Webanwendungen, die einem oder mehreren Standards gehorchen, müssen jedoch eine gültige DOCTYPE-Deklaration enthalten, damit die Seite korrekt dargestellt und validiert wird. Daher sollte man sich aus den vielen verfügbaren DOCTYPE-Deklarationen die für seine Anwendung passende heraussuchen - und sie auch einsetzen.
URLs in diesem Artikel:[1] = http:/
[2] = http:/
[3] = http:/
[4] = http:/
[5] = http:/
[6] = http:/