Sven Rautenberg: <meta>-Tag für Browser-Compilance-Mode neu im IE8

Beitrag lesen

Moin!

Lesetipp: Compatibility and IE8 und Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8

Die Neuigkeit in kürze, ein <meta>-tag, der sagt mit welchem Browser man die Seite getestet hat:

<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4" />

Toll? Nein, eine hirnrissige Idee.

John Resig (Autor von jQuery) und Anne van Kesteren (bei Opera) mögen den Switch auch nicht.

Ich vermute mal, sie und du haben noch nicht so ganz die Tragweite und Implikationen dieser Idee verstanden.

Stellt euch mal die Browser in 10 Jahren Vor. Ein Opera, der im Jahr 2018 eine IE8 RenderEngine implementiert hat um Seiten anzeigen zu können, die mit dem IE8 als kompatibel getestet wurden.

Genau das ist ja nicht der Fall, soll es auch gar nicht.

Diese Information soll dem Browser, egal welche Version, egal welcher Hersteller, die Information liefern, ob und wenn ja, mit welchen Versionen eine Seite in der Vergangenheit betrachtet und für gut befunden wurde. Mehr ist damit zunächst einmal nicht verbunden.

Der Browser kann sich dann entscheiden, ob er diese Information auswerten möchte, oder nicht.

Wenn man sich den Blogeintrag vom Microsoft-IE-Team durchliest, ist der Ansatz nur allzu verständlich: Gesucht wird zum wiederholten Male ein Weg, mit neuen Browserversionen des IE Webseiten nicht kaputt zu machen, die schon so alt sind, dass man sie mit der neuen Version unmöglich testen konnte.

Der Versuch, dazu den DOCTYPE zu verwenden, hat beim Update IE 5.5 auf IE 6 geklappt, beim Update auf IE 7 ist das aber gescheitert, wie man hinterher gesehen hat - einfach weil in der Zwischenzeit alle möglichen Tools und uninformierte Webmaster den DOCTYPE für den Standard-Modus verwendet haben - und der hat im IE 7 noch standardkonformeres Rendering zur Folge, als im IE 6.

Jetzt vorgestellte Lösung: Man muß dem Browser IE irgendwie mitteilen können, welche frühere Version des IE in ihrem Verhalten Grundlage für die optische Darstellung war. Und genau das leistet dieses Meta-Tag bzw. die daraus ableitbare Ergänzung des HTTP-Headers.

Was sich aus dieser Angabe technisch ergibt, ist vollkommen offen. Eines dürfte aber sicher sein: Wenn eine Seite sagt, dass sie mit dem IE 6 gerendert gut aussieht, dann dürfte das auf Opera nicht die geringste Auswirkung haben. Insbesondere wird Opera keinesfalls die komplette Rendering-Engine-Sammlung des IE reimplementieren - das ginge ja allein deshalb schon nicht, weil Urheberrechte am Sourcecode das verhindern.

Wenn für Opera (Firefox, Safari, sonst irgendeinen standardkonformen Browser,...) überhaupt mal das Problem auftritt, dass spätere Versionen anders rendern, als frühere Versionen, und man diesen Unterschied nicht standardkonform z.B. im DOCTYPE festmachen kann, böte sich mit diesem Meta-Tag ein denkbarer Ausweg.

Ich persönlich glaube aber, dass diese Idee sich wohl rein auf die IE-Versionswelt beschränken wird. Sofern sie überhaupt praktische Relevanz bekommt, denn die Webmaster sind, nachdem sie jahrelang den Schlaf des IE 6 mitschlafen konnten, durch das Erscheinen des IE 7 aufgeweckt. Wessen Seite darin Probleme machte, hat diese Probleme beheben müssen. Beim IE 8 wird man vermutlich vorgewarnt sein, obwohl nach meiner Einschätzung der Sprung im Standardverhalten eher gering ausfallen dürfte, was die üblichen Features angeht, die auf Webseiten verbreitet sind.

Wozu waren Webstandards noch einmal da? Ach ja damit man mit einem Code so ziemlich alle HTML-Clients bedienen kann, egal ob es sich um Browser oder sonst etwas handelt. Wenn das durchkommt können wir eigentlich Webstandards auch in die Tonne kloppen.

Im Grunde hast du natürlich Recht. Wenn ein Dokument zweifelsfrei die von ihm benutzte Sprachversion angibt, der zugehörige Standard das Rendering eindeutig bestimmt, und der Browser diese Kombination perfekt umsetzt, gibt es gar keine Probleme. Das ist praktisch das Meta-Tag in "ham' wa schon".

Das Problem ist nur die Extra-Wurst des IE. Dem kann man eben nicht sagen, "Render mal dieses HTML 4.01 strict mit dem CSS 2.1" - weil das im IE 6, 7, 8,... jeweils zu ganz unterschiedlichen Erscheinungsweisen führt aufgrund der mangelhaften Standardunterstützung in den Altversionen.

Auch ohne das Meta-Tag verschwindet aber das Problem nicht, dass Browser, Rendering-Engines und insbesondere die Webstandards sich weiterentwickeln. Soll heißen: Selbst wenn Firefox 10 oder Opera 20 in der Lage sind, auch HTML 2.0 oder 4.01 (mit CSS 2.1) darzustellen, so ist es dennoch nicht unwahrscheinlich, dass die Programmierer die exakte Umsetzung dieser Standards in den Rendering-Engines haben fallengelassen, weil mittlerweile HTML 6 und CSS 4.2 aktuell sind, und der Anteil an alten HTML4.01/CSS2.1-Dokumenten verschwindend gering, so dass die Rendering-Abweichungen einfach nicht auffallen oder stören.

- Sven Rautenberg

--
"Love your nation - respect the others."
8 83

<meta>-Tag für Browser-Compilance-Mode neu im IE8

Jeena Paradies
  • browser
  1. 0
    Christian Wansart
    1. 0
      Jeena Paradies
      1. 0
        Christian Wansart
    2. 0
      Christoph Schnauß
      1. 0
        Christian Wansart
        1. 0

          Das hat dir Uri Geller gesagt

          Christoph Schnauß
          • menschelei
        2. 0

          Hacker

          Kai345
          • menschelei
  2. 0
    Cyx23
  3. 5
    Sven Rautenberg
    1. 0
      Jeena Paradies
      1. 0
        Cybaer
        1. 0
          Jeena Paradies
          1. 0
            Cybaer
            1. 0
              Marian
              1. 0
                Cybaer
                1. 0
                  Cyx23
                  1. 0
                    Cybaer
    2. 4
      Tim Tepaße
      1. 1
        Tim Tepaße
        1. 0
          Cybaer
        2. 0
          Cybaer
          1. 0
            Def
            1. 0
              Daniel unreg
            2. 0
              Cybaer
    3. 1

      Microsoft unterschlägt die Pflege kommerzieller Software

      Orlando
      • meinung
      1. 0
        ChrisB
        1. 0
          molily
        2. 0
          Orlando
          1. 1
            Cybaer
            1. 0
              Orlando
              1. 0
                Tim Tepaße
              2. 0
                Cybaer
                1. 0
                  Orlando
                  1. 0
                    Cybaer
                    1. 0
                      Robert Bienert
                      1. 0
                        Cybaer
      2. 0
        Cybaer
        1. 0
          Orlando
          1. 0
            Cybaer
            1. -1
              Orlando
    4. 0
      Cyx23
  4. 0
    Blaubart
  5. 0

    <meta>-Tag: keine Trennung von Layout und Inhalt

    Cyx23
    1. 0
      Cybaer
      1. 0
        Cyx23
        1. 0
          Cybaer
          1. 0
            Kai345
            1. 0
              Cybaer
      2. 2
        molily
        1. 0
          Cybaer
          1. 0
            molily
            1. 0
              Cybaer
              1. 0
                ChrisB
                1. 0
                  Cybaer
                  1. 0
                    Orlando
                    1. 0
                      Cyx23
                    2. 0
                      Cybaer
              2. 0
                Længlich
                1. 0
                  Cybaer
                  1. 0
                    Længlich
                    1. 0
                      Cybaer
                      1. 0
                        Længlich
                        1. 0
                          Cybaer
                          1. 0
                            Længlich
                            1. 0
                              Patrick Andrieu
                            2. 0
                              Cybaer
                              • menschelei
            2. 0
              Daniel unreg
              1. 0
                molily
        2. 0
          molily
          1. 0
            Cybaer
  6. 0

    Opera schmeißt document.all raus

    Jeena Paradies
    1. 0
      Jeena Paradies
      1. 0
        Kai345
      2. 0
        molily
  7. 0

    Weder meta noch Conditional Comments durch Evolution

    Robert Bienert
    1. 0
      Cyx23
    2. 0
      Cybaer
      1. 0
        Gunnar Bittersmann
        1. 0
          Cybaer
          1. 0
            Cybaer
            1. 0
              Gunnar Bittersmann
              1. 0
                Cybaer