Mit freundlichen Grüßen, die DTD!Ist ihre Webseite HTML und CSS konform? Die Überprüfung mit den Validatoren des W3C kann Überraschungen mit sich bringen. Wenn die korrekte Angabe einer DTD fehlt, dann bekommt man gar kein Ergebnis zu sehen. Oder ist ihnen vielleicht schon aufgefallen, dass neue Browser ihre Seite nicht korrekt anzeigen, wenn Sie keine DTD angeben? In diesem Artikel wird gezeigt, wie Sie DTDs angeben, und was an ihnen so wichtig ist.

Wissen Sie, ob Sie Ihre Webseiten nach den W3C-Standards für HTML und CSS programmiert haben? Wenn Sie versuchen, den Quellcode Ihrer Seiten mit den Validatoren des World Wide Web Contortiums (W3C) zu prüfen, werden Sie feststellen, dass die Validatoren nur dann Ergebnisse liefern, wenn eine richtige Dokumententyp-Definition (DTD) auf der Seite angegeben wurde. Oder vielleicht ist Ihnen aufgefallen, dass moderne Browser Webseiten etwas anders darstellen, wenn eine gültige DTD angegeben wurde. In diesem Beitrag erfahren Sie, warum eine DTD wichtig für eine "saubere" Programmierung sind und welche DOCTYPEs funktionieren.

DTD und Browser

Nach den HTML- und XHTML-Spezifikationen des W3C ist die Dokumententyp-Definition eine Information, die einer Webzugangssoftware (z.B. Browser) die Version von (X)HTML der aufgerufenen Seite angibt (vgl. http://www.w3.org/TR/html401/sgml/dtd.html). So können Browser oder Validatoren die Definition des Dokumententyps herunterladen und entsprechend auf das Dokument anwenden. Die DTD ist eine entscheidende Angabe, um ein (X)HTML-Dokument korrekt zu interpretieren.

Eine gültige DTD ist eine Voraussetzung für die richtige Darstellung von Webseiten in W3C-konformer Browsern, wie z.B. Mozilla/Netscape 6, MSIE5 (nur Mac) oder MSIE6 (für Windows). Ohne die Angabe einer gültigen DTD werden dieselben Browser die Webseiten nach älteren und z.T. auch fehlerhaften Spezifikationen interpretiert, wodurch spezifische Bugs der einzelnen Browser zum Vorschein kommen. In diesem Fall könnte es passieren, dass CSS nach den Möglichkeiten eines 4er Browsers oder JavaScript auf der Basis von MS-DOM (MSIE) oder einer obskuren Basis (Mozilla/Netscape 6) verarbeitet wird.

Opera - auch ein W3C-konformer Browser - arbeitet anders und versucht von vorneherein, Webseiten nach dem aktuellen Standard zu interpretieren. Auch wenn der Opera-DOM noch nicht perfekt ist, ist dieser Ansatz wohl der bessere.

Gültige DTDs

Da die DTD eine wichtige Angabe in Webseiten ist (keine Validierung ohne gültige DTD) und weil das W3C führend in der Formulierung von Webstandards ist, liegt die Vermutung nahe, dass der W3C die verschiedenen DTDs auch erläutert. Diese Vermutung ist falsch. Auf den Seiten des W3C stehen Vorschläge, Entwürfe und Spezifikationen, die von Spezialisten für Spezialisten geschrieben sind. Zwischendurch findet man auch ein Tutorial, aber die Hinweise auf DTDs, und damit sind auch wirklich "Hinweise" gemeint, sind auf den W3C-Seiten gut verteilt und müssen mühsam recherchiert werden. Sie finden Angaben zu bestimmten DTDs oder DOCTYPEs, und Beispieladressen für DTDs sind relativ statt absolute angegeben, womit ein Kopieren und Einfügen in die eigenen Webseiten ohne vorherige Anpassung zwecklos ist.

Die Dokumententyp-Angabe wird mit <!DOCTYPE ... > eingeleitet. Zum Beispiel, auf vielen Websites werden Sie folgende DTD finden, der von den W3C-Seiten einfach kopiert wurde:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "DTD/html4/loose.dtd">

Die angegebene Adresse für die DTD lautet hier "DTD/html4/loose.dtd" und bezieht sich natürlich auf die Website www.w3.org. Ohne die vollständige (absolute) Adresse wird die Definition auf der eigenen Website gesucht!

Die richtige DTD lautet:

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

Mit der Angabe der vollständigen Adresse wird dem Browser oder anderer Zugangssoftware mitgeteilt, an welche Stelle im Web die Definition des Dokumententyps zu finden ist und kann entsprechend heruntergeladen werden. Dann kann die Seite nach den aktuellen Standards verarbeitet und angezeigt werden.
Die gültigen DTDs
Die Dokumententyp-Angabe muss für HTML-Seiten ganz zu Anfang einer Webseite, also noch vor dem einleitenden HTML-Element stehen:

<!DOCTYPE ... >
<HTML lang="de">
<HEAD> ... <TITLE> ... </TITLE> ... </HEAD>
<BODY> ... </BODY>
</HTML>

Bei XHTML gehört die DTD zwischen der XML-Deklaration und dem einleitenden HTML-Element:

<?xml version="1.0"?>
<!DOCTYPE ... >
<HTML xmlns="..." xml:lang="de" lang="de">
<HEAD> ... <TITLE> ... </TITLE> ... </HEAD>
<BODY> ... </BODY>
</HTML>

Dokumententypen für HTML 4

Für den aktuellen HTML-Standard (Version 4.01) gibt es drei Dokumententypen: "strict", "transitional" und "frameset".
HTML 4.01 strict.
Im HTML-Dokumententyp "strict" werden ausschliesslich Strukturierungselemente im HTML-Quelltext zugelassen. Durch die Verlagerung der Angaben zur Formatierung und Layout auf Style-Sheets werden die HTML-Seiten extrem schlank (z.B. HTML-Attribite wie align oder border bei Grafiken werden aus einem Style-Sheet entnommen). Auch einige Elemente wie z.B. APPLET sind längst veraltet und gehören nicht mehr zum empfohlenen Standard (hier wird das OBJECT-Element empfohlen). Mit der Durchsetzung Standard-konformer Browser ist der Umstieg auf den Standard mehr als vertretbar geworden!

Der Dokumententyp "strict" für HTML sieht dann wie folgt aus:

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

HTML 4.01 transitional
Der Dokumententyp "transitional" (Übergang) erlaubt den Einsatz von HTML-Attributen und -Elementen, die streng genommen nach den derzeitigen Standards nur über Style-Sheets zu definieren wären. Das liegt daran, dass manche noch eingesetzte Browser wie Netscape 4 mit Style-Sheets nicht richtig umgehen können und deshalb Formatierungen tatsächlich im Text angegeben werden müssen, damit sie interpretiert werden können. Die angesprochene DTD heisst dann "loose" (locker) und, wie der Name schon andeutet, erlaubt sie Abweichungen von den Standards. Es handelt sich dabei um frühere Standards, die seit einigen Jahren vom W3C verworfen wurden.

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

HTML 4.01 frameset
Dieser Dokumententyp ist praktisch identisch mit dem Dokumententyp "transitional", nur werden die HTML- und BODY-Elemente anders definiert. Das BODY-Element wird nicht angezeigt und wird durch FRAMESET ersetzt. Immer, wenn Sie Framesets in einer Seite definieren, sollten am Anfang der Seite folgende DTD stehen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0
Für XHTML 1.0, das im Prinzip dasselbe wie HTML 4.01 ist, nur auf der Basis von XML anstatt SGML, gibt es in Analogie zu den HTML4-Dokumententypen auch die drei DTDs "strict", "transitional" und "frameset":

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

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

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

XHTML 1.1
XHTML 1.1 orientiert sich nicht mehr an HTML 4.01. Deshalb gibt es hierfür nur noch eine DTD:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Weitere Tipps
Bei (X)HTML handelt es sich um eine Sprache, die ohne Konventionen leicht in "Mundarten" ausarten kann, genauso wie in der gesprochenen Sprache auch.

Beispielsweise hat Netscape in der Version 4.xx kaum Unterstützung für Style-Sheets und die Standards des W3C berücksichtigt, was ihn nicht nur zu einem schlechten Browser macht, sondern letzten Endes zum Rückgang des Marktanteils von über 75% in 1996 auf fast 7% heute führte (Netscape 6 basiert wieder auf Standards und unterstützt den DOM von Netscape 4 nicht mehr, wodurch Netscape 4 zum echten Sondering unter Browsern wird). Wenn Sie also nach Standards programmieren wollen, dann empfiehlt es sich, auf die identische Darstellung in Netscape 4 zu verzichten. Das Prinzip von HTML und CSS, nämlich die Trennung von Inhalt und Layout, ist sonst nicht möglich.

In Ihrer Weberstellungs-Software sollten Sie aber überprüfen, ob er DOCTYPE unterstütz wirdt und, wenn ja, was die Standardeinstellung ist. Oft werden DTDs unbekannter Art unterstützt, zumindest werden sie nicht vom W3C gepflegt. Oder sie enthalten denselben Fehler wie viele Webseiten auch: die erforderliche Webadresse für dle DTD ist unvollständig. Das Ergebnis beim Einfügen von DOCTYPE ist eine fehlerhafte Interpretation der Seiten.

Sprechen Sie auch die Hersteller Ihres Software-Pakets an und bitten Sie sie, in zukünftigen Updates der Software dieses Problem zu beheben. Möglicherweise erfahren Sie auch, wie Sie eine solche Voreinstellung auch selbst vornehmen können.

Jan Eric Hellbusch hat zum Thema "Barrierefreies Webdesign" das Buch -Barrierefreies Webdesign - im KnowWare-Verlag veröffentlicht. Weitere Informationen zum Thema finden Sie auf seiner Homepage

http://www.barrierefreies-webdesign.de/

Bookmark setzen... These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Bloglines
  • MisterWong
  • MySpace
  • Reddit
  • SEOigg
  • Technorati
  • TwitThis
  • Y!GG
  • Google Bookmarks

Keine weiterführenden Beiträge.