CSS und der Fluch der Präfixe

Für den modernen Webdesigner gehört es natürlich dazu, die Möglichkeiten, die einen die Webbrowser mit den brandneusten CSS-Modulen bieten, vollkommen auszureizen und zu testen. Ich nehme mich selber dabei nicht heraus. Ich probiere auch gerne die allerneusten Features aus. Und sehr gerne verwendet man diese neuen Features auch sofort in einem neuen Design, was man sowieso gerade mal wieder erstellen wollte. Immerhin erleichtern die einen ja scheinbar die Arbeit. Scheinbar aber auch nur. Denn leider sind diese neuen CSS-Module meistens noch nicht über den “Working-Draft”-Status beim Standardisierungsverfahren bei der W3C hinaus. Die Browserhersteller wollen deshalb Probleme, die durch mögliche unterschiedliche Implementierungen der unfertigen Module entstehen könnten, vorbeugen und fügen den neuen CSS-Eigenschaften ihre eigenen Präfixe hinzu. So wird aus der Eigenschaft transform im Mozilla Firefox die Eigenschaft -moz-transform, die beispielsweise Webkit-basierte Browser wiederum ignorieren.

Der folgende Eintrag soll einmal erläutern, welche Probleme sowohl für die Entwickler wie auch für die Benutzer durch die neue Taktik mit den Präfixen entstehen, und wie man diese im besten Falle auch wieder lösen kann.

Dass die Verwendung von Präfixen bei neuen Features in der Testphase durchaus Sinn macht, möchten wir an dieser Stelle keineswegs anzweifeln. Man denke nur zurück, als Safari und Firefox nahezu gleichzeitig mit den neuen Farbverläufen für Hintergründe aufwarteten. Die beiden Implementierungen hatten dabei nur wenig Gemeinsamkeiten. Um aber zu einem gemeinsamen Standard zu kommen, änderten die Webkit-Entwickler ihre Implementierung nochmals und glichen diese schließlich der Gecko-Variante an.
Ein Problem mit den Präfixen verdeutlicht dieses Beispiel aber gleichzeitig auch. Um wirklich alle Browser zu unterstützen, muss der Webdesigner eine Vielzahl von CSS-Eigenschaften, die allesamt nur eine einzige Funktion erfüllen, schreiben. Anstatt der neuen einfacheren Eigenschaft transform darf der Designer somit auch noch -moz-transform, -webkit-transform, -o-transform und -ms-transform hinzufügen. Gibt es nun noch solche Änderungen wie oben genannt, werden es noch mehr eigenschaften, die der fleißige Designer schreiben darf. Da es aber vielleicht auch noch Nutzer von Browsern ohne diese tollen neuen Features gibt – die müssen dabei noch nicht einmal Nutzer vom Internet Explorer 6 sein -, sollte natürlich auch an eine Fallback-Lösung gedacht werden. Dies macht natürlich Arbeit – Arbeit, die der gemeine Webdesigner gar nicht gerne mag. Oftmals reicht es zwar aus, einfach via Copy&Paste die Eigenschaft fünfmal zu kopieren und eben jeweils die Präfixe davor zu setzen, leider jedoch nicht immer. Dies wird manchem Entwickler natürlich schnell zu viel und setzt stattdessen einfach auf die jeweilige Variante des bevorzugten Browsers und schreibt in den Footer, dass die Seite nur für Browser X angepasst wurde. Als Nutzer des Feuerfuchses fällt in letzter Zeit besonders häufig auf, dass viele Designer ihre Seiten nur noch an Webkit-Browser anpassen und eben anstatt der oben genannten fünf Zeilen Code nur eine einzige verwendet, nämlich die Variante mit dem -webkit- – teilweise gibt es die entsprechende Eigenschaft auch bisher nur in Webkit. Und eine Fallback-Lösung? Oder ein vorausschauender Blick in die Zukunft für Browser, die die Eigenschaft vielleicht erst später implementieren? Wer braucht das schon? Wer die Seite ansehen will, kann ja auch einfach zu Chromium oder Safari wechseln.
Was hier geschieht, erinnert stark an die Zeit von vor wenigen Jahren, als alle Welt ihre Seiten nur an den Internet Explorer 6 angepasst hat und die Nutzer anderer Browser das Nachsehen hatten. Man erreichte somit zwar auch viele Nutzer, für manche sind die Seiten jedoch unbenutzbar. Das diese erschreckende Entwicklung weg von dem eigentlichen Ziel der Standardisierung – nämlich, dass jeder Nutzer im Browser seiner Wahl die Seite genauso sieht, wie der Entwickler es sich dabei gedacht hat – zurück zu den Insellösungen nur an den Designern liegt, ist jedoch auch wieder auszuschließen. Häufig lässt sich dies auch direkt auf die Entwickler der Browser selber zurückführen. Gerade die Entwickler bei Apple und Google scheinen den seit vielen Jahren andauernden Browserkrieg noch immer sehr ernst zu nehmen. So denkt man sich ständig neue Features aus, die noch mit keinem einzigen Wort in den Entwürfen des CSS3-Standards erwähnt werden und möglicherweise auch nicht mehr darin landen werden. Stattdessen versucht man sich mit allen Mitteln Vorteile gegenüber dem Wettbewerb zu erhaschen – koste es, was es wolle. Standards interessieren den Otto-Normal-Nutzer letztendlich eh einen feuchten Kehricht.
Wir möchten an dieser Stelle natürlich nicht über die freie Marktwirtschaft schimpfen – um die soll es hier auch gar nicht gehen. Viel mehr geht es darum, dass die Abweichung von den Standards, die ja im Übrigen u.a. auch durch dieselben Unternehmen bestimmt werden, letztendlich dann doch dem Nutzer wieder schaden. Dieser will ja den Browser nutzen, den er selber will und interessiert sich nicht dafür, ob sein Browser nun die supertolle neue Funktion zur Bildbearbeitung via CSS unterstützt oder nicht. Er will ja auch nur seine regelmäßige Streiftour durch das Internet möglichst komfortabel erleben. Und der Webdesigner möchte seine Seite mit möglichst wenig Aufwand gestalten, wofür die neuen (zukünftigen) Standards ja auch gedacht sind. Im Moment entwickelt es sich jedoch durch die exzessive Verwendung von Präfixen eher in die entgegengesetzte Richtung.
Eine kühne Idee, die dem Präfix-Wahn und dem Ausschluss von Nicht-Webkit-Browsern entgegen wirken soll, hatten bereits einige Entwickler aus dem Hause Mozilla. Der Firefox könnte ja auch einfach die Eigenschaften mit dem Webkit-Präfix unterstützen. Auf dem ersten Blick ist diese Idee gar nicht einmal so schlecht: Weniger Schreibarbeit für Designer und der Nutzer sieht die tollen Ergebnisse der schlecht gestalteten Seite. Auf dem zweiten Blick jedoch wirkt sie eher lachhaft. Immerhin werden somit sowohl die Standards an sich umgangen und die Idee der Präfixe völlig ausgehebelt. Die Idee der Präfixe war ja, neue Features testweise zu implementieren und gegebenenfalls bei Änderungen der Standardentwürfe, diese ohne große Probleme anzupassen. Wenn jedoch der Webkit-Präfix zum neuen Quasi-Standard wird, ist dies nicht mehr möglich. Folglich ist es auch vollkommen richtig, dass Mozilla diese Gedanken wieder verwarf und somit eher auf den Verstand der Webdesigner selber hofft.

Schlussendlich möchten wir natürlich noch einmal anmerken, dass wir weder die Präfixe, noch CSS3, die W3C oder die Browserhersteller verteufeln möchten. Wir möchten nur darauf aufmerksam machen, dass CSS-Eigenschaften mit Präfixen nur zum Testen gedacht sind und – zumindest nicht ohne Fallback-Lösung – auf Produktiv-Seiten eigentlich nichts verloren haben. Und auch wenn es eine Menge Mehrarbeit für den Webdesigner darstellt, so sollte er sich nicht davor scheuen. Ein CSS-Code mit fünfmal derselben Eigenschaft – nur mit jeweils unterschiedlichen Präfixen – ist letztendlich immer noch die bessere Lösung als nur die Webkit-Variante – auch wenn der Code danach nicht mehr so schön anzusehen ist. Der Nutzer wird es dem Designer auf jeden Fall danken…

Keine Kommentare

Es sind noch keine Kommentare vorhanden. Schreibe doch den Ersten!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*