Rolf B: HTML5-Test: teste dein Wissen

Beitrag lesen

Hallo Gunnar,

das ist interessanterweise eine Sache des Standpunktes. Nicht, wenn man nur die HTML 5 Spec anschaut - wenn es nur nach der ginge, hättest Du recht. Laut WhatWG sind ein paar Zeichenfolgen in Kommentaren verboten, aber -- steht nicht auf der Verbotsliste.

In der HTML 4 Spec stand noch drin, dass man keine Ketten von Minuszeichen in Kommentaren hinschreiben sollte. Man sollte das vermeiden. So richtig als Error steht's da aber auch nicht drin.

Ich habe das nämlich neulich schonmal in anderem Zusammenhang nachgelesen. HTML ist eine Inkarnation von SGML und dort ist das <! und > der Rahmen um die Kommentardeklaration und das -- der Kommentardelimiter. In SGML ist sowas möglich:

<!-- Kommentar Zeile 1 --
  -- Kommentar Zeile 1 --
  -- Kommentar Zeile 1 -->

Das sind in SGML 3 (in Worten: DREI) Kommentare. Es ist deshalb auch eigentlich nicht zulässig, sowas wie

<!------------------
  Das ist mein Kommentar
 ------------------>

zu schreiben. Dieser konkrete Fall ist allerdings korrekt, weil die Bindestrichminusse in 2+4n facher Form vorkommen. Demnach sind das eigentlich 9 Kommentare. 8 davon leer.

Wenn die Brauser denn SGML treiben würden. Aber sie tun's nicht. Sie suchen nach <!-- und enden mit -->.

Laut SGML Spec müsste dieses HTML Hallo Welt anzeigen. Weil dort Spaces zwischen -- und > erlaubt sind.

<!-- huhu -- >
<p>
Hallo Welt
</p>

Aber Chrome und Firefox zeigen nichts an. Weil sie das Kommentarende nicht erkennen. Weil in der HTML 5 Spec explizit steht: Kommentar beginnt mit <!-- und endet mit -->. Und damit im Widerspruch zur SGML Spec steht.

Der W3 Validator meldet das als Error: End of file in comment.

Zu <!-- -- --> schreibt er nur eine Warning:

Warning: The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.

Also - ich denke auch, dass das Quiz falsch liegt. Es ist kein Error. Laut dem verlinkten github issue war es mal einer. Vor 2006. In Firefox. Wenn es ein parse error wäre, sollte das wohl in der Spec entsprechend zu finden sein...

Rolf

--
sumpsi - posui - obstruxi