CSS3 & HTML5

Einstieg in die neuen Webstandards

Die Entstehungsgeschichte von HTML5

Von oli veröffentlicht am Uhr

Wie kam es eigentlich zu HTML5? Und was hat die Entstehung von HTML5 mit XHTML2 zu tun?
Für alle, die sich für die Hintergründe des neuen Standards interessieren, ist dieser Artikel geeignet.


Anmerkung: Im Video kommt es so rüber, als ob “XHTML Print” und “XHTML Basic” Module von XHTML waren. Tatsächlich aber waren das Dokumenttypen, die aus XHTML-Modulen zusammengesetzt waren. Mehr dazu in diesem Artikel.

Die Ursprünge von HTML

Am hat die Sprache des World Wide Webs ihren Ursprung. An dem Tag wurde die erste HTML-Version veröffentlicht. Sie ist noch heute beim W3C zu finden:

HTML - die erste Spezifikation

HTML - die erste Spezifikation


Im wurde HTML 4.0 veröffentlicht. Innerhalb von 7 Jahren ist HTML von Version 1.0 bis Version 4.0 geschritten, doch erst jetzt, 13 Jahre später, stehen wir vor der nächsten großen Version, HTML5. Was war passiert? Warum hat das so lange gedauert?

HTML, das ist auch in der ersten Spezifikation zu lesen, war als Sprache im SGML-Format geplant, der “Standard Generalised Mark-up Language”. Die “Normierte Verallgemeinerte Auszeichnungssprache” sollte eine Norm für alle Auszeichnungssprachen sein. Behörden, Firmen, Bildungseinrichtungen,… wer auch immer seine Dokumente speichern wollte, SGML sollte das passende Format liefern und jede geeignete Auszeichnungssprache sollte daraus ableitbar sein. Entsprechend war die Spezifikation sehr groß: 500 Seiten umfasst die Definition von SGML.

Extensible Markup Language

XML

XML (Bild: Wikipedia)


Im wurde die erste XML-Spezifikation veröffentlicht. XML ist auch eine Auszeichnungssprache und somit eine Teilmenge von SGML. Im Gegensatz zu SGML ist sie allerdings stark vereinfacht. Die Definition von XML umfasst nur 26 Seiten.

Plötzlich waren alle heiß auf XML. XML war das neue Ding! Es war einfacher, dadurch verständlicher und sogar für Maschinen besser lesbar. In einem Workshop namens “Shaping the Future of HTML” bestätigte die W3C, dass sie eine neue HTML-Generation auf XML-Basis starten wolle. Und so wurde auch HTML in XML reformuliert und erreichte im Empfehlungsstatus. Aus der zu der Zeit aktuellen Version HTML 4.01 entstand XHTML 1.0. Zwischen den beiden Sprachen ist kein großer Unterschied, es gab keine neuen Elemente oder ähnliches, nur die Syntax ist etwas strenger und logischer geworden.
Um abwärtskompatibel zu bleiben, wurde ein Modus eingeführt (bekannt als “Appendix C”), XHTML 1.0 so zu schreiben, dass ein HTML 4 verstehender Browser es als HTML versteht und nicht darüber stolpert, dass es XML ist. Dabei wurde ausgenutzt, dass die HTML-Parser in den Browsern Syntaxfehlern gegenüber tolerant waren.
Ganz anders als XML-Parser, die bei einem Syntaxfehler die weitere Verarbeitung der Seite abbrechen.

XHTML wurde weiterentwickelt. Es wurden verwandte und zusammengehörige Elemente in Modulen zusammengefasst, die einzeln weiterentwickelt wurden. Die Idee dahinter war, dass man sich eigene XHTML-Dokumenttypen aus diesen Modulen nach dem Baukastenprinzip zusammensetzen kann. Es entstanden beispielsweise XHTML Print, für Gedrucktes, und XHTML Basic, eine abgespeckte Version für minimalistische Geräte wie PDAs und Mobiltelefone.

In XHTML 1.1 wurden alle Module wieder zusammengefasst. Außerdem kam ein weiteres Modul hinzu, das nicht seine Ursprünge in HTML hatte (das Ruby-Modul – hat was mit asiatischer Schrift zu tun). Der Modus aus XHTML 1.0, mit dem man die Seite für den Browser als schlichtes HTML ausgeben konnte, wurde entfernt. Außerdem waren sämtliche Layout-Elemente (<font>, <b>, …) nicht mehr enthalten. XHTML 1.1 war dadurch nicht mehr abwärtskompatibel. Webseiten, die in XHTML 1.1 geschrieben waren, konnten von Browsern, die nur HTML 4 verstehen, nicht mehr verarbeitet werden. XHTML 1.1 sollte nur noch als XML verarbeitet werden. Es sollte die Zukunft sein und war Teil der Revolution, die durch XML stattfinden sollte!

XHTML und die Realität

HTML - die Sprache für Einsteiger

HTML für jeden, die Sprache für Einsteiger


Was tatsächlich passierte, entsprach nicht der Vision, die das W3C hatte. XML findet kaum in unseren Browserfenstern statt. Der überwältigende Großteil aller Webseiten wird von einer HTML-Engine verarbeitet. Denn über das abwärtskompatible XHTML 1.0 hinaus hat sich XML nicht durchsetzen können. Der Grund ist offensichtlich: Das Internet war und ist selbst heute noch voll von Webseiten, die sich nicht um korrektes Markup kümmern und die Syntax somit nicht den strengen Regeln von XML entspricht. Für viele Menschen war HTML überhaupt der erste Einstieg und stellte den ersten Kontakt mit Computer-Code dar. Dementsprechend gab es viele Webseiten, deren Autoren keine tiefgreifenden Kenntnisse von diesem Thema hatten. Schätzungen zufolge haben 99% aller Webseiten mindestens einen Fehler im Code. Würde auf diese Webseiten die drakonische Fehlerhandhabung von XML angewendet werden, bei der beim ersten kleinen Fehler die Verarbeitung der Seite abgebrochen wird, würden dementsprechend 99% aller Webseiten gar nicht erst angezeigt werden.
Und abgesehen davon gab es noch haufenweise HTML-Webseiten, die naturgemäß kein XML sind.

Doch selbst wenn man eine XHTML-Webseite als tatsächliches XML senden würde, hätte ausgerechnet der meistverbreitete und damit wichtigste Browser (der Internet Explorer) nichts anfangen können, da er bis Version 7 über keinen XML-Parser verfügte.
Kurzum: XML schaffte es nicht in unseren Browser. Der XHTML 1.1-Standard konnte sich nicht durchsetzen. Die Revolution durch XML fand nicht statt.

Es hätte so schön sein können

Und doch wurde es weiterentwickelt. An XHTML 2.0 wurde mindestens seit Anfang 2002 gearbeitet. Was bei XHTML 1.1 mit dem Ruby-Modul angefangen hat, sollte hier fortgesetzt werden: Andere XML-Sprachen sollten in XHTML Einzug halten und Bereiche ersetzen, die noch aus der HTML-Zeit geerbt waren. XForms sollte für Formulare, XML Events für die Einbindung von Scripten und XFrames für Frames zuständig sein.

Die Idee dahinter ist toll und dieselbe, die schon hinter der Modularisierung von XHTML stand: Die Sprache ist die Vereinigung einzelner Bausteine. Man lagert Kernfunktionen von HTML bzw. XHTML in bereits existierende XML-Sprachen aus, kann neue XML-Sprachen integrieren (zum Beispiel mathML oder SVG) und passt den Rest von HTML bzw. XHTML der XML-Syntax an, bis die Sprache vollkommen logisch und einheitlich ist (zum Beispiel sollte in XHTML 2.0 jedes Element ein Hyperlink oder ein Bild sein können). Die XML-Parser in den Browsern würden alles verstehen, egal welches neue Modul zukünftig dazu kommen würde. Die Weiterentwicklung des Webs würde beschleunigt werden. Man hätte eine Sprache, die beliebig erweiterbar ist, logisch und maschinenlesbar. Ein semantisches Web würde dadurch leichter umsetzbar sein, viel eher als mit HTML. Programmierer-Herzen würden höher schlagen. Die Welt würde ein bisschen besser werden.

Doch dazu ist es nie gekommen. Wie du anhand dieser Seite sehen kannst, ist HTML5 das neue Ding und nicht XHTML 2.0. Das Problem: Was in der Theorie super ist, muss es nicht zwangsläufig in der Praxis sein. Und genau das war der Fall bei XHTML 2.0: Es war einfach nicht umsetzbar.

XForms sollte an die Stelle von HTML-Formularen treten, sie ersetzen. Doch es war vollkommen anders als die HTML-Formulare, viel komplexer und greift auf weitere XML-Sprachen zurück (XPath, XML Schema, XML Events). Das bedeutet: Hatte man ein gültiges XHTML 1-Dokument, in dem ein Formular vorkam, war es kein gültiges XHTML 2-Dokument mehr.
Und das gilt nicht nur für Formulare: Viele Bereiche in XHTML wurden so verändert, dass sie in XHTML 2.0 völlig anders waren. XHTML 2.0 entsprach viel eher einer Neuentwicklung als einer Weiterentwicklung von XHTML. Man hätte viele Techniken neu lernen müssen. Für Programmierer und Computer-Geeks wäre XHTML 2.0 nicht schwer gewesen. Doch, wie bereits geschrieben, wurde HTML von vielen Menschen verwendet, die sich damit nicht auskannten. Diese Menschen hätten vor einer großen Lernkurve gestanden. Für sie ist XForms unverständlich und XHTML 2.0 ein großes Ungetüm.

“Das einfache (X)HTML-Formular, das [der Otto-Normal-Pixelschubser] eben noch geschrieben hat, kann er beim hypothetischen Umstieg auf XHTML 2 nicht einfach so lassen oder gar erweitern, nein, er muss es neu schreiben und dies ganz anders als gewohnt, und um XForms effizient nutzen zu können, braucht er sehr viel mehr Wissen.” (Bewegung im W3C)

XHTML 2.0 war nie kompatibel mit unseren Browsern. Kaum jemand hat XHTML 2.0 genutzt. XHTML 2.0 sei eine praxisferne Ausgeburt des “Wolkenkuckuckskonsortiums”, so die Kritiker.

Eine konkurrierende Vision

Die W3C war massiv in der Kritik. XHTML 2.0 zeige ihre Weltfremdheit. Sie orientiere sich nicht an der Praxis und nicht an den Bedürfnissen und Erfahrungen ihrer Klientel.

Im hielt die W3C einen Workshop, bei dem Stellvertreter drei großer Browser-Hersteller anwesend waren.
Die Stellvertreter von Mozilla und Opera haben ihre Vision der Zukunft des Webs vorgestellt mit sieben Kernpunkten. Vier davon waren Punkte, die viele Kritiker bei der W3C vermissten:

  • Abwärtskompatibilität Webtechnologien sollten auf vertrauten Technologien aufbauen und auch in alten Browsern noch funktionieren.
  • Nutzer sollten beim Surfen keine Code-Fehler sehen Im Gegensatz zu XML, wo jeder kleine Fehler im Code den Browser dazu veranlasst hätte, die Verarbeitung der Seite abzubrechen und eine Fehlermeldung zu werfen, wollten Opera und Mozilla eine Fehlerbehandlung, wo der Nutzer nichts von Fehlern mitbekommt.
  • Praktischer Nutzen Jede neue Funktion sollte durch einen Anwendungsfall aus der Praxis rechtfertigt werden.
  • Offener Prozess Die Entwicklung des Webs sollte weiterhin offen und öffentlich zugänglich sein. (Es hieß, die W3C würde alles hinter geschlossenen Türen beschließen und der Öffentlichkeit nur noch vollendete Tatsachen vorsetzen)

Anschließend wurde unter den Workshop-Teilnehmern eine Umfrage gemacht: Sollte die W3C HTML und CSS weiterentwickeln, statt komplexe, voll entwickelte Programmierschnittstellen zu erschaffen (also: statt XHTML 2.0)? Die Teilnehmer stimmten 11 zu 8 dagegen und sprachen sich somit für XHTML 2.0 aus.
Doch statt mit dieser Entscheidung konfrontiert aufzugeben, entschieden sich die HTML-Befürworter dazu weiterzumachen, und so öffnete am die Web Hypertext Application Technology Group ihre Pforten, die WHATWG, ein Zusammenschluss von Mozilla, Opera und Apple und anderen Interessensgruppen, mit einem Goolge-Mitarbeiter als Editor. Alle wichtigen Browserhersteller außer Microsoft waren entweder selbst oder in Form einzelner Mitarbeiter an der WHATWG beteiligt.

HTML5 entsteht

Die WHATWG war nun eine Konkurrenzgruppe zur W3C. Während die W3C idealistisch an die neuen Standards heranging, bestand die WHATWG aus Pragmatikern. Abwärtskompatibel zu sein, hatte für die WHATWG höchste Priorität, während das der W3C beinahe egal war.
Die WHATWG wurde schnell aktiv und begann, an verschiedenen Spezifikationen zu arbeiteten. Unter anderem “Parsing HTML”, “Web Forms 2.0″, was neue Kontrollelement-typen für HTML-Formulare definierte, und “Web Applications 1.0″, was wesentliche, neue Features beinhaltete, wie zum Beispiel ein “canvas”-Element, auf dem per JavaScript gezeichnet werden kann, und native Unterstützung für Audio und Video, ohne Zugriff auf Plugins.

Zweieinhalb Jahre lang ignorierten sich die W3C und die WHATWG weitestgehend. Beide arbeiteten für sich, doch wurde mit der Zeit deutlich, wer mehr Einfluss hatte. Die WHATWG konnte bereits erste Erfolge verzeichnen, als XHTML 2.0 noch immer in Entwurfform vor sich hin dümpelte, von keinem bedeutenden Browser implementiert.
Am hatte Tim Berners-Lee, der Erfinder des Webs und Gründer, sowie Vorsitzender des W3C, schließlich den entscheidenen Blog-Eintrag geschrieben: “Reinventing HTML” (HTML neu erfinden).

“Manche Dinge erscheinen aus der zeitlichen Distanz mehrerer Jahre klarer. Es ist erforderlich, HTML schrittweise weiterzuentwickeln. Der Versuch die Welt dazu zu bewegen, auf XML umzustellen, (…) hat nicht funktioniert. Die große HTML-schreibende Öffentlichkeit hat sich nicht bewegt, größtenteils weil sich die Browser nicht beschwerten. (…)

Der Plan ist, eine komplett neue HTML Arbeitsgruppe aufzustellen. (…)”
(übersetzt aus “Reinventing HTML”, Tim Berners-Lee)

Damit hatte die W3C die Reißleine gezogen. Eine der ersten Entscheidungen, die die neu aufgestellte HTML Arbeitsgruppe traf, war, die WHATWG-Spezifikation “Web Applications 1.0″ umzubenennen in “HTML5″. Seitdem arbeiten W3C und WHATWG eng zusammen.
wurde die Entwicklung von XHTML 2 eingestellt. Die sieben Jahre Arbeit daran fanden damit ihr erfolgloses Ende.

Weblinks:

2 Responses to “Die Entstehungsgeschichte von HTML5”

Leave a Response

Login with Facebook: