barrierefreies Webdesign Ingo Turski

zum Inhalt

Ingo

Tips und Tricks:Die (neuen) Bugs des Internet Explorer 7

Anfang November 2006 ist er in der deutschen Version nun endlich erschienen und wird per Windows-Update ungefragt verbreitet. Die Anwender werden mit einer ungewohnten Oberfläche überrascht und die Webseiten-Autoren bekommen von Microsoft Arbeit auf's Auge gedrückt - denn der IE 7 will fortan ein standardkonformer Browser sein und sich nicht mehr von den IE-Hacks beeinflussen lassen - ↓ist er aber noch längst nicht.
Der IE 7 bietet in seiner Hilfe zur Frage:

Meine Lieblingswebsites werden in Internet Explorer 7 nicht richtig geladen oder scheinen überhaupt nicht zu funktionieren. Was soll ich tun?.

Ein Tool, das den betreffenden Seíten vorgaukelt, es mit der Vorgängerversion zu tun zu haben. Das hift nun in vielen Fällen überhaupt nicht, denn wenn sich der IE 7 im standard-kompatiblen Modus befindet, ignoriert er auch die bisherigen CSS-Hacks für den IE 6 und muß sich als standard-konformer Browser beweisen.

Verwenden Sie das Programm auch, um Microsoft über Websites zu informieren, bei denen Problem auftreten. Dies gibt uns die Möglichkeit, uns mit den Eigentümern der betroffenen Websites in Verbindung zu setzen.

Microsoft dürfte mich wohl kaum kontaktieren, wenn meine standardkonformen Seiten im IE 7 falsch dargestellt würden - und wozu überhaupt? Genauso wenig rechne ich in absehbarer Zeit mit einem standardkonformen IE 7.x - zu sehr zeigt sich doch die Flickschusterei, vor allem am Beispiel des Star-HTML-Hacks:

* html #Selektor {}

Diese Angabe ist unsinnig, da <html> bereits das äußerste Element ist. Nur die IEs haben offensichtlich keine Kenntnis von der Grundstruktur eines HTML-Dokumentes - auch der IE 7 noch nicht! Zwar erkennt er diesen speziellen Hack, aber nicht deshalb, weil er das Dokument korrekt parsen würde, wie diese geringfügige Modifizierung zum Star-Plus-HTML-Hack zeigt:

*+html #Selektor {}

Nein, <html> hat auch kein Vorgänger-Element; aber vielleicht betrachtet der IE die ganze Zeit den DOCTYPE als Element über bzw. jetzt vor <html>?

Leider folgt Opera dem Beispiel des IE an dieser Stelle, jedoch merkwürdiger Weise nur bei Vorhandensein eines XML-Prologs. In diesem Fall muss der Selektor dann schon etwas komplexer sein:

*:first-child+html #Selektor {}

Wer den IE bisher über einen Kommentar vor dem DOCTYPE in den quirks mode versetzt hat, kann aufatmen: auch der IE 7 erwartet den DOCTYPE am Anfang und im quirks mode ist er zu 99% kompatibel mit seinem Vorgänger. Allerdings hat der IE 7 zumindest gelernt, dass es einen XML-Prolog gibt.
Aber keine Sorge, ein nachfolgender Kommentar erfüllt auch künftig den Zweck:

<?xml version="1.0" encoding="ISO-8859-1" ?><!--IE 7 quirks mode please-->

Einige der von mir erstellten Seiten werden im standardkompatiblen Modus des IE 7 korrekt dargestellt, so dass ich dem IE 7 zumindest die Chance dazu gebe. Allerdings sind im IE 7 leider auch völlig neue Bugs hinzugekommen und ich tendiere dahin, ihn in solchen Fällen über obige Methode einfach in den quirks mode zu versetzen, anstatt mir viel Arbeit mit der Fehlerkorrektur des IE 7 zu machen. So kam z.B. bei einer Seite folgendes zusammen:

Dennoch will ich die neuen Bugs analysieren und an dieser Stelle dokumenieren sowie mögliche Abhilfen präsentieren. Vielleicht trägt dies ja dazu bei, einen standardkonformeren IE 8 zu bekommen?

Liste der IE7 - Bugs

Viele Bugs sind nicht wirklich neu, sondern alte Bekannte, die sich im IE 7 nur unter speziellen Bedingungen auswirken, in Verbindung mit neu interpretierten Eigenschaften auftreten oder sich gar durch Fehlerkorrekturen bei ansonsten mangelnder CSS-Umsetzung zeigen.

  1. Es gibt immer noch einen unnötigen "Geister-Scrollbalken".
    Der IE8 Beta1 produziert u.a. hier sogar noch einen horizontalen "Geister-Scrollbalken".
  2. cutting margin: abgeschnittener Inhalt bei negativem Margin.
  3. link area: (neuer Workaround) eingeschränkter Linkbereich bei relativer Positionierung.
  4. clear table: Nichtanzeige einer relativ positionierten Box mit geclearter Tabelle.
  5. floating list: Nichtanzeige von gefloateten Listenpunkten.
  6. floating min-width: minimale Inhaltsbreite bei float und min-width.
  7. table-cell: keine Breite bei inline-Elementen mit display:table-cell.
    Auch der IE8 Beta1 hat diesen Bug noch.
  8. clearfix: Ausdehnung einer Box mit ausschließlich floatendem Inhalt.
    Auch der IE8 Beta1 hat diesen Bug noch.
  9. padding floats: Abstände floatender Boxen durch padding ihres Containers.

wird fortgesetzt...

Aber was ist mit dem IE 8, der in den Startlöchern steht? Wird er die aufgezeigten Fehler des IE 7 nicht mehr machen? Wird er sich nicht mehr von einem HTML-Kommentar in den quirks mode schicken lassen oder den Star-Plus-HTML-Hack standardkonform ignorieren? Wenn nicht, dann bietet sich diese neue Microsoft-Erfindung an, die ich vorsorglich schon mal in diese Seite gesetzt habe:

<meta http-equiv="X-UA-Compatible" content="IE=7;FF=edge;OtherUA=edge" />