Mit dem neuen, ultracoolen und leicht zu merkenden HTML 5-Doctype
<!DOCTYPE html>
kamen viele Bedenken auf. Ist meine Webseite dann überhaupt noch standardkonform? Falle ich nicht dem Quirks-Mode der Browser zum Opfer? Nichts davon ist der Fall. Der Doctype ist generell extrem überschätzt! Kein Browser wird sich wirklich darum kümmern, was für ein Doctype angegeben ist.
Was in Wirklichkeit passiert
Es wird (einheitlich bei allen Browsern) danach geschaut, ob überhaupt ein Doctype angegeben wurde. Ist das nicht der Fall, gehts direkt in den Quirksmode. Wird nun ein Doctype gefunden, gibt es nur noch eine „Chance“, doch noch in den Quirksmode zu geladen: Es wird ein Uralt-Doctype wie
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
oder
<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
verwendet. Selbst bei HTML 4.01 Transitional greift bereits in allen relevanten Browsern (einschließlich IE6) der Standards-Mode. Um das ganze auf die Spitze zu treiben:
<!DOCTYPE blabla irrelevant some other stuff foobar>
führt bei allen getesteten Browsern (IE6+7+8, Firefox 3.6, Chrome 7) zum Standards-Mode. Wers nicht glaubt:
<!DOCTYPE blabla irrelevant some other stuff foobar> <script> alert(document.compatMode == "CSS1Compat" ? "Standards-Mode" : "Quirks-Mode"); </script>
Fakt ist also: Sobald sich ein Doctype auf der Seite befindet und dieser nicht veraltet ist (HTML 2, HTML 3.2), wird der Standard-Mode verwendet.
Ist der Doctype also egal?
Das nun auch wieder nicht. Zum Validieren des Codes ist der Validator auf einen speziellen Doctype angewiesen. Zum Thema Validierung verweise ich aber gern auf diesen Artikel, der dies kritisch beäugt. Empfehlung: Den HTML 5-Doctype nehmen (gut zu merken, wenig Schreibarbeit, in allen Browsern Standards-Mode) und nach gewohntem XHTML 1.0 Strict coden (fühlt sich „sauberer“ an als Tags auf einmal nicht mehr schließen zu müssen, was in HTML 5 durchaus valide wäre).