Du wirst sicher recht haben, aber das ist dann wohl ein Fehler des Parsers. Denn unabhängig davon welchen MIME-Type ich angebe sollte der Dokumententyp wohl berücksichtigt werden, wenn er denn schonmal angegeben ist. Und dieser Dokumententyp sagt nunmal laut Spec "da ist PCDATA drinne".
Browser kümmern sich nicht um DTDs und haben das nie getan. Maßgeblich ist der MIME-Type. Sie parsen alles, was ihnen als text/html unterkommt, identisch.
Ausführliche Erklärung: Ein Podcast über die Geschichte von HTML, insb. die SGML-Ära.
Ja ich weiß, ich argumentiere mal wieder Realitätsfern, aber HTML5 und wenn ich mich recht erinnere auch XHTML2 haben beide Bedeutungs-Änderungen an bestehenden Elementen durchgeführt. Diese haben idR keine Auswirkungen auf die Darstellung, aber Parser sollten das berücksichtigen.
Daher definiert HTML5 ja auch gleichzeitig den Parser mit, damit jegliche Inhalte korrekt verarbeitet werden können.
Genauso wie Parser Elemente ignorieren sollten, welche im angegebeben Typ nicht existieren (ob das geschieht weiß ich nicht, müsste man mal ausprobieren und z.B. <footer> in HTML3 oder 4 -Dokumenten verwenden oder so).
Das tun die derzeitigen Browser aber nicht, außer IE < 9.
Egal in welchem DOCTYPE (es muss nicht HTML5 sein), sie legen für unbekannte Elemente DOM-Knoten an.
<footer> in einem HTML-3-Dokument ist daher genauso nutzbar wie in einem HTML5-Dokument. Der Grund ist wie gesagt, dass der Parser überhaupt nicht nach Dokumenttyp unterscheidet. Für den Parser (auch für den HTML5-Parser) sind alle text/html-Ressourcen gleich.
Immerhin hat mich noch kein HTML-Parser oder Validator angemeckert wenn ich XML-Schreibweisen benutzt habe also att="att" oder />
att="att" ist keine Schreibweise, die XML vorbehalten ist, sondern eine gültige SGML-Schreibweise, damit in HTML 4 erlaubt und daher von den Browsern unterstützt.
<elem/> hat in SGML eine andere Bedeutung - es ist ein Null End-Tag (NET) enabling start-tag, siehe etwa HTML-4-Validierung. Dies wird ein Validator durchaus ankreiden, wenn es im <head> verwendet wird. Man sollte nicht /> in HTML-4-Dokumenten verwenden.
Den Browsern ist das egal, sie sind da fehlertolerant. Sie werden kein SGML-Parsing an. Daher ist es überhaupt möglich, XHTML-Dokumente als text/html auszuliefern. Praktisch funktioniert es also im Browser.
Mathias