Die Sache mit den vendor-prefixes

Es gibt mal wieder eine gehörige Portion Aufregung unter Frontendentwicklern. Auslöser sind die Mitschriften einer Sitzung der CSS-Workinggroup und eine von Tantek Celik recht offensiv geführte Diskussion um vendor-prefixes. Kurz gefasst möchte Tantek unbedingt das vendor-prefix „-webkit“ auch bei Mozilla implementieren. „-webkit“ und „-moz“ würden dann einträchtig nebeneinander existieren. Es gab sogar die Idee, „-webkit“ als offiziellen Standard zu übernehmen, sodass alle anderen Browserhersteller diese Prefixes auch implementieren.

Egal wie lange ich darüber nachdenke, ich finde die Idee schlecht. Vendor-prefixes waren eine gute Idee. Sie sollten den Browserherstellern ermöglichen, neue Features zu implementieren, bevor die endgültige Syntax feststeht. Doch leider haben sich alle Beteiligten nicht so richtig auf ein Vorgehen geeinigt. So scheint es mir jedenfalls. Es gibt eine Menge Eigenschaften, die schon lange erfolgreich in Benutzung sind und deshalb endlich ohne Prefix implementiert werden können. Bei den runden Ecken ist dies nun endlich der Fall. Aber bei den meisten anderen nicht. Die Hersteller sind da in der Pflicht, sich zu beeilen. Microsoft und Apple lassen wir mal aussen vor. Deren Entwicklungszyklen sind so lang und langsam, dass sie nicht zählen.

Aber auch das W3C hat (mal wieder) versagt. Die Working Group schafft es einfach nicht, endlich mal einen Strich unter die schon seit einer gefühlten halben Ewigkeit diskutierten Techniken zu ziehen. Im Gegenteil: im Falle der Hintergrundverläufe haben sie nach Jahren der Stabilität die vorgeschlagene Implementierung wieder geändert.

Ein dritter Schuldiger sind faule Entwickler. In meinen Augen sind dies die wahren Schuldigen. Denn egal was die Browserhersteller und das W3C so tun, am Ende müssen wir Webentwickler Seiten mit den vorgeschlagenen und implementierten Techniken bauen. Wenn wir dabei nur an „-webkit“ denken und alle anderen Browser ignorieren, dann ist das unser Fehler. Dieser Fehler ist leicht behebbar. Durch Information, durch gute Tools wie Präprozessoren.

In den letzten Monaten hatte ich den Eindruck, ein Großteil der veröffentlichenden Entwickler steht Kopf, wenn das Webkit-Team mal wieder eine neue Technik implementiert hat. Es las sich dann in Weblogs gerne so, als könne man die neue Technik X, die gerade in einem Webkit-Nightly implementiert wurde, sofort produktiv nutzen. Ich erinnere mich noch gut an einen Blogartikel, der Teaser mit 3D-Transforms vorstellte. Dabei fiel kein Wort darüber, dass alle anderen Browser nur seltsamen Kram darstellten.

Es ist ja ganz interessant und wichtig, mit neuen Techniken zu experimentieren. Aber der Ton macht die Musik. Denkt bitte daran, dass nicht jeder einen Webkit-Nightly nutzt und dass wir auch noch auf Jahre hinaus Seiten ausliefern müssen, die im IE8 bedienbar sind und nicht ganz miserabel aussehen. Ich verstehe die Frontendentwickler nicht, die großzügig über die Existenz anderer Browser als ihres Lieblingsbrowsers hinweggehen.

Würde Mozilla den „-webkit“-Prefix einführen, hätten wir überhaupt keine Unterscheidungsmöglichkeiten mehr und wären wieder auf Browsersniffing angewiesen. Denn wer garantiert mir, dass Mozilla, Opera und Microsoft die Techniken mit dem fremden Prefix genauso einbinden und realisieren, wie die Webkit-Entwickler? Niemand kann das, niemand wird das.

Nein, die Browserhersteller sollten sich beeilen, einen Strich unter die meisten Techniken zu ziehen und sie ohne Prefix zu implementieren. Sie sind in der W3C-WG und können ein wenig Geschwindigkeit in diese lahme Veranstaltung bringen. Parallel müssen wir dafür sorgen, dass Entwickler kein Lob mehr für Demos bekommen, die nur noch auf einen Browser ausgerichtet sind, obwohl es auch in anderen funktionieren würde. Und wir sollten alle unseren Fokus ein wenig verändern.

Natürlich ist es toll, eine völlig neue Technik zu demonstrieren. Wir sollten aber immer mit kommunizieren, wie die Einsatzfähigkeit in der Realität ist. Welche Tricks, Kniffe und Verrenkungen sind notwendig, um alle Browser bis zum IE8 (und 7!) mitzunehmen? Ich meine nicht, dass sie alle die gleiche Technik präsentieren sollen. Aber graceful degredation darf ich doch zumindest erwarten. Was bringen meinem Kunden Teaser in 3D, wenn sie bei 98% seiner Besucher ein unlesbarers und unbedienbares Ergebnis hervorrufen?

Zu diesem Themenkomplex gibt es eine Reihe sehr interessanter Wortmeldungen. Leider fast ausschließlich im englischsprachigen Raum. Wir sollten uns von dieser wichtigen Debatte nicht ausklinken. Es geht um wichtige Grundlagen unserer Industrie. Denn aktuell scheint es so, als würden wir die alten Fehler wiederholen. Früher war es „best viewed with Internet Explorer“, jetzt steht da einfach „Webkit“. Es war ein Fehler und es bleibt einer. Wir sollten doch aus der Geschichte lernen können.

Und hier eine bunt gemischte Auswahl an weiterführenden Links mit sehr unterschiedlichen Ansichten und Ansätzen:

7 Kommentare

  1. Das ist wirklich die Krönung aller Schnapsideen, die in den letzten Jahren aufgekommen ist. Nicht dass es großartig von Bedeutung wäre – man verwendet doch sowieso zu 99% alle Prefixe, schon alleine aus dem Grund weil man sich eben nicht darauf verlassen kann, wie lange diese noch ausgewertet werden.

    Es geht einfach ums Prinzip, um die Tatsache, dass Webkit eben Webkit ist und Mozilla eben Mozilla. Ich bau doch in den Opel auch nicht das Lenkrad vom Daimler ein. Und das von jemandem, der es eigentlich wissen müsste.

    Das W3C soll endlich mal die Luft anhalten und diesen ganzen Quatsch verabschieden, der sich seit Jahren in der Praxis bewährt hat. Ich kann es gar nicht in Worte fassen, wie lächerlich ich das alles finde.

  2. Die Diskussion mag interessant und wichtig sein. Die Idee -Webkit- zum Standard zu erklären ist lächerlich. Wenn die Browser ihre Anteile verlieren, sollten sie sich was besseres überlegen als die Schuld anderen in die Schuhe zu schieben.

  3. Wenn vendor-prefixes so kontrovers diskutiert werden, hat es auch seine Wichtigkeit. Solche Diskussionen sollten ergebnisoffen sein. Das W3C bekleckert sich allerdings nicht gerade mit Ruhm bei seiner Entscheidungsfreudig- und -geschwindigkeit.

    Was ich von Google, Apple und Facebook gelernt habe: Einfach machen und wenn es nicht gebraucht wird, verschwindet es halt wieder vom Markt. Das gleiche gilt meiner Meinung nach für vendor-prefixes. Wenn ein Browserhersteller neue Lösungen testen will, sollte er es ruhig unter seinem Namen machen.

    Ich hätte es schon 2000 gut gefunden, wenn statt kryptischer Meta-Angaben die Pagetransions des IE5.5 als prefix im CSS Einzug gehalten hätten. Dann hätten die CSS3 Transitions und CSS3 Animations wahrscheinlich früher das Licht der Welt entdeckt:-)

  4. Nicht das einzige Beispiel. Nur ein neues, welches ich heute entdeckt habe:
    http://www.designmadeingermany.de/2011/trash/moz-border-radius/

    • Hallo Martin, Dein Kommentar ist recht knapp. Was Du offenbar meintest war, dass der Firefox ein Video nicht abspielt, wenn man diesem runde Ecken mittels vendor-prefix zuweist. Das ist nicht komplett richtig. In Deinem Beispiel weist Du die runden Ecken dem iframe zu. Dies führt in FF 9 und 10 dazu, dass das Video nicht geladen wird. Im FF8 klappt es. Dieses Verhalten ist zwar seltsam, der Code aber vielmehr. Wozu einem iframe runde Ecken geben?

      Weist man hingegen die runden Ecken dem Video konkret zu, dann klappt es auch mit den modernen Firefox-Versionen: http://jsfiddle.net/Flocke/BjTXU/

  5. Konsistente Gestaltung. Wenn ich allen Elementen runde Ecken gebe, dann auch Videos. Darin sehe ich nichts komisches. Oder meintest du, daß Border-Radius bei Iframes nicht erlaubt wäre?