Hallo,
»HTML5 oder XHTML(died 2009)« ist keine diskutierbare Frage. Diese Alternative gibt es nicht und XHTML ist auch nicht in 2009 gestorben, sondern XHTML 2 wird nicht mehr weiterentwickelt. Das ist etwas ganz anderes, wie man auch sieht, wenn man sich anschaut, was diese verschiedenen Bezeichnungen bedeuten:
Was ist HTML5?
HTML5 ist im engeren Sinne eine Spezifikation, die HTML 4.01, W3C DOM HTML sowie einige herstellerspezifische Spezifikationen wie Netscape Client-Side JavaScript ablösen will. Neben der Dokumentation von bereits verbreiteten TEchniken werden Änderungen und Erweiterungen am HTML-Vokabular vorgenommen.
Am folgeschwersten ist, dass das Pferd von einer anderen Seite aufgezäumt wird (ob nun von der richtigen oder falschen, darüber streiten sich die Experten): HTML5 ist keine bloße SGML- oder XML-Anwendung mehr, sondern wird als abstraktes Objektmodell (DOM) spezifiziert. Dessen Regeln sind nicht normativ in SGML-DTD oder XML-Schemasprachen, sondern in Prosasprache festgelegt.
Für das DOM werden zwei Serialisierungen (was wir als HTML-Code bzw. HTML-Datei bezeichnen) angeboten sowie die Regeln definiert, wie man von Serialisierung zu DOM und zurück kommt:
- Die eine Serialisierung ähnelt der SGML-Syntax von HTML 4.01. Allerdings erlaubt sie all das, was derzeit im Web ohnehin breit verwendet wird bzw. definiert Fehlerbehandlung.
- Die andere Serialisierung ist eine reine XML-Anwendung. Das nennt sich XHTML5 und ist im Gegensatz zu XHTML 1.0 nur für XML-fähige Browser gedacht.
- Es ist möglich, ein HTML5-Dokument so zu schreiben, dass es sowohl von HTML5-Parsern als auch von XML-Parsern verarbeitet werden kann. Ein Widerspruch zwischen HTML5 und XML besteht also nicht.
HTML5 im weiteren Sinne umfasst JavaScript-APIs, die für Webanwendungen interessant sind, native SVG-Unterstützung und -Einbettbarkeit sowie Metadaten-Einbettung mit Microdata oder RDFa.
HTML5 kann man heute schon anwenden. Die Browser parsen HTML5-Markup derzeit genauso wie HTML 4.01 und »HTML-kompatibles« XHTML 1.0. Sie verwenden noch nicht einen HTML5-konformen Parser, aber unterstützen HTML5-Elemente teilweise schon. Viele andere Teile von HTML5, z.B.DOM-APIs, sind ebenfalls schon nutzbar. Sie spezifizieren größtenteils nur, was ohnehin schon De-facto-Standard ist.
Was ist XHTML 1.0?
XHTML 1.x ist nichts anderes als eine Möglichkeit, HTML 4.01 in XML-Syntax zu schreiben. Und somit von den Möglichkeiten und (absichtlichen) Einschränkungen der XML-Plattform Gebrauch zu machen. XHTML ist in seiner »HTML-kompatiblen« Form, d.h. mit dem MIME-Typ »text/html«, weit verbreitet und etabliert. Der Vorteil gegenüber HTML 4.01 ist die Verarbeitbarkeit als XML z.B. durch Validatoren, über XSL-Transformation, DOM-Zugriff über XML-Parser, Einbettung von Fremd-Markup auf Autoren- bzw. Serverseite usw.
Was ist XHTML 2.0?
XHTML 2 ist eine konzeptionell komplett neue, reine XML-Sprache, die nicht direkt auf dem HTML-4.01-Vokabular aufsetzt und damit auch nicht ohne weiteres zu XHTML 1.x kompatibel ist. XHTML 2 ist nie aus den Startlöchern gekommen, es gibt keine Implementierungen und letztes Jahr hat das W3C die Unterstützung von XHTML 2 eingestellt. Lediglich einzelne Techniken der geplanten XHTML-2-Architektur wie XForms und RDFa sind praktisch zum Einsatz gekommen. Viele Ideen von XHTML 2 sind auf die eine oder andere Weise in HTML5 eingeflossen.
Okay, was ist nun deine Frage? Was man verwenden soll? In der Praxis im Browser macht es derzeit keinen großen Unterschied, ob du HTML 4.01, HTML-kompatibles XHTML 1.0 oder HTML5 verwendest. (Und dass man XHTML 2 nicht verwenden kann, liegt auf der Hand, also steht es nicht zur Diskussion.)
HTML5 bietet dir ein erweitertes Vokabular, allerdings wird dieses bisher nur teilweise von einigen Browsern unterstützt (kommt ganz auf das jeweilige Element bzw. Attribut an). In Internet Explorer sind beispielsweise JavaScript-Tricks nötig, damit die neuen Strukturelemente überhaupt CSS-formatierbar sind - was die Anwendung wenig robust macht. Ein weiterer Punkt ist, dass die Autorenwerkzeuge für HTML5 noch nicht so ausgereift sind (Editoren, Validatoren, Parsing-Bibliotheken).
Literatur:
http://www.webkrauts.de/category/html5-einfuehrung/
http://molily.de/weblog/was-ist-html5
http://molily.de/weblog/html5-specs
http://molily.de/weblog/xhtml-ist-out
Mathias