Websiteentwicklung: XHTML: Geschichte
HTML, also HyperText Markup Language, wurde am CERN zusammen mit dem Protokoll HTTP (HyperText Transfer Protocol) von Tim Berners-Lee entwickelt. Entstehungsdatum ist 1989-03-13. 1994 wurde das World Wide Web Consortium (W3C) gegründet, welches sich um dieses Format und zahlreiche weitere Formate, die in den folgenden Jahren entstanden sind, kümmert.
Der eigentliche Sinn von HTML ist nicht die graphische Gestaltung von Dokumenten, sondern die Zuordnung semantischer Funktionen zu einzelnen Dokumentteilen. CERN als Entstehungsort war insofern naheliegend, als HTML und HTTP ursprünglich entwickelt wurden, um große Mengen wissenschaftlicher Daten oder Informationen anderen Forschern effektiv zugänglich zu machen. Dazu sollte auf elektronische Dokumente so verwiesen werden können, dass ein Zugriff auf diese Dokumente sogleich möglich ist (hyperlinks). Der Text in einer HTML-Datei sollte aber auch eine formal eindeutige Struktur aufweisen, um Gedankengänge klar und eindeutig interpretierbar notieren zu können. So gibt es in HTML zum Beispiel Elemente zur Auszeichnung von Absätzen, Überschriften unterschiedlicher Priorität und so weiter. Weil die eigentlichen wissenschaftlichen Artikel allerdings mit LaTex geschrieben wurden (und heute auch noch werden), gab es keine ausgefeilten Möglichkeiten, zum Beispiel mathematische Strukturen effektiv zu notieren. Aufgrund des Schwerpunktes Prosa-Texte, die auf andere Dokumente mit Daten und Informationen verweisen, war und ist die semantische Ausstattung zur Auszeichnung der meisten Textgenres allerdings eher minimalistisch bis lückenhaft.
Anfangs gab es in HTML noch keine gestalterischen Möglichkeiten. Allerdings hatte sich im Laufe der Jahre auch der Kreis der Autoren, die HTML verwenden wollen, dramatisch erweitert. Da die Autoren auch oft nicht mehr aus dem Bereich der Wissenschaft und Forschung kamen, hatten diese auch ganz andere Ideen, wozu man HTML und HTTP sonst noch verwenden könnte. So hat sich im Laufe der Jahre auch der Kreis der Leser von HTML-Dokumenten dramatisch erweitert. Die neuen Anwendungen machten dann auch weitere Möglichkeiten erforderlich, wie man bestimmte Textstrukturen auszeichnen kann, die anfangs nicht als wichtig empfunden wurden. So wurde HTML erweitert.
Ein einschneidendes Ereignis in der Historie von HTML ergab sich durch Interventionen von Anbietern von Darstellungsprogrammen bei der Version 3.0. Diese wurde daraufhin verworfen und das Konzept mit der Version HTML 3.2 (1997) verwässert und es hielten auch dekorative Elemente Einzug in HTML. Da eine Sprache zur Festlegung des Layouts von HTML-Dokumenten zum Zeitpunkt der Entwicklung von HTML 3.2 noch nicht existierte, wurden teils inhaltlich eigentlich unnötige Strukturen verwendet und dazu auch noch für inhaltliche Zwecke gedachte Elemente, insbesondere Tabellen, für das Layout missbraucht. So ging die ursprünglich geplante Trennung von Inhalt und Dekoration immer mehr verloren.
Mit HTML 4.0 (1997/1998) änderte sich das jedoch wieder. In dieser Version wurden zahlreiche der in HTML 3.2 eingeführten Element als mißbilligt oder veraltet gekennzeichnet. Für das Layout hatte das W3C inzwischen Cascading Style Sheets (CSS, Kaskadierende Stilvorlagen) standardisiert (1996). Mit dieser Sprache kann global festgelegt werden, wie Überschriften und andere Strukturen formatiert werden sollen, was die Gestaltung und Dekoration von Dokumenten wesentlich einfacher macht. So ist es mit CSS kein Problem, für Projekte mit vielen Seiten ein konsistentes Layout zu erstellen, da Änderungen in der Stilvorlage automatisch in allen Seiten übernommen werden können. Um die Akzeptanz des neuen HTML-Version zu erhöhen, wurden drei Varianten standardisiert: Strict, Transitional und Frameset. Strict enthält ausschließlich semantische Elemente und verlangt auch eine inhaltlich sinnvollere Strukturierung der Dokumente, während die Transitional-Variante weiterhin alle aus HTML 3.2 bekannten Elemente zur optischen Gestaltung enthält und eigentlich nur für eine kurze Übergangszeit von 3.2 zu 4.01 gedacht war. Die dritte Variante dient der Definition einer Rahmentechnik (englisch: frames), dies ist eine Struktur zur Unterteilung des Darstellungsbereiches zur gleichseitigen Darstellung mehrerer voneinander unabhängiger Dokumente. Eine leicht korrigierte Version wurde 1999 mit HTML 4.01 verfügbar.
Bis zu diesem Zeitpunkt wurde HTML mittels SGML definiert. 1999 entschied sich das W3C, HTML mit einer SGML-Untermenge namens XML neu zu formulieren. Zu dem Zeitpunkt hatte man bereits aus Strukturschwächen von HTML und älteren Sprachen wie LaTex lernen können und war so in der Lage, dieser Sprache eine klare und einfache Struktur zu geben, die nur auf relativ wenigen Strukturmerkmalen beruht, was eine Interpretation von XML-Dokumenten mit Programmen gegenüber anderen Formaten drastisch vereinfacht. XML-Formate sind generell erweiterbar und miteinander in einem Dokument mischbar. Das Ergebnis war XHTML 1.0 (2000), welches sich hinsichtlich der Semantik und der Bedeutung von Elementen von HTML 4.01 nur in wenigen Details unterscheidet; es existieren nach wie vor drei Versionen. Allerdings ist XHTML 1.0 im vollem Umfange im Sinne von XML erweiterbar und mit anderen XML-Formaten mischbar, was mit HTML nicht möglich ist. Mit XHTML 1.0 wurde auch die Modularisierung von XHTML eingeführt. Das heißt, dass für bestimmte Anwendungsbereiche wie etwa nur eingeschränkt leistungsfähige Mobiltelephone unter Umständen nicht den gesamten XHTML-Standard, sondern bloß Teile davon implementiert werden braucht. Das ist zum Beispiel bei der Entwicklung von Programmen für Kleinstgeräte von Vorteil, da in diesen nur wenig Rechenleistung zur Verfügung steht. Der Ansatz setzt allerdings voraus, dass Autoren dann auch nur diesen Teilbereich in ihren Dokumenten verwenden. Für solche Geräte wurden entsprechende spezielle Varianten von XHTML und auch anderen XML-Formaten wie etwa SVG spezifiziert.
Ein weiterer Unterschied ist, dass für XML erstmals eine definierte Fehlerbehandlung vorgegeben ist, welche dazu führt, dass bei Syntaxfehlern Fehlermeldungen statt Inhalt ausgegeben werden, um einem Autor zu helfen, Fehler zu finden und zu beseitigen. Die gängigen Darstellungsprogramme für HTML indesssen haben HTML nie komplett implementiert, dafür aber jeweils eigene Fehlerbehandlungen und Behandlung von Implementierungslücken entwickelt, die meist dazu führen, dass ein Autor Fehler im Dokument nicht anhand der Anzeige erkennen kann, sie demzufolge also oft nicht korrigiert. Die fehlerhafte Interpretation bei Implementierungslücken hat hingegen dazu geführt, dass Teile von HTML auch von Autoren falsch verwendet wurden. Diese Probleme haben auch dazu geführt, dass die meisten veröffentlichten HTML-Dokumente fehlerhaft sind und trotzdem irgendwie von Darstellungsprogrammen dargestellt werden. Während also HTML-Darstellungsprogramme Fehler zu vertuschen und zu verbergen versuchen, und nach eigenen, privaten Regeln eine Darstellung der fehlerhaften Dokumente erzeugen, wird ein XML-fähiges Darstellungsprogramm bei einem Syntaxfehler eine Fehlermeldung ausgeben, die es dem Autor erleichtert, den Fehler zu beseitigen, um zu einer einheitlichen, definierten Interpretation zu gelangen, bevor das Dokument veröffentlicht wird.
Mit XHTML 1.1 (2001) wurden einige in XHTML 1.0 bereits als veraltet gekennzeichnete Konstruktionen gestrichen. Etwa ist dort statt des lang-Attributes immer das generische xml:lang zu verwenden, in 'a'- und 'map'-Elementen ist anstelle von name nur noch id zu verwenden. Außerdem wurde das RUBY-Modul zum XHTML-Standard hinzugefügt. Dabei handelt es sich um eine besonders im asiatischen Raum gebräuchliche Notation von Erläuterungen oder Varianten entlang des Haupttextes.
Während XHTML 1.0 noch notfalls für die Übergangszeit an alte Darstellungsprogramme, die kein XHTML beherrschen, als HTML ausgeliefert werden können sollte (dazu gibt es spezielle heuristische Kompatibilitätsregeln als nicht normativer Abschnitt in XHTML 1.0), sollte XHTML 1.1 nicht mehr als HTML (Inhaltstyp text/html) ausgeliefert werden. Dabei besteht zwischen 'sollte' und 'darf nicht' der feine Unterschied, dass Autoren es dennoch tun dürfen, aber nicht grundlos tun sollten - ein plausibler Grund ist etwa, dass teils immer noch alte Darstellungsprogramme verwendet werden, die XHTML nicht interpretieren können. Da für XHTML 1.1 keine Kompatibilität mit gewöhnlichen HTML-Darstellungsprogrammen vorgesehen ist, sollen solche Dokumente gemäß einer W3C-Mitteilung eigentlich nur als application/xhtml+xml ausgeliefert werden - was eigentlich auch der gedachte Normalzustand für XHTML 1.0 ist, sonst sollte eben HTML statt XHTML verwendet werden, wenn man die Dokumente immer als text/html ausliefert.
Mit XHTML+RDFa 1.0 wurden 2008 weitere neue Attribute eingeführt, die es ermöglichen, die Semantik genauer und maschinenlesbar zu notieren. Damit wendet sich XHTML wieder mehr dem eigentlich geplanten semantischen Schwerpunkt zu. Zwar kann jegliche XHTML-Version als XML auch mit anderen XML-Formaten wie RDF kombiniert werden, die Struktur von XHTML und die beschränkten Möglichkeiten von alten Darstellungsprogrammen können dabei aber zu Problemen führen, die mit der Attribut-Variante RDFa vermieden werden können. XHTML verfügt ja nur über wenige Elemente, die den Inhalt nicht sehr präzise auszeichnen. Mittels RDFa ist es durch wenige zusätzliche Attribute möglich, die Bedeutung präziser anzugeben, indem zu diesem Zwecke auf externe Definitionen verwiesen wird. 2012 wurde XHTML+RDFa 1.1 herausgegeben, welches XHTML+RDFa 1.0 leicht überarbeitet und um ein paar Attribute ergänzt, die die Arbeit mit und das Verständnis von RDFa für einige Autoren erleichtern sollen. 2013 wurde die zweite Auflage von XHTML+RDFa 1.1 herausgegeben.
Eine bereits über Jahre vorbereitete Version XHTML 2 sollte eigentlich einige Strukturprobleme von XHTML 1 mit komplett neuen Ansätzen beheben. Dazu gab es Arbeitsentwürfe, welche allerdings nahezu komplett inkompatibel zu HTML und XHTML waren. Insbesondere die Anbieter gängiger Darstellungsprogramme vermochte dies jedoch nicht zu begeistern. Es ist auch immer wieder das Gerücht aufgekommen, diese Anbieter seien durch die Herausforderungen der Erweiterbarkeit von XML und XHTML durch Strukturen aus anderen Namensräumen ohnehin überfordert - oder diese hätten das zumindest von den meisten Autoren angenommen. Statt solch einen konsequenten und sauberen Neuanfang zu wagen, wurde stattdessen also mit HTML 5 begonnen (2004) und XHTML 2 aufgegeben (2009). Die Entwicklung ähnelt also etwas der Situation um 1997, als Version 3.0 zugunsten von 3.2 auf Wunsch der Anbieter von Darstellungsprogrammen verworfen wurde.
Zu HTML 5 wurde erstmals 2008 ein offizieller Arbeitsentwurf veröffentlicht. HTML 5 ist seit 2014-10-28 eine Empfehlung des W3C. Zeitgleich zu den Arbeitsentwürfen zu HTML 5 gibt es seit Ende 2013 bereits welche für HTML 5.1. Neben einigen neuen Elementes definiert HTML 5.x erstmals einheitlich bis ins Detail, wie Darstellungsprogramme mit fehlerhaften HTML-Dokumenten umgehen sollen. Zu diesem Zwecke wendet es sich vollständig von SGML und XML ab und definiert eine komplett 'eigenständige Sprache' oder eher einen Pseudoalgorithmus zur Interpretation von 'Markierungssuppe'. HTML 5 hat daher mit bisherigen Sprachvarianten von (X)HTML formal nichts gemeinsam. Es orientiert sich eher an dem, was an Altlasten, unvollständigen und fehlerhaften Implementierungen von HTML vorhanden ist. Der Entwurf orientiert sich daher meist mit relativ komplexen Regeln an dem Verhalten von Programmversionen von diesem oder jenem gängigen Darstellungsprogramm, welche etwa im Zeitraum 2002 bis 2010 häufig verwendet wurden. Somit ist bereits im Stadium des Arbeitsentwurfes HTML 5 eine sehr komplexe Sprachvariante geworden, die ähnlich wie HTML 3.2 mehr auf die Wünsche und Belange der Anbieter von Darstellungsprogrammen eingeht als auf Verständlichkeit und inhaltliche oder semantische Relevanz für Autoren.
Zu HTML 5 gibt es auch eine XHTML-Variante, für welche die übliche Fehlerbehandlung von XML gilt, also als wesentlich einfacher für Autoren angesehen werden kann und von der viel einfacheren Struktur von XML profitiert. Da die Empfehlung zu HTML 5 allerdings vorrangig die komplexen Regeln für HTML-Markierungssuppe behandelt, gibt es bislang keinen übersichtlicheren Entwurf nur für die XML/XHTML-Variante. Sowohl bei der Markierungssuppen-Variante als auch bei der XML-Variante hat HTML 5 teils deutlich andere Verschachtelungsregeln als HTML 4 oder XHTML 1.x, auch von daher sind diese beiden neuen Sprachversionen nur bedingt kompatibel mit den älteren Sprachversionen. Es gibt allerdings meist eine kompatible Schnittmenge der XML-Variante von HTML 5 mit XHTML 1.1, die einen guten Ansatz für gut strukturierten Inhalt und im Sinne von HTML 5 korrekten Dokumenten bietet. Da HTML 5 selbst allerdings auch in der finalen Empfehlung keine Versionskennung aufweist, ist es nicht möglich, Dokumente formal und normativ als HTML-5-Dokumente zu kennzeichnen. Von daher gibt es per Definition eigentlich keine HTML-5-Dokumente, allenfalls Dokumente, welche der Empfehlung folgen, ohne dies allerdings kenntlich zu machen, weshalb solche Dokumente mangels Kennzeichnung eigentlich auch keine definierte Interpretation vorgeben oder nahelegen.
Wie bereits bei XHTML 2 zeigt die sehr lange Entwicklungszeit von HTML 5 bereits die zahlreichen Konflikte und Probleme, die Auffächerung der verscheidenen Meinungen bei der Entwicklung einer neuen Version von (X)HTML. Es bleibt fraglich, ob die wirklich eine überwiegende Mehrheit von Beteiligten inhaltlich überzeugen kann, deren Interessen und Motivationen ebenso unterschiedlich sind wie der Grad des Verständnisses der Strukturen von Auszeichnungssprachen selbst - oder auch die Ansichten darüber, was für Autoren von Dokumenten einfach zu verstehen und umzusetzen ist und was eher nicht.
Die formale Undefiniertheit der Bedeutung von Dokumenten, die sich nach HTML 5 richten, ist hingegen ein massives Problem für Autoren, die gerne die Neuerungen dieser Sprachversion verwenden möchten, gleichzeitig aber auch Dokumente mit einer definierten Auszeichnung veröffentlichen wollen oder müssen. In der Praxis ist das für viele Autoren indessen nicht so wichtig, sofern sie ohnehin nur für den Tagesbedarf schreiben, eine Archivierung über Jahre, Jahrzehnte oder Jahrhunderte also nicht erwünscht ist, bei der eine definierte Bedeutung relevanter ist als bei belangloser Unterhaltung für das Tagespublikum.