Christian Seiler: Ist "<element />" eigentlich richtig valides HTML 4.01?

Beitrag lesen

Hallo Alex,

Sind Formulierungen wie z.B. "<br />" eigentlich auch valides HTML 4.01?

Jain.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<title>Hallo</title>
<hr>

ist valide,

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<title>Hallo</title>
<hr />

nicht,

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<title>Hallo</title>
<p>
<br />
</p>

dagegen schon.

Allerdings müsste das dritte Beispiel in einem vollkommen HTML konformen Browser (ich kenne keinen ;-)) wie folgt interpretiert werden:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<title>Hallo</title>
<p>
<br>>
</p>

Deswegen ist auch das zweite Beispiel invalide, da innerhalb von <body> in HTML 4.01 kein Textinhalt vorkommen darf. Das ganze nennt sich tag minimalization.

<p/Hallo/

sollte laut HTML 4.01, das ja auf SGML aufbaut, wie <p>Hallo</p> interpretiert werden.

Ich kenne jedoch keinen Browser, der das richtig interpretiert. Deswegen ist es auch möglich, XHTML 1.0 als text/html auszuliefern, denn die Browser können dieses SGML-Feature (glücklicherweise) nicht.

Aber ist es laut HTML-4.01-Definition erlaubt, alleinstehende Elemente ohne End-Tag so zu schreiben?

Bei <br>, <hr>, <meta>, etc. _darfst_ Du in HTML 4.01 keinen Endtag schreiben.

Viele Grüße,
Christian