XHTML 1.0 ist
praktisch deckungsgleich mit HTML 4.01. Der wesentliche Unterschied ist, dass der eine Standard in XML, der andere in SGML definiert ist. Dieser Unterschied hat aber nahezu keine praktische Relevanz. XHTML 1.0 ist de facto in erster Linie eine Syntaxkonvention zum Erstellen von HTML 4.01-Dokumenten.
Abgesehen von einigen speziellen XML-Attributen und gewissen Unterschieden bei Self-Closing-Tags (<meta …> vs. <meta … />) sollte jedes XHTML 1.0-Dokument auch als HTML 4.01 validieren. Ob als Doctype eine Variante von XHTML 1.0 oder eine Variante von HTML 4.01 gewählt wird, sollte sich nicht auf das Rendering oder die Funktionalität auswirken.
Die eigentliche Idee hinter XHTML 1.0 bestand darin, HTML zu einem XML-Dialekt zu machen und infolgedessen Webseiten als XML-Dokumente auszuliefern.
Dieses Anliegen ist grandios gescheitert. Sozusagen jedes XHTML-Dokument wird mit dem MIME-Type
text/html an den Client ausgeliefert, was die Dokumente technisch gesehen zu HTML-Dokumenten macht. Echte XML-Dokumente müssten mit einem MIME-Type wie
application/xhtml+xml ausgeliefert werden.
Der Grund dafür ist, dass ein XML-Parser
per Definition beim kleinsten Fehler den Rendervorgang abbricht und eine Fehlermeldung anzeigt statt Inhalte der Seite. 99 % aller Internetseiten sind aber nicht valide und würden demnach bei Auslieferung als XML überhaupt nicht angezeigt. Hinzu kommt, dass der Internet Explorer bis einschließlich Version 8 überhaupt nichts mit dem XML-MIME-Type anzufangen wusste und entsprechende Dokumente zum Download angeboten hat, statt sie zu rendern.
Zusammenfassend: Weder Web-Autoren noch Client-Entwickler noch Entwickler von serverseitiger Software haben es jemals verstanden beziehungsweise die Notwendigkeit gesehen, fehlerfrei XML-kompatibel zu arbeiten. Genau deshalb ist schließlich der Versuch, einen Allgemeingültigkeitsanspruch von XML als Definitionsformat für HTML-Dokumente durchzusetzen, aufgegeben worden. Er war und ist schlicht und ergreifend nicht praktikabel, da er für die überwältigende Mehrheit aller am Web beteiligter Stellen eine zu große Bürde darstellte und zudem keine echten Vorteile brachte.
Ungefähr hier beginnt die Geschichte von HTML5. HTML5 vereint zuallererst die beiden Gleise HTML und XHTML in einem einzigen Standard. Kurze Rekapitulation: XHTML 1.0 ist wenig mehr als eine strengere Syntaxkonvention zum Verfassen von HTML 4.01-Dokumenten. In HTML5 kann Code nach XML-Regeln geschrieben werden, muss aber nicht. Das steht jedem Autor völlig frei. Der Doctype bleibt derselbe. Zudem ist HTML5 weitestgehend abwärtskompatibel. Zumindest die Strict-Varianten von HTML 4.01 und XHTML 1.0 sollten zum allergrößten Teil valides HTML5 darstellen. HTML5 implementiert den Unterschied zwischen HTML und XML zudem so, wie er ursprünglich gedacht war:
text/html für HTML-Dokumente,
application/xhtml+xml für X(HT)ML-Dokumente.
Gegenwärtig gibt es für den allergrößten Teil der Web-Entwickler nicht den geringsten Grund, auf den HTML5-Doctype zu verzichten. Der HTML5-Doctype versetzt alle relevanten Browser in den Standards-Mode. Das wird sich auch in Zukunft nicht ändern.