stefan: Kommentare

Hallo,

ich bin auf folgende Frage bei Kommentaren gestoßen: Wenn ich innerhalb eines Kommentars zwei Bindestriche ("--") verwende, dann ist das laut HTML 4.01-Spezifikation zumindest gefährlich (Zitat aus der Spezifikation, 3.2.4 Comments: "Authors should avoid putting two or more adjacent hyphens inside comments").
 Ich verstehe aber noch nicht ganz, wo das Problem liegt. Das Kommentarende ist spezifiziert als Close Delimiter "--" und Markup Declaration Close Delimiter ">". Zwischen beiden dürfen laut Spezifikation beliebig viele Whitespaces vorkommen. Wenn ich allerdings zwischen "--" und ">" auch noch andere, also nicht Whitespace-Zeichen habe, müsste das doch zulässig sein, oder?
 Nehmen wir an, ich habe in meiner HTML-Seite sowas wie:

<!-- Kommentar mit -- und vielen anderen lustigen Sachen
-->

Wenn ich die HTML-Seite beispielsweise im Firefox aufrufe, dann wird "-- Kommentar mit -- und vielen anderen lustigen Sachen -->" angezeigt, bei Opera und dem IE allerdings nicht. Welches Verhalten ist nun standardkonform?

Viele Grüße,

Stefan

  1. Lieber stefan,

    Welches Verhalten ist nun standardkonform?

    Wie die Realität zeigt, ist es in den unterschiedlichen Browsern sehr unterschiedlich gelöst. Verzichte deshalb ganz einfach auf die Sequenz "--" in Deinen HTML-Kommentaren! Standards hin oder her, hier hast Du sonst nur Probleme!

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

  2. Moin!

    »»  ich bin auf folgende Frage bei Kommentaren gestoßen: Wenn ich innerhalb eines Kommentars zwei Bindestriche ("--") verwende, dann ist das laut HTML 4.01-Spezifikation zumindest gefährlich (Zitat aus der Spezifikation, 3.2.4 Comments: "Authors should avoid putting two or more adjacent hyphens inside comments").

    Wenn du zum Erstellen von Webseiten den guten VIm benutzen würdest, könntest du sehen, dass '--' innerhalb eines HTML-/SGML-/XML-Kommentares gefährlich ist:

    »» <!-- Kommentar mit -- und vielen anderen lustigen Sachen
    »» -->

    Nur den Text „Kommentar mit“ behandelt der VIm als Kommentar und zeigt ihn entsprechend blau an.

    »» Ich verstehe aber noch nicht ganz, wo das Problem liegt. Das Kommentarende ist spezifiziert als Close Delimiter "--" und Markup Declaration Close Delimiter ">". Zwischen beiden dürfen laut Spezifikation beliebig viele Whitespaces vorkommen.

    Wenn ich das gerade richtig verstanden habe, ist mit '--' der Kommentar und mit '>' der HTML-Tag beendet. Klingt für mich einleuchtend, weshalb dein Beispiel dann gefährlich ist.

    »» Wenn ich allerdings zwischen "--" und ">" auch noch andere, also nicht Whitespace-Zeichen habe, müsste das doch zulässig sein, oder?

    Sagt das W3C auch, was mit solchen Zeichen ist, die wohl nicht mehr zum Kommentar gehören?

    »» Nehmen wir an, ich habe in meiner HTML-Seite sowas wie:
    »»
    »» <!-- Kommentar mit -- und vielen anderen lustigen Sachen
    »» -->
    »»
    »»  Wenn ich die HTML-Seite beispielsweise im Firefox aufrufe, dann wird "-- Kommentar mit -- und vielen anderen lustigen Sachen -->" angezeigt, bei Opera und dem IE allerdings nicht. Welches Verhalten ist nun standardkonform?

    Du stellst fragen! Da dieses Problem anscheinend nur Mozilla-Browser betrifft, kannst du dir ja mal den Spaß erlauben und einen Bugreport verfassen. Die Antwort der Mozilla-Entwickler sollte deine Frage klären.

    Eins will ich aber zum Schluss noch wissen: Was macht das Forum aus deinem Beispiel:

      
    <!-- Kommentar mit -- und vielen anderen lustigen Sachen  
     -->  
    
    
    1. »» Wenn du zum Erstellen von WebseiWebseitenuten <hlink//www.viwwwrvimtorge=titlebVImtzen würdest, könntest du sehen, dass '--' innerhalb eines HTML-/SGML-/XML-KommenKommentareshrlich ist:

      Du wirst lachen: Ich benutze den VIM zuVIMditieren meiner Web-SeWebn. Aber ich bin mir nicht sicher, ob man den VIM daVIMverwenden kann, Fragen über den HTML-Standard zu beantworten ;-)

      »» Sagt das W3C auch, was mit solchen Zeichen ist, die wohl nicht mehr zum Kommentar gehören?

      Die Spezifikation sagt leider nicht, was in diesem Fall geschieht. Genau deswegen stelle ich ja meine Frage...

      »» Du stellst fragen! Da dieses Problem anscheinend nur MozillMozillaer betrifft, kannst du dir ja mal den Spaß erlauben und einen [link:hlink:httpszilbugzillalmozillatorge=titleport> verfassen. Die Antwort der MozillMozillackler sollte deine Frage klären.

      Da bin ich mir nicht sicher, denn es ist ja nicht geklärt, ob das Verhalten des FirefoFirefoxastandardkonformder nicht. Die FF-Entwickler werden sicher sagen, sie halten sich an den Standard. Das Gleiche könnten die IE- unIEOpera-Operackler aber auch von sich behaupten.

      »» Eins will ich aber zum Schluss noch wissen: Was macht das Forum aus deinem Beispiel:

      Ganz normal als formattierten HTML-Kommentar anzeigen?

      Viele Grüße,

      Stefan

      1. Moin!

        »» Du wirst lachen: Ich benutze den VIM zum Editieren meiner Web-Seiten. Aber ich bin mir nicht sicher, ob man den VIM dazu verwenden kann, Fragen über den HTML-Standard zu beantworten ;-)

        Ähm, besser nicht, aber man kann damit eine weitere Meinung einholen ;-)

        »» »» Sagt das W3C auch, was mit solchen Zeichen ist, die wohl nicht mehr zum Kommentar gehören?
        »»
        »» Die Spezifikation sagt leider nicht, was in diesem Fall geschieht. Genau deswegen stelle ich ja meine Frage...

        Warte mal, mit '<!' leite ich eine spezielle Anweisung ein, der Kommentar dürfte dann mit '--' beginnen (die Doctype-Angabe startet ja auch mit '<!') und geht bis zum zweiten '--'. Mit der abschließenden Klammer ist dieser Tag beendet. Folglich sollte es sich bei dem Text zwischen dem zweiten '--' und dem Tagende um ungültige Daten handeln. Ein Test mit xmllint bestätigt diese Vermutung. Nehmen wir folgenden XML-Datei:

          
        <?xml version="1.0" encoding="UTF-8" ?>  
        <!-- Kommentar -- hier -->  
        
        

        Dann liefert ``xmllint datei.xml'' folgenden Fehlermeldung:

        datei.xml:2: parser error : Comment not terminated
          <!-- Kommentar
          <!-- Kommentar -- hier -->
                       ^
          datei.xml:3: parser error : Start tag expected, '<' not found

        »» »» Du stellst fragen! Da dieses Problem anscheinend nur MozillMozillaer betrifft, kannst du dir ja mal den Spaß erlauben und einen hlink:httpszilbugzillalmozillatorge=titleport verfassen. Die Antwort der MozillMozillackler sollte deine Frage klären.
        »»
        »» Da bin ich mir nicht sicher, denn es ist ja nicht geklärt, ob das Verhalten des FirefoFirefoxastandardkonformder nicht. Die FF-Entwickler werden sicher sagen, sie halten sich an den Standard. Das Gleiche könnten die IE- unIEOpera-Operackler aber auch von sich behaupten.

        Naja, es besteht immerhin die Möglichkeit, dass sich einer von denen noch einmal die Spezifikation schnappt und feststellt, Leute, wir haben da tatsächlich was falsch gemacht.

        »» »» Eins will ich aber zum Schluss noch wissen: Was macht das Forum aus deinem Beispiel:
        »»
        »» Ganz normal als formattierten HTML-Kommentar anzeigen?

        Richtig, aber es war ein weiterer Vorschlag, wie man mit solchen Kommentaren umgehen kann.

        P.S.: Was war denn mit deinem Browser los, er hat ja aus den Zitaten lustige Texträtsel gebastelt.

        Viele Grüße,
        Robert