Utz Grimminger: Seite mit «blink», «marquee» und «nobr», und Valligator liebt sie trotzdem!

Hi liebe Leute!

Hier ein klitzekleiner Nachtrag zum Themenchat neulich - mich plagte der Gedanke, ob der Valligator wirklich so unfehlbar ist.
Ist er nicht! Hab ne kleine Seite gebastelt, die <blink>, <marquee> und <nobr> enthält (alles kein off. HTML) - und der Valligator freut sich und validiert sie als HTML 4.01-konform!

Zum selber überzeugen:

Meine Bastelei: http://www.mandoline.de/valligator_test.htm

Und hiermit testen: http://validator.w3.org/

Was sagt mir der Spaß? Wenn ich offiziell valides HTML produzieren soll und trotzdem proprietäre Tags ohne Ende verwenden will - kein Problem!

Soll aber nicht heißen, dass der Valligator deswegen Schrott sei - hab ihn da schon absichtlich ausgetrickst!

Grüße,

Utz

  1. hi!

    Hier ein klitzekleiner Nachtrag zum Themenchat neulich - mich plagte der Gedanke, ob der Valligator wirklich so unfehlbar ist.
    Ist er nicht! Hab ne kleine Seite gebastelt, die <blink>, <marquee> und <nobr> enthält (alles kein off. HTML) -
    und der Valligator freut sich und validiert sie als HTML 4.01-konform!

    1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    2: <html>
    3: <head>
    4: <title>Na, Valligator, was sagst Du dazu?</title>
    5: <meta name="author" content="Utz Grimminger">
    6: </head>
    7: <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
    8: <h1>Da sind wir alle ja mal gespannt!</h1>
    9: <script language="JavaScript" type="text/javascript">
    10: <!--
    11: document.writeln('<blink>Ein hundsgemeiner Einsatz von <blink></blink>');
    12: document.writeln('<marquee>Gefolgt von einem hinterhältigen <marquee>-Effekt</marquee>');
    13: document.writeln('<nobr>Und hier noch ein bisschen was innerhalb eines <nobr>-Abschnittes!</nobr>');
    14: //-->
    15: </script>
    16:   <p>
    17:     <a href="http://validator.w3.org/check/referer"><img border=0
    18:         src="http://validator.w3.org/images/vh401"
    19:         alt="Valid HTML 4.01!" height=31 width=88></a>
    20:   </p>
    21: </body>
    22: </html>

    Es war nie die Rede davon, dass der Validator auch noch JavaScripts ausführt, bevor er die Seite checkt.
    Das JavaScript steht dazu noch in "<!-- ... -->" eingeschlossen, ist also ein reiner HTML-Kommentar.
    HTML-Kommentare werden vom Validator einfach übersprungen, weil da ja alles drin stehen darf, und es
    keinen Page-Renderer irgendwas angeht, was in Kommentaren steht.
    Sorry, aber mit so einem billigen Trick kommst du nicht weit.

    bye, Frank!

    1. Hi Frank!

      Ja, ist ein sehr billiger Trick! Hab selbst ein bisschen gestaunt, dass ich damit durchkomme.
      Das schlimme dran ist IMHO: dem Etikettenschwindel (HTML 4.01-konform) ist damit Tür & Tor geöffnet!
      Ich finde, der Valligator dürfte auf so billige Tricks eigentlich nicht hereinfallen, wenn er ein Standard werden soll...

      Grüße,

      Utz

      1. Hallo Utz!

        Ja, ist ein sehr billiger Trick! Hab selbst ein bisschen gestaunt, dass ich damit durchkomme.

        Nun, da ja hier das Validierungsfieber ausgebrochen ist, offenbart sich dieses Missverstaendnis immer wieder. Alle validieren ihre DHTML-Seiten in ihrer Ursprungsform, das Ergebnis von document.write()-Operationen aber nicht. Nun ist aber gerade dieses (dynamische) Ergebnis das, was der Browser darstellen soll. Folglich muss nicht nur die urspruengliche Seite validiert werden (also vor der Ausfuehrung von Scripts), sondern auch dieses Ergebnis, wenn man es denn tun will.

        Das schlimme dran ist IMHO: dem Etikettenschwindel (HTML 4.01-konform) ist damit Tür & Tor geöffnet!

        Da hast Du wohl leider recht.

        Ich finde, der Valligator dürfte auf so billige Tricks eigentlich nicht hereinfallen, wenn er ein Standard werden soll...

        Es ist nicht Aufgabe eines Validators, beliebige Scriptsprachen auszufuehren. Ein Validator prueft, ob ein SGML/XML-Dokument den Regeln in der DTD dieses Dokuments folgt. Denk auch dran, dass es noch viel mehr Scriptsprachen gibt als JS.

        Nachtrag:

        von wegen der Valligator liest auskommentiertes JavaScript nicht!
        Unmaskiertes </blink> und </marquee> im document.write-Teil meckert er sehr wohl an, nur mit </blink> und </marquee> ging's.

        Siehe <../../sfarchiv/2000_1/t11204.htm#a56822> und http://www.w3.org/TR/html401/types.html#type-cdata.

        So lange

    2. Nachtrag:

      von wegen der Valligator liest auskommentiertes JavaScript nicht!
      Unmaskiertes </blink> und </marquee> im document.write-Teil meckert er sehr wohl an, nur mit </blink> und </marquee> ging's.

      Grüße,

      Utz