Quirks-, Standards- und Kompatibilitätsmodus

Die Geschichte der Browser und der Websprachen-Standards ist bewegt und von zahlreichen Richtigungsstreitigkeiten, Alleingängen und Fehlentwicklungen geprägt. Eine der Folgen dieser Geschichte sind die unterschiedlichen Darstellungsmodi, zwischen denen die meisten heutigen Browser „umschalten“ können. Der Schlüssel dazu sind in den meisten Fällen die Dokumenttypen. Man spricht deshalb auch von Doctype-Switch (Dokumenttyp-bedingtes Umschalten).

Folgende Browser kennen das Doctype-Switching:

  • Der MS Internet Explorer (seit Version 6 bzw. 5 für Apple Mac),
  • Browser mit Gecko Rendering Engine, also vor allem Firefox (seit Version 1),
  • Browser mit Webkit Rendering Engine, also vor allem Google Chrome und Safari (alle seit Version 1),
  • Opera seit Version 7.

Grundsätzlich gibt es zwei Schalterzustände: standardkompatibel und rückwärtskompatibel. Der standardkompatible Modus wird denn auch als Standards-Modus (auch: Standards-Compliant-Modus) bezeichnet, der rückwärtskompatible Modus als Quirks-Modus (quirks = Eigenarten, Marotten, Schrulligkeiten). Vom Standards-Modus gibt es außerdem noch eine abgeschwächte Form, den sogenannten Almost Standards Mode.

Eine Besonderheit stellt der MS Internet Explorer 8 dar, unter anderem deshalb, weil er neben dem DOCTYPE-Switching auch die Möglichkeit anbietet, den Darstellungsmodus als Anwender selbst einzustellen. Dazu wird als Menüpunkt der sogenannte Kompatibilitätsmodus angeboten.

Der Quirks-Modus

In den 90er Jahren haben Browser einiges in HTML und CSS nicht so dargestellt, wie es in den heutigen Standards beschrieben wird. So wurden beispielsweise Elemente, die laut HTML-Standard über die volle verfügbare Breite hin ausgedehnt werden sollen, nur so breit dargestellt, wie es der Inhalt erforderte. Besonders beim Arbeiten mit Abständen und Rahmen in CSS gab es lange Zeit Probleme, weil ältere Browser, insbesondere der MS Internet Explorer, das sogenannte Boxmodell anders interpretierten als der HTML4-Standard.

Browser schalten in den Quirks-Modus, um ältere Webseiten so darzustellen wie es seinerzeit üblich war. In den Quirks-Modus schalten die umschaltfähigen Browser:

  • wenn ein HTML-Dokument überhaupt keine Dokumenttyp-Deklaration enthält, also wenn das Dokument einfach mit <html>… beginnt, ohne dass zuvor mit <!DOCTYPE …> ein Dokumenttyp deklariert wird,
  • wenn der Dokumenttyp eine HTML-Version niedriger als 4 deklariert, (also z.B. Version 3.2 oder 2.0).

Beim Internet Explorer ist folgendes zu beachten: Den Internet Explorer können Sie in den Versionen 6, 7 un 8 in den Quirksmodus schalten, indem Sie die Dokumenttyp-Deklaration nicht in der ersten Zeile eines HTML-Dokuments notieren, sondern dort stattdessen einen beliebigen HTML-Kommentar notieren, also etwa so:

<!— switch IE 6,7,8 to quirks mode —>
<!doctype html>

Was genau der Quirks-Modus an Unterschieden zum Standards-Mode enthält, ist browser-spezifisch. So stellt beispielsweise der Quirks-Mode des MS Internet Explorers Webseiten so dar wie der Internet Explorer 5.5.

Der Standards-Modus

Im Standards-Modus interpretieren alle switching-fähigen Browser HTML und CSS so, wie es die Sprachstandards vorsehen. Auch dabei wird nicht zwangsläufig 100%ige Übereinstimmung erzielt, was verschiedene Gründe hat. Indem Sie sich jedoch auf den Standards-Modus beschränken (und das sollten Sie aus heutiger Sicht), haben Sie deutlich weniger Probleme mit unterschiedlichen Browser-Darstellungen.

Browser schalten in den Standards-Modus:

  • wenn ein HTML-Dokument eine Dokumenttyp-Deklaration (<!DOCTYPE …> enthält,
  • wenn der Dokumenttyp eine HTML-Version größer oder gleich 4.0 oder eine XHTML-Version größer oder gleich 1.0 deklariert, oder wenn der Dokumenttyp dem Browser unbekannt ist.

Letzteres macht sich HTML5 zu Nutze. Der HTML5-typische Dokumenttyp <!doctype html> ist HTML4-fähigen Browsern, die kein HTML5 kennen, einfach unbekannt. Deshalb schalten sie aber in den Standards-Modus.

Der MS Internet Explorer 6 und frühe Versionen von Opera 7 schalten trotz passender Dokumenttyp-Deklaration bei XHTML nicht in den Standards-Modus, wenn vor der Dokumenttyp-Deklaration eine sogenannte XML-Deklaration notiert ist (<?xml … ?>).

Der Almost-Standards-Modus

Der „Beinahe-Standards-Modus“ wurde von Mozilla in der Gecko-Rendering-Engine als dritter Schaltzustand neben Quirks- und Standards-Modus eingeführt. Er unterscheidet sich vom Standards-Modus nur darin, dass Grafiken innerhalb von Tabellen nach Quirks-Art interpretiert werden. Das soll die Darstellung zahlreicher älterer Websites, die auf Tabellenlayouts basieren, verbessern.

Gecko-basierte Browser schalten in diesen Zustand, wenn sie einen HTML4-Transitional- oder -Frameset-DOCTYPE vorfinden.

Der Kompatibilitätsmodus im Internet Explorer 8

Mit dem Internet Explorer 8 hat Microsoft neue Strategien in die Modus-Unterscheidung eingeführt. Neu ist zunächst, dass nicht nur Web-Autoren, sondern auch Endanwender eine Einflussmöglichkeit haben. Via Menübefehl können sie den Browser in den sogenannten Kompatibilitätsmodus schalten. Dadurch emuliert der IE8 einen IE7.

Das wichtigste neue Werkzeug für Web-Autoren, um das Interpretationsverhalten des IE8 zu beeinflussen, ist eine von Microsoft neu eingeführte Meta-Angabe. Das entsprechende <meta>-Tag muss die erste aller im Dokumentkopf notierten Meta-Angaben sein, und es darf zuvor allenfalls ein title-Element notiert werden. Die Meta-Angabe hat folgende mögliche Ausprägungen:

  • <meta http-equiv="X-UA-Compatible" content="IE=8">
    Schaltet den IE8 in den Standards-Modus, egal was in der Dokumenttyp-Deklaration steht, oder ob überhaupt eine solche Deklaration vorhanden ist.
  • <meta http-equiv="X-UA-Compatible" content="IE=7">
    Schaltet den IE8 in den Standards-Modus des IE7, egal was in der Dokumenttyp-Deklaration steht, oder ob überhaupt eine solche Deklaration vorhanden ist. Da der IE7 verglichen mit anderen neueren Browsern noch zahlreiche Detail-Fehler bei der Interpretation der Standards hat, ist diese Wahl ein Zwischending zwischen „echtem“ Standards-Modus und Quirks-Modus.
  • <meta http-equiv="X-UA-Compatible" content="IE=5">
    Schaltet den IE8 in den Quirks-Modus, egal was in der Dokumenttyp-Deklaration steht, oder ob überhaupt eine solche Deklaration vorhanden ist.
  • <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
    Schaltet den IE8 in den Standards-Modus des IE7, wobei allerdings die Dokumenttyp-Deklaration ausgewertet wird. Falls diese einen anderen Modus ergibt, z.B. den Standards- oder Quirks-Modus, hat dies Vorrang.
  • <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">
    Schaltet den IE8 in den Standards-Modus, wobei allerdings die Dokumenttyp-Deklaration ausgewertet wird. Falls diese einen anderen Modus ergibt, z.B. den Standards- oder Quirks-Modus, hat dies Vorrang.
  • <meta http-equiv="X-UA-Compatible" content="IE=edge">
    Schaltet den IE8 in den höchstmöglichen Modus. Diese Einstellung ist eher für experimentelle Zwecke gedacht und nicht für die Praxis.

Per Voreinstellung benutzt der Internet Explorer 8 die erste dieser Angaben (IE=8"). Das heißt: anders als Browser, die das typische automatische DOCTYPE-Switching unterstützten, stellt der Internet Explorer 8 alle Seiten im Standards-Modus dar, auch solche, die gar keinen oder Dokumenttyp enthalten oder eine veraltete HTML-Version deklarieren. Dies hat jedoch in der Praxis dazu geführt, dass der Internet Explorer 8 viele der bekanntesten Websites nicht so darstellt, wie sie gedacht sind, unter anderem die hauseigene Homepage microsoft.com, aber auch google.com oder yahoo.com. Zu diesem Zweck hat Microsoft eine intern verwendete „Blacklist“ mit Domains eingeführt, die besser im IE7-kompatiblen Standards-Modus ausgeführt werden als im Standards-Modus des IE8. Diese Blacklist wird von Microsoft gepflegt und enhält mehrere tausend Einträge. Die 8er-Version des Browsers berücksichtigt diese Liste beim Darstellen von Websites.

Falls ein HTML-Dokument eine die IE8-typische Meta-Angabe enthält, überschreibt diese Angabe übrigens die Einstellung, die Anwender via Menü wählen können.

 


Korrekturen, Hinweise und Ergänzungen
Bitte scheut euch nicht und meldet, was auf dieser Seite sachlich falsch oder irreführend ist, was ergänzt werden sollte, was fehlt usw. Dazu bitte oben aus dem Menü Seite den Eintrag Diskutieren wählen. Es ist keine Anmeldung erforderlich, um Anmerkungen zu posten. Unpassende Postings, Spam usw. werden allerdings kommentarlos entfernt.

Sofern nicht anders angegeben, steht der Inhalt dieser Seite unter Lizenz Creative Commons Attribution-ShareAlike 3.0 License