Mit freundlichen Grüßen, die DTD!

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/

This entry was posted in HTML. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *