LX: Warum macht der IE so viel Murks -> Facharbeit

Beitrag lesen

Offizielle Stellungnahmen wirst Du vermutlich kaum bekommen; hier daher die Historie, gespickt mit einigen Vermutungen. Tatsächlich ist es so, dass der MSIE ursprünglich aus Mosaic, dem ersten grafischen Browser, hervorgegangen ist.

Etwa bei MSIE 4.0 erreichte der damalige Browserkrieg mit Marc Andreesens Netscape seinen ersten Höhepunkt. Zu diesem Zeitpunkt wurde aus den damaligen Browsern, die lediglich Texte und Bilder in Tabellen-Layout anzeigen konnten, Programme, die Seiten mit Stilangaben anzeigen konnten. Leider waren beide zueinander vollkommen inkompatibel. Die Vermutung, das die Inkompatibilitäten von MicroSoft forciert wurden, um die eigene Marktmacht auszunutzen, erscheint plausibel, da bei MS Office und Windows eine ähnliche Strategie verwendet wurde.

Ab Version 6.0 des IE (nachdem Netscape den Browserkrieg scheinbar verloren hatte) begann MicroSoft, bestehende Standards zu adaptieren, ohne jedoch von der ursprünglichen Strategie abzuweichen. Die Fehlerbehebungen führten jedoch zu weiteren Fehlern. Die gängigen CSS-Hacks für IE6 und 7 dokumentieren diesen Umstand ziemlich gut:

Vor dem HTML-Element sollte CSS-seitig nichts mehr stehen. Trotzdem liefert der IE6 beim folgenden Selektor Elemente zurück:

* html #element

Nachdem man MicroSoft auf diesen Fehler hingewiesen hatte, wurde das fragliche Element in der Reihenfolge vor das HTML-Element (auf gleicher Ebene) verschoben, so dass der IE7 standardwidrig dem folgenden Selektor folgt:

*+html #element

Zwei wesentliche Fehlentscheidungen bei der Entwicklung des MSIE stechen jedoch besonders hervor: der QuirksMode und hasLayout. Der QuirksMode ist jener Modus, in dem Seiten angezeigt werden, die nicht über eine Dokumententyp-Deklaration verfügen und in dem das Box-Modell die selben Fehler imitiert, die noch im IE4 Standard waren (den QuirksMode gibt es übrigens auch im IE8 noch!). HasLayout ist eine CSS-Eigenschaft, die man nicht gezielt setzen kann, aber bestimmte schwerwiegende Layout-Fehler im IE6/7 beheben sollte.

Nebenbei angemerkt: nicht alle Entwicklungen von MicroSoft waren schlecht. So wurde durch ein ActiveX-Control der XMLHttpRequest für die Browser-Version von Outlook eingeführt, der die Basis von AJAX nachstellt und inzwischen von allen modernen Browsern nativ unterstützt wird.

Auch die innerHTML-Eigenschaft geht auf eine IE-Entwicklung zurück - und ist wesentlich praktischer als das damals vorherrschende document.write.

Dementgegen ist document.all eine Krücke, auf die man besser verzichtet hätte. Dennoch bildet sogar Opera diese Funktionalität nach.

Nach Aussage eines mir bekannten MicroSoft-Mitarbeiters würde man den IE6/7 am liebsten ungeschehen machen. Dementsprechend hat MicroSoft bei der Entwicklung des IE8 viel Altlasten über Bord geworfen und einen nahezu nutzbaren Browser entwickelt. Leider werden einige Fehler immer noch übernommen, so dass abzuwarten bleibt, wie die Entwicklung weitergeht.

Gruß, LX

--
RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.