Das Web ist nicht am Reißbrett entstanden, sondern im Laufe der letzten gut zwanzig Jahre natürlich gewachsen, und das gilt auch für HTML. Darum hilft ein kurzer Blick in die Entstehungsgeschichte von HTML5 dabei, die Verwirrungen rund um den Begriff besser zu verstehen.
HTML gibt es genau genommen gleich zweimal, einmal vom W3C und einmal von der WHATWG. Seit dem 28. Mai 2019 wird der HTML-Standard offiziell von der WHATWG gepflegt (siehe Phase 6):
- HTML – The Living Standard von der WHATWG
Wie es dazu kam erzählt die folgende kurze Geschichte von HTML5, die in der französischsprachigen Schweiz beginnt:
- Phase 1: HTML – zwischen W3C und Browserherstellern
- Phase 2: Aus HTML 4.01 wird XHTML 1.0
- Phase 3: XHTML 2.0 und die Revolte der Browserhersteller
- Phase 4: Zurück zu HTML – das W3C ändert den Kurs
- Phase 5: W3C und WHATWG – together apart
- Phase 6: Es kann nur einen geben – WHATWG (seit dem 28. Mai 2019)
Die Abbildung zeigt die ersten fünf Phasen und die wichtigsten Stichwörter auf einen Blick.
Phase 1: HTML – zwischen W3C und Browserherstellern
Während seiner Arbeit am CERN in Genf hatte Tim Berners-Lee Ende der 80er-Jahre die Idee, ein Hypertext-System auf der Basis des Internets zu schaffen, in dem man Dokumente von jedem Rechner im Netz direkt aufrufen kann. Diese Idee war die Keimzelle des World Wide Web.
Glücklicherweise hat sich Berners-Lee seine Erfindungen nicht patentieren lassen, sondern offene Standards wie HTTP und HTML geschaffen, aber trotzdem wurde das Web von Anfang an in einem Spannungsfeld diverser Interessen groß:
- Auf der einen Seite stehen Organisationen wie die Internet Engineering Task Force (IETF) und das World Wide Web Consortium (W3C), die eher den Traditionen der akademischen Welt verpflichtet sind und die die offiziellen Webstandards wie HTML und CSS definieren.
- Auf der anderen Seite gibt es Firmen wie z. B. die Browser- und Softwarehersteller wie Microsoft, Google, Apple, Opera und Adobe, die ein eher kommerzielles Interesse am Web haben und ein hohes Innovationstempo gewöhnt sind.
Irgendwo dazwischen stehen Webdesigner, Webentwickler und normale Nutzer.
Alle Parteien sind sich im Prinzip darüber einig, dass einheitliche Standards im Web wichtig sind, um eine Wiederholung des Turmbaus zu Babel zu verhindern. In der Realität haben aber die Browserhersteller schon sehr früh immer wieder kurzerhand neue HTML-Elemente wie <table> und <font> eingeführt, ohne auf eine Standardisierung zu warten.
Der offizielle HTML-Standard hinkte den tatsächlichen Gegebenheiten im Web schon damals hinterher und dokumentierte zum Teil nur noch nachträglich die Realität. Eigentlich haben die Browserhersteller also schon immer bestimmt, was im Web machbar ist, auch wenn die offiziellen Standards vom W3C stammten.
Phase 2: Aus HTML 4.01 wird XHTML 1.0
Im Dezember 1997 wurde HTML 4.0 verabschiedet, und fast genau zwei Jahre später gab es als Weihnachtsgeschenk kurz vor Millennium am 24. Dezember 1999 eine leicht korrigierte Version 4.01. Allein der Zeitraum von zwei Jahren für eine »Bugfix-Version« deutet an, dass der Prozess hinter den Kulissen nicht ganz unproblematisch verlief.
Der durchschnittliche Quelltext damaliger Webseiten war ein undurchsichtiges Konglomerat aus <table>
und <font>
, das mit dem MIME-Type text/html
an die Browser ausgeliefert wurde. Der MIME-Type gibt an, welche Art von Inhalt ausgeliefert wird, und für die Browser bedeutet text/html
, vereinfacht gesagt, »Da kommt Text, der den Regeln von HTML entspricht«.
Der Quelltext der Webseiten wurde oft von interessierten Laien mit visuellen Editoren erzeugt. Beide kannten die Regeln von HTML nicht besonders gut und fanden das Aussehen der Webseiten im Browser wichtiger als den Quelltext. Der MIME-Type text/html
bedeutete daher für die Browser in der Realität eher »Da kommen ziemlich wirre Zeichen, die angeblich irgendetwas mit HTML zu tun haben sollen«.
Die Browserhersteller brachten ihren Browsern daher bei, im Quelltext vorhandene Fehler großzügig zu behandeln und auf jeden Fall zu versuchen, aus dem vorhandenen Kuddelmuddel irgendwie eine Webseite zu bauen und im Browserfenster darzustellen.
Das W3C hingegen favorisierte eine idealistischere Lösung und versuchte, das Übel bei der Wurzel zu packen: HTML war zu unpräzise, und der Quelltext der Webseiten sollte idealerweise den strengeren Regeln von XML entsprechen.
Der erste Schritt in diese Richtung war eine Neuformulierung von HTML 4.01 unter dem Namen XHTML 1.0. Das X stand sinngemäß für »XML-basiert«, und die aktuelle Version XHTML 1.0 stammt vom 1. August 2002.
In XHTML 1.0 gab es keine neuen Elemente oder Attribute, nur die Regeln wurden etwas strenger. Während in HTML Groß- und Kleinschreibung keine Rolle spielte und z. B. ein schließendes </p>
optional war, galt in XHTML strikte Kleinschreibung und die Regel, dass jedes Element wieder geschlossen werden musste. Diese strengeren Regeln hatten beim Schreiben und besonders beim Lernen von HTML viele Vorteile, führten aber auch zu umständlichen Konstruktionen wie <br />
oder checked="checked"
.
XHTML 1.0 wurde von fast allen Seiten als eine weitgehend gute Sache und notwendige Bereinigung empfunden und bildete zusammen mit CSS viele Jahre lang ein solides Fundament zum Erstellen von Webseiten.
Phase 3: XHTML 2.0 und die Revolte der Browserhersteller
Das Web hatte sich im Laufe der Jahre vom anfänglichen Hypertext-System zur Darstellung einfacher Dokumente zu einer Plattform für Webanwendungen entwickelt. Natürlich stellten Browser immer noch einfache Webseiten dar, aber interaktive Webanwendungen wie Google Maps wurden immer wichtiger, und Browser veränderten sich von reinen Dokumentenbetrachtern zu einer komplexen Programmablaufumgebung.
Das W3C wollte ein solides XML-basiertes Fundament für diese Entwicklung bauen und sah XHTML 1.0 eigentlich nur als ersten Schritt einer langen Reise. Das eigentliche Ziel war es denn auch, nicht nur strengere Regeln einzuführen, sondern deren Befolgung früher oder später zu erzwingen. Während XHTML 1.0 in der Regel als text/html
an die Browser geliefert wurde, sollte in XHTML 1.1 und 2.0 nur noch application/xhtml+xml
möglich sein.
Das hätte in der Praxis drastische Konsequenzen gehabt. Während die Browser sich bei einem als text
ausgelieferten Dokument großzügig zeigen und eventuelle Fehler begradigen, wird ein als application
ausgelieferter Quelltext wie ein Programm behandelt: Beim ersten Fehler wird die Bearbeitung abgebrochen, und die Browser geben statt der Webseite eine Fehlermeldung aus. Durch diesen Schritt wären damals wie heute grob geschätzt 99,9 % aller real existierenden Webseiten nicht mehr darstellbar gewesen.
XHTML ging also ab der Version 1.1 an der Realität vorbei und wurde dementsprechend von den Browserherstellern und der breiten Masse komplett ignoriert. Wie heißt es so schön: »Theorie ist, wenn man alles weiß und nichts klappt. Praxis ist, wenn alles funktioniert und keiner weiß, warum.« Das W3C wollte das Web quasi neu erfinden und die beim ersten Mal gemachten Fehler vermeiden. Dieses Mal sollte es ein perfektes Web werden. Theoretisch.
In der Praxis war dem ein kleines Problem im Weg: Es gab schon ein Web. Das war vielleicht nicht perfekt, aber es funktionierte, und es entwickelte sich munter weiter zu einer durchaus brauchbaren Plattform für Webanwendungen.
Während das W3C das nicht abwärtskompatible XHTML 2.0 entwickelte, wurde der Widerstand bei Webentwicklern und Browserherstellern immer deutlicher. Nach dem erfolglosen Versuch, das W3C von seinem Irrweg abzubringen, gründeten Apple, Opera und Mozilla im Frühsommer 2004 die Web Hypertext Application Technology Working Group (WHATWG), um unabhängig vom W3C den bestehenden HTML-Standard als Plattform für Webanwendungen kontinuierlich weiterzuentwickeln.
Phase 4: Zurück zu HTML – das W3C ändert den Kurs
Zwei Jahre lang werkelten W3C und WHATWG unabhängig voneinander an ihren jeweiligen Ideen, bis W3C-Direktor Tim Berners-Lee im Oktober 2006 in seinem Blog einen bemerkenswerten Artikel mit dem Titel »Reinventing HTML« veröffentlichte, der letztlich eine komplette Umkehr der W3C-Strategie bedeutete:
Making standards is hard work […] Some things are clearer with hindsight of several years. It is necessary to evolve HTML incrementally. The attempt to get the world to switch to XML, including quotes around attribute values and slashes in empty tags and namespaces all at once didn’t work …
Berners-Lee schrieb schlicht und einfach, dass der versuchte Wechsel zu XML nicht funktioniert habe und dass stattdessen eine schrittweise Weiterentwicklung von HTML notwendig sei.
Kurz darauf wurde beim W3C eine neue HTML Working Group gegründet, die als Fundament ihrer Arbeit die zwischenzeitlich erzielten Ergebnisse der WHATWG benutzte. 2009 wurde die Working Group für XHTML 2.0 offiziell aufgehoben. HTML5 hatte gewonnen.
Phase 5: W3C und WHATWG – together apart
Die Zusammenarbeit zwischen W3C und WHATWG ging ein paar Jahre lang mehr oder weniger gut, verlief aber selten so harmonisch, wie es vielleicht hätte sein können. Während das W3C eine gemeinschaftliche Diskussionskultur bevorzugt, die manchmal auch ins Endlose auszuufern droht, trägt bei der WHATWG der Editor Ian Hickson den Entscheiderhut, den er im Zweifelsfall auch rigoros aufsetzt.
Zur (erneuten) Trennung kam es 2011 über die Frage, welche Ziele man erreichen wolle:
In 2011, however, the groups came to the conclusion that they had different goals: the W3C wanted to publish a »finished« version of »HTML5«, while the WHATWG wanted to continue working on a Living Standard for HTML …
Während die WHATWG einen sich permanent wandelnden »Living Standard for HTML« ohne Versionsnummer anstrebt und folgerichtig auch die »5« im Namen gestrichen hat, möchte das W3C nach wie vor lieber fest definierte Zwischenstände mit einer Versionsnummer veröffentlichen.
Im Dezember 2012 erhielt HTML5 beim W3C den Status Candidate Recommendation (abgekürzt CR). Bei der Entwicklung von Software entspricht das ungefähr einem ersten Release Candidate. Knapp zwei Jahre später, am 28. Oktober 2014, wurde HTML5 dann zu einer W3C Recommendation und damit zu einem offiziellen Standard. HTML5 ist also ein eingefrorener Zwischenstand, der nicht mehr verändert wird und der für Webentwickler als Orientierung dafür dienen kann, was man bereits heute einsetzen kann.
Das W3C arbeitet aber auch bereits an HTML 5.1, das in etwa dem Living Standard der WHATWG entspricht. Trotz der offiziell getrennten Entwicklung beeinflussen sich die beiden Standards nach wie vor gegenseitig.
Und wenn sie nicht gestorben sind, so streiten sie noch heute …
Phase 6: Es kann nur einen geben – WHATWG
Am 28. Mai 2019 gab es eine bemerkenswerte Verlautbarung des W3C:
Was darin als Zusammenarbeit beschrieben wird, bedeutet letztlich, dass die WHATWG in Zukunft den einzig gültigen HTML-Standard definiert:
WHATWG maintains the HTML and DOM Living Standards
Hatte der alte Highlander also doch Recht: Es kann nur einen geben.
W3C und WHATWG arbeiten zusammen in the WHATWG repositories, das W3C übernimmt bestimmte Review Drafts von der WHATWG und publiziert sie als W3C Recommendations aber WHATWG bestimmt, was HTML ist.
Der 28. Mai 2019 ist also ein wichtiger Tag für HTML, denn er bedeutet unter anderem folgendes:
- Es gibt nur noch einen HTML-Standard.
- HTML wird jetzt auch offiziell von Google, Mozilla, Apple und Microsoft definiert.
Aber wie weiter oben erwähnt haben die Browserhersteller eigentlich schon immer bestimmt, was im Web machbar ist, und das W3C hat das anschließend dokumentiert.
Dieser Text basiert auf Abschnitt 3.2 aus dem Buch »Flexible Boxes« (2. Auflage, Seite 51-58) und wurde im Juli 2019 um die Phase 6 ergänzt.
Sehr gut beschrieben, jetzt verstehe ich die Zusammenhänge besser! Vielen Dank!
Freut mich, dass es dir geholfen hat, und vielen Dank für deine Rückmeldung!
Sehr hilfreicher Text, der die Entwicklung des Standards kenntnisreich und lebendig beschreibt.