1 Einführung
Webstandards: Freund oder Feind?
Der Standardisierungsprozess
Entgegen einer weit verbreiteten Meinung »macht« dasW3C die Webstandards nicht. Stattdessen dient das W3C als Forum für interessierte Parteien, um die Standards in verschiedenen Arbeitsgruppen (»Working Groups«) weiterzuentwickeln. Natürlich ist das W3C nicht nur Beobachter: Es legt die Grundregeln fest und überwacht den Standardisierungsprozess. Jedoch werden die Spezifikationen (fast) nicht von W3C-Beschäftigten geschrieben.
Abbildung 1.1
»Webstandards sind wie Würstchen: Man sieht besser nicht dabei zu, wie sie hergestellt werden.« – Anonymes Mitglied der W3C-Arbeitsgruppe
Spezifikationen stammen in der Regel von Mitgliedern der CSS-Working Group (kurz: CSS WG). Beim Schreiben dieses Buchs bestand sie aus 98 Mitgliedern, die sich wie folgt zusammensetzen:
Wie Sie sehen, besteht die Arbeitsgruppe größtenteils aus Vertretern der W3C-Unternehmensmitglieder (88%). Hierzu gehören Browserhersteller, Betreiber beliebter Websites, Forschungseinrichtungen, allgemeine Technologieunternehmen etc., die ein besonderes Interesse an der Entwicklung der Webstandards haben. Dabei stellen die jährlichen Mitgliedsbeiträge die Haupteinnahmequelle des W3C dar. Hierdurch ist es dem Konsortium im Gegensatz zu anderen Standardisierungsorganisationen, die dafür Geld nehmen, überhaupt erst möglich, seine Spezifikationen kostenlos und offen zur Verfügung zu stellen.
Abbildung 1.2
Die Zusammensetzung der CSS-Arbeitsgruppe:
Unternehmensmitglieder
Eingeladene Experten
W3C-Beschäftigte
Eingeladene Experten sind Webentwickler, die man gebeten hat, am Standardisierungsprozess mitzuwirken. Voraussetzung ist eine dauerhafte Bereitschaft zur Mitarbeit und ein technischer Hintergrund, der ausreicht, um sich an den Diskussionen zu beteiligen.
Letzlich gibt es tatsächlich einige W3C-Beschäftigte, die direkt für das Konsortium arbeiten und die Kommunikation zwischen der Arbeitsgruppe und dem W3C ermöglichen.
Es ist ein weit verbreiteter Irrtum unter Webentwicklern, dass das W3C die Standards von oben herab diktiert und die armen Browser diese dann befolgen müssen, ob sie wollen oder nicht. Die Wahrheit ist komplett anders: Gerade die Browserhersteller haben ein großes Wort dabei mitzureden, was Teil der Standards wird und was nicht, wie die oben gezeigten Zahlen beweisen.
Und obwohl einige Leute das glauben, werden die Standards auch nicht im luftleeren Raum hinter verschlossenen Türen festgelegt. Vielmehr ist der CSS-Arbeitsgruppe Transparenz sehr wichtig, und sämtliche Kommunikationsvorgänge sind öffentlich nachvollziehbar. Überprüfung und Teilnahme sind willkommen:
Die meisten Diskussionen finden auf der Mailingliste (http://lists.w3.org/Archives/Public/www-style) statt. www-style verfügt über ein öffentlich zugängliches Archiv und steht jedem zur Teilnahme offen.
Zusätzlich gibt es eine wöchentliche Telefonkonferenz, die jeweils eine Stunde dauert. Die Konferenz selbst ist nur für W3C-Mitglieder zugänglich, wird aber öffentlich und in Echtzeit auf dem #css-Kanal des IRC-Servers des W3C (http://irc.w3.org/) protokolliert. Das Protokoll wird danach bereinigt und ein paar Tage später auf der Mailingliste veröffentlicht.
Außerdem gibt es vierteljährliche persönliche Treffen, die auf die gleiche Art prokolliert werden wie die Telefonkonferenzen. Diese Treffen stehen nach Genehmigung durch die Vorsitzenden der Arbeitsgruppe ebenfalls zur Einsicht (Überprüfung) offen.
Alle diese Dinge gehören zum W3C-Prozess und dienen der Entscheidungsfindung. Diejenigen, die diese Entscheidungen schließlich schriftlich fixieren, sind die Spezifikations-Redakteure (Spec Editors). Das können entweder W3C-Mitarbeiter, Browserentwickler, eingeladene Experten oder Angestellte der Unternehmensmitglieder sein. Letztere sind meist Vollzeitmitarbeiter, die von ihren Unternehmen bezahlt werden, um die Standards für das Gemeinwohl voranzubringen.
Jede Spezifikation durchläuft auf dem Weg von der ersten Idee bis zur Reife eine Reihe verschiedener Stadien:
Wollen Sie mehr erfahren? Elika Etemad (fantasai) hat eine Reihe sehr guter Artikel über die Arbeitsweise der CSS-Arbeitsgruppe geschrieben (http://fantasai.inkedblade.net/weblog/2011/inside-csswg). Äußerst empfehlenswert.
Editor’s Draft (ED, Redakteursentwurf): Der erste Schritt einer Spezifikation ist manchmal einfach nur eine Ideensammlung eines Spec Editors. Für diesen Schritt gibt es keinerlei Anforderungen, aber auch keine Garantie, dass die Ideen von der Arbeitsgruppe akzeptiert werden. Trotzdem ist dies die erste Phase jeder Revision: Alle Änderungen werden zunächst in einem ED vorgenommen und dann veröffentlicht.
First Public Working Draft (FPWD, erster öffentlicher Arbeitsentwurf): Die erste veröffentlichte Version einer Spezifikation, nachdem die Arbeitsgruppe der Meinung ist, dass sie bereit für öffentliche Rückmeldungen ist.
Working Draft (WD, Arbeitsentwurf): Auf den ersten Arbeitsentwurf folgen eine Menge weitere, jeder – unter Berücksichtigung des Feedbacks von Arbeitsgruppe und Öffentlichkeit – ein wenig besser. Oftmals beginnen die ersten Implementierungen in dieser Phase, obwohl experimentelle Implementierungen manchmal auch schon in einem früheren Stadium einer Spezifikation vorgenommen werden.
Candidate Recommendation (CR, Empfehlungskandidat): Spezifikationen in diesem Stadium gelten als recht stabil. Jetzt ist die Zeit für Implementierungen und Tests gekommen. Eine Spezifkation kann das nächste Stadium nur erreichen, wenn es eine komplette Testsuite und mindestens zwei unabhängige Implementierungen gibt.
Proposed Recommendation (PR, Empfehlungsvorschlag): Dieses Stadium ist die letzte Chance für W3C-Unternehmensmitglieder, zu erklären, dass sie mit der Spezifikation nicht einverstanden sind. Das passiert aber nur selten. Daher ist es meist nur eine Frage der Zeit, bis eine PR den nächsten und abschließenden Schritt erreicht.
Recommendation (REC, Empfehlung): Das finale Stadium einer W3CSpezifikation.
Ein oder zwei Mitglieder der Arbeitsgruppe haben die Rolle von Vorsitzenden (chairs). Diese sind für die Organisation von Treffen, die Koordinierung der Telefonkonferenzen, die Zeiterfassung und die allgemeine Moderation der ganzen Sache zuständig. Die Rolle eines Vorsitzenden erfordert einen hohen Zeit- und Kraftaufwand und wird gerne mit dem Hüten von Katzen verglichen. Natürlich weiß jeder, der mit den Standards zu tun hat, dass das Quatsch ist: Das Hüten von Katzen ist viel einfacher.
Abbildung 1.3
Der Vorsitz einer W3C-Arbeitsgruppe wird häufig damit verglichen, Katzen zu hüten.
CSS3, CSS4 und andere Sagenwesen
CSS 1 war eine ziemlich kurze und einfache Spezifikation, die 1996 von Håkon Wium Lie und Bert Bos veröffentlicht wurde. Sie war so klein, dass der gesamte Inhalt auf einer einzigen HTML-Seite enthalten war, für deren Ausdruck gerade einmal 64 DIN-A4-Seiten benötigt wurden.
CSS 2, 1998 veröffentlicht, war deutlich strenger definiert und besaß eine Vielzahl neuer Merkmale sowie zwei zusätzliche Redakteure Chris Lilley and Ian Jacobs. An diesem Punkt war die Spezifikation bereits auf 480 (!) gedruckte Seiten angewachsen und so groß, dass kein einzelner Mensch sie mehr komplett im Kopf behalten konnte.
Nach CSS Level 2 gelangte die CSS-Arbeitsgruppe zu dem Schluss, dass die Sprache zu groß sei, um sie weiterhin in einer einzigen Spezifikation pflegen zu können. Die Spezifikation nicht nur schwer zu lesen und zu bearbeiten, sondern wurde mehr und mehr zu einer Bremse für die Entwicklung von CSS selbst. Damit eine Spezifikation zum Abschluss gebracht werden kann, müssen für jedes einzelne Feature zunächst zwei unabhängige Implementierungen und ausgiebige Tests durchgeführt werden. Das war nicht länger praktikabel. Daher wurde beschlossen, CSS in mehrere Spezifikationen (Module) aufzuteilen, die jeweils eine eigene Versionierung erhielten. Module, die eine Erweiterung von Merkmalen aus CSS 2.1 darstellten, wurden mit der Versionsnummer 3 versehen. Dies sind z.B.: