Das ganz normale Chaos, täglich frisch auf den Tisch. Direkt aus der hintersten Provinz in die Metropolen von Groß-Blogistan.


Rorkvell und die Webdesigner

Sun, 01 Mar 2009 20:08:36 +0100

Screenshot mit Chrome

Gerade eben habe ich einen netten Brief von Jens Grochtdreis erhalten, in dem er mich darauf hinweist, dass meine Theorien alle schön und gut seien, aber meine Praxis nicht. In diesem Zusammenhang hat er mich darauf hingewiesen, wie mein Blog in Googles Chrome aussieht. Das sieht in der Tat furchtbar aus. Doch was genau läuft hier eigentlich schief? Und was ist zu tun?

Nun, zunächst einmal die Analyse. Googles Chrome stellt ganz offenbar etwas ganz Anderes dar als andere Browser. Ich habe mal bei Browsershots ein paar Screenshots machen lassen. Da ich Linux verwende, habe ich hier ja keinen Chrome. Aber so kann man es auch testen. Und wie man sieht, gibt es hier zwei verschiedene Probleme. Viele Browser scheinen schlicht gar Nichts anzeigen zu wollen, während Chrome totalen Blödsinn anzeigt. Was hier angezeigt wird, ist eine willkürliche Mischung verschiedener Stile.

Also, ein Problem nach dem Anderen. Zunächst mal ist Rorkvell keine Site, mit der ich Geld verdiene. Sie ist mein Experimentierfeld, wo ich neue Webtechniken (oder auch ältere aber kaum genutzte) ausprobiere. Das bedeutet zunächst einmal, dass ich eben dieses Experimentieren nicht abstellen werde. Im Zweifelsfall nehme ich es in Kauf, dass manche Browser hier die Grätsche machen. Es ist natürlich gut, wenn ich erfahre, dass ein neuer Browser, den ich noch nicht testen konnte, mit meinen Seiten Probleme hat. Ich überlege mir dann durchaus, ob und was ich dagegen unternehme.

Ich beginne mit dem Problem, das hier anscheinend die meisten Browser haben. Sehr viele zeigen eine Art Fehlerseite an. Dort werden die vorhandenen Varianten in einer Liste angeboten. Wenn man eine dieser Varianten anklickt, bekommmt man auch eine richtige Seite. Doch das ist nicht der Sinn der Sache. Diese Varianten sind dazu gedacht, verschiedenen Browsern und/oder verschiedenen Benutzern verschiedene Formate der selben Seite zu liefern. Von meinem Blog abgesehen gibt es Rorkvells Seiten zum Beispiel in Deutsch und Englisch. Je nachdem, was der Besucher vorzieht, bekommt er automatisch eine deutsche oder eine englische Seite. Jedenfalls sollte es so sein. So ist das in der HTTP Spezifikation vorgesehen. Doch leider passen hier viele Browser.

Doch nicht nur für die Sprachauswahl taugt dieser Mechanismus, der automatic content negotiation genannnt wird. Damit können auch verschiedene Formate wie zum Beispiel HTML oder XHTML gewählt werden. Wie man ja inzwischen wissen sollte, beherrscht nicht ein einziger IE die Anzeige von XHTML. Also sollte jeder denkbare IE eben HTML bekommen. Ebenso jeder andere denkbare Browser, der aus welchen Gründen auch immer HTML vorzieht. Wer explizit XHTML vorzieht, sollte das auch bekommen. So schön die Theorie. Doch leider machen da viele Browser nicht mit. Dabei bin ich dann über Wuglug WIKI gestolpert. Die Überschrift Fixing Broken Clients lenkte in diesem Zusammenhang naturgemäß sofort meine Aufmerksamkeit auf sich. "Broken Clients", davon gibt's anscheinend jede Menge. Also habe ich mehrere hundert .var Dateien erstellt, für jede existierende (X)HTML Datei eine. Die für meine Startseite sieht z.B. so aus:

# ./index.var URI: index URI: index.html.de Content-Type: text/html; qs=0.7 Content-Language: de URI: index.html.de.gz Content-Type: text/html; qs=0.69 Content-Language: de Content-Encoding: gzip URI: index.html.en Content-Type: text/html; qs=0.68 Content-Language: en URI: index.html.en.gz Content-Type: text/html; qs=0.67 Content-Language: en Content-Encoding: gzip URI: index.rdf Content-Type: application/rdf+xml; qs=0.39 URI: index.txt Content-Type: text/plain; qs=0.09 URI: index.xhtml.de Content-Type: application/xhtml+xml; qs=0.6 Content-Language: de URI: index.xhtml.de.gz Content-Type: application/xhtml+xml; qs=0.59 Content-Language: de Content-Encoding: gzip URI: index.xhtml.en Content-Type: application/xhtml+xml; qs=0.58 Content-Language: en URI: index.xhtml.en.gz Content-Type: application/xhtml+xml; qs=0.57 Content-Language: en Content-Encoding: gzip

Alles verschiedene Varianten ein- und derselben Seite. Gedacht ist dies, um jedem denkbaren Client eine optimale Seite zu liefern. Doch zu viele Clients verstehen HTTP nicht. Ich hoffe mal, dass jetzt mit diesen Typemap-Dateien (.var-Dateien) der Apache-Server diese Aufgabe übernimmt. Browsershots kann ich leider erst morgen wieder testen.

Doch nun zu Chrome. Dieser Browser hat einen dicken Bug. Mir ist dieser Fehler, ich glaube, vorletztes Jahr, schon einmal untergekommen. Wenn ich mich richtig erinnere, war es damals der Konqueror, der diesen Bug hatte. Jetzt hat Chrome ihn. Es ist so, dass jede Seite in verschiedenen Stilen darstellbar ist, unabhängig vom Format. Man nennt das alternate stylesheets. Gute moderne Browser wie Firefox und Opera machen's richtig und bieten dem Nutzer aus den vorhandenen Stilen eine Auswahlmöglichkeit. IE macht es simpel, aber immerhin korrekt: Er ignoriert die alternativen Stile. Chrome nun würfelt die verschiedenen alternativen Stile einfach munter durcheinander. So hatte das W3C sich das aber nicht gedacht. Alternativen sind nicht dazu gedacht, vom Browser per Zufall zusammengewürfelt zu werden, sondern vom Benutzer explizit ausgewählt zu werden.

Wie sieht die Lösung hier aus? Nun, grundsätzlich werde ich nicht auf alternative Stile verzichten. Aber ich habe beschlossen, in der HTML-Version darauf zu verzichten. So kann ich weiter experimentieren, aber alte und fehlerhafte Browser können trotzdem etwas Verwertbares bekommen. Das ist jetzt natürlich Alles ziemlich mit der heissen Nadel gestrickt, und es werden sicher noch Fehler auftauchen, aber die kann ich dann beseitigen, wenn sie mir auffallen.

Immerhin bemerkenswert: Der IE8 stellt, laut Browsershots, meine Seiten korrekt dar. Aus dem Shot lässt sich natürlich nicht ersehen, ob die alternativen Stile angeboten werden, aber immerhin ist die Darstellung im Default-Stil korrekt. Und ebenfalls noch anzumerken wäre: Selbstverständlich habe ich meine Seiten auch im IE5.5, IE6 und IE7 getestet. Allerdings in einer deutschen lokalisierten Version. Sobald eine lokalisierung vorgenommen wurde, scheint es auch in älteren IEs zu funktionieren. Aber in nicht-lokalisierten IEs eben leider nicht.

Google Chrome als das Maß der Dinge im Webdesign? Für mich jedenfalls eher nicht.


0 Kommentare