Hi!
Wenn ich folgenden Quelltext mit dem W3C-Validator überprüfe, erhalte ich die Meldung, dass meine <br /> Elemente von einem Weiteren Element umschlossen werden müssen (document type does not allow element "br" here; [...]
ja, da hat er wohl Recht.
Jein. Kommt drauf an.
Wenn ich die beiden br-Tags mit einem einfachen div umschließe gibt es keinen Fehler mehr. Woran liegt das bzw. besser gesagt warum muss das so sein?
In XHTML dürfen body und form keinen inline-Inhalt als direktes Kindelement haben (also auch keinen reinen Textknoten), sondern nur Blockelemente.
Der Doctype ist entscheidend, nicht die HTML-Version. In Strict gelten ein paar strengere Regeln, in Transitional nicht. HTML 4.01 und XHTML 1.0 sind in der Hinsicht gleich. In Transitional darf man problemlos PCDATA im body- und auch im form-Element unterbringen.
Reine Textknoten wären allerdings auch solche, die nur Whitespace enthalten, und die dürfen sehr wohl auch im body und form in allen Varianten vorkommen. Entscheidend ist die Definition von http://de.selfhtml.org/html/referenz/elemente.htm#pcdata@title=PCDATA. Das darf bei Strict nur in bestimmten Elementen vorkommen.
(Der Begriff Textknoten bezieht sich übrigens auf die Darstellung als DOM, was eine spezielle Form der Repräsentation des HTML-Dokuments im Speicher ist. In einem HTML-Dokument allgemein spricht man noch nicht von Knoten.)
Lo!