Digital sozialisiert, Denker, Macher und Angel Investor.

Welche Browser müssen unterstützt sein – Browserkompatibilität

W

Eine dauernde aber auch wichtige Diskussion ist die, mit welchen Browser-/Plattformkombination eine Online-Anwendung funktionieren soll resp. getestet wird. Besonders spannend an der Frage ist zudem, dass sich dieses Umfeld dauernd ändert.
>> Einleitung
Grundsätzlich muss es Ziel sein, dass eine Anwendung mit allen Browser (technisch korrekter „User Agents“) funktioniert. Selbstverständlich heisst das nicht, dass die Anwendung nicht in allen Browsers identisch aussieht. Das würde der Heterogenität des Internets nicht gerecht und ist technisch nicht möglich… Als Vergleich kann Fernsehen hinhalten, wo das identische Programm auch je nach «Endgeräte» unterschiedlich „gezeigt“ wird.
Ziel muss es zudem sein nicht gegen Browser zu codieren aber für den Standard zu implementieren und danach für einzelne Browser zu optimieren. Idealerweise wird zudem im Code nicht auf einzelne Browser getestet aber auf vorhandenen Funktionalitäten des User Agents. Serverseitige Browserweichen sollten vermieden werden, wenn sich die Unterschiede im CSS lösen lassen.
Ich beschränke mich hier mal auf die Standardfunktionen wie (X)HTML, CSS und ein bisschen (defensives) JavaScript und lasse mich nicht auf die Flash-, Java-, Silverlight und Weiss-ich-nicht-was-Diskussion raus.
>> Lösung 1: Reale Benutzerbasis
Es ist sehr einfach zu messen, welche Browser auf einem konkreten Webangebot genutzt werden. Diese Statistiken bekommt man zudem von anderen Betreibern und man kann solche auch kaufen.
Zwei Aspekte sind wichtig: Einerseits, dass die Statistik falsch sein kann, wenn das aktuelle Angebot gewisse Kombinationen ausschliesst oder sehr schlecht behandelt (Huhn-Ei Problem). Und andererseits fehlt der Ausblick auf neue, stark verbreitete Browser („wann kommt der IE8“) resp. der Einbezug der Browserüberwachung während des Betriebs (was verändert sich grad).
Nun „nur noch“ die Frage, wo soll ich die Grenze des Tests ziehen. 95% aller Browser testen? Oder die 3 wichtigsten Kombinationen je auf Windows und Macintosh? Und was ist mit Linux und den verschiedenen Versionen der Betriebssysteme? Und das iPhone? Etc. Diese Definition muss mit Blick auf die Zielgruppe und die konkrete Anwendung gemacht werden. Zur Illustration ein Beispiel. Hier er aktuelle Monat einer reichweitenstarken B2B Anwendung mit 75% des Traffics aus der Schweiz.
i) Übersicht, welche Browser/Plattformen
i-b294b8f2d43c4b90b48611d994628976-browser_plattform-thumb.png
ii) Details für den Internet Explorer
i-333f985c6ac3bf628256f942683f5123-browser_ie-thumb.png
iii) Details für Firefox
i-1b79b1cf2ecff41d99970952e643f541-browser_ffox-thumb.png
iv) Details für Safari
i-ac248f828e6d778cbdeb138ea4129879-browser_safari-thumb.png
Was wäre der Schluss? Will ich Windows und Mac unterstützen und ist meine Grenze 95% aller Nutzer, so teste ich gegen Windows/IE 7, Windows/IE 6 und Windows/Firefox 2. Auf dem Mac wäre es dann rechnerisch nur Safari 2. Punkt.
Und dann käme noch der «Menschenverstand» (ausserhalb der 95%) dazu, der einige Kombinationen ergänzt. Ich würde Mac/FFxo2 noch testen (der ist ziemlich mies in JavaScript Performance). Zudem kommt bald der Win/IE 8 (soll ich eine Beta-Version wirklich testen — ich meine ja) und Mac/Safari 3. Zudem evt. Mobile Browser.
Noch nicht berücksichtigt sind nun verschiedenen Versionen des Mac OS und von Windows, welche (leider) auch einen Einfluss auf Funktion und Darstellung haben können. Und mindestens die 984 User mit dem IE 5.5 (eine Uraltversion auf MAC, welche sich sehr hässlich verhält) werden sich beklagen. Aber wo zieht man die Grenze?
>> Lösung 2: Die Libraries
Im Zeitalter von Nutzungsschnittstellen mit Web 2.0-Funktionalität (aka AJAX) versuchen die Entwickler (hoffentlich) nicht alles neu zu erfinden, aber nutzen Bibliotheken, welche die Umsetzung Vereinfachen und die Qualität erhöhen. Davon gibt es viele und alle sind mit gewissen Browsern getestet. Da sich die Entwickler sehr intensiv damit beschäftigen ist die Lösung Nummer 2 deren Empfehlungen zu folgen. Als Beispiel die Unterstützung der Yahoo Bibliothek YUI.
i-de70e1c09a9863aac802eb8ff2561a21-browser_support_yui.png
Die Fussnote besagt, dass immer die aktuellste Nicht-Beta-Version getestet wird.
Ich finde die Variante 2 (auch mit anderen Libraries) eigentlich ziemlich charmant, da hier bereits viel Wissen drin steckt. Es bleibt meine Zielgruppe zu prüfen (ist die Kombination relevant) und eine Aufwand/Nutzen-Betrachtung bezüglich der investierten Zeit.

kommentieren

Von Jürg Stuker
Digital sozialisiert, Denker, Macher und Angel Investor.