Timna: Validator und co.

Hallo Forum!

Vielleicht kann mir hier jemand folgendes Rätsel auflösen:

Warum muss (soll? - kann?) ich folgendes im Quelltext an erster Stelle stehen haben:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Was bedeutet es und warum wird es als Fehler gemeldet, wenn ich das nicht da stehen hab?

Lieben Dank, Timna

  1. Hallo Timna,

    Warum muss (soll? - kann?) ich folgendes im Quelltext an erster Stelle stehen haben:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    lies doch einfach mal in SELFHTML etwas zu dem Thema:
    http://de.selfhtml.org/html/allgemein/grundgeruest.htm#dokumenttyp

    Was bedeutet es und warum wird es als Fehler gemeldet, wenn ich das nicht da stehen hab?

    nein, es muß da nicht stehen, nur wenn Du den Anspruch hast, dass
    Deine Dokumente den Spezifikationen des W3C entsprechen sollen, dann
    muß diese Angabe vorhanden sein. Ansonsten ist es auch wenig sinnvoll
    den Validator des W3C zu verwenden.

    Viele Grüße,
    Stefan

    1. Hi Stefan!

      nein, es muß da nicht stehen, nur wenn Du den Anspruch hast, dass
      Deine Dokumente den Spezifikationen des W3C entsprechen sollen, dann
      muß diese Angabe vorhanden sein. Ansonsten ist es auch wenig sinnvoll
      den Validator des W3C zu verwenden.

      Gute Gelegenheit, was loszuwerden: Klar schicke ich meine Seiten auch durch den Validator und freue mich immer wie bescheuert, wenn dieses nette Programm mir dann virtuell auf die Schultern klopft und mir wie eine Goldmedaille dieses tolle Banner andient: Ich bin jetzt XHTML 1.0-konform!

      Gucke ich mir die Seite genauer an, merke ich, daß vielleicht 30% des Codes mit document.write erzeugt und also überhaupt nicht validiert wird. Aber dafür kann ich mehr Browser unterstützen als mit plain HTML.
      Für mich ist das ein Widerspruch: Wenn ich rückwärtskompatibel bin durch DHTML, dann weiß ich nicht mehr, ob ich noch aufwärtkompatibel bin bzw. XHTML-konform. Im Extremfall also einmal <body>...</body> und sonst nur noch document.write mit total XHTML-inkonformen Zeugs, aber mein Bannerchen krieg ich trotzdem.

      Nur mal so.

      Gruß aus dem schönen Angermund
      Angy

      1. Moin!

        Gucke ich mir die Seite genauer an, merke ich, daß vielleicht 30% des Codes mit document.write erzeugt und also überhaupt nicht validiert wird. Aber dafür kann ich mehr Browser unterstützen als mit plain HTML.

        Wenn du document.write benutzt, um mehr Browser zu unterstützen, dann machst du irgendwas falsch.

        Ich habe jedenfalls noch keine Notwendigkeit gesehen, Seiten dynamisch mit Javascript zu generieren, was nicht auch serverseitig geschehen könnte. Ok, wer nur billigen, dummen (weil nicht Perl- oder PHP- oder sonstwas-fähigen) Webspace hat, der wird vielleicht dazu neigen, mit Javascript die fehlenden Fähigkeiten des Webservers nachzuahmen. Das ist dann verständlich (gut finde ich es trotzdem nicht, weil es Browser ohne Javascript-Fähigkeit ausschließt). Aber daß man _mit_ Javascript angeblich kompatibler ist als ohne - das kann ich nun absolut nicht nachvollziehen.

        Für mich ist das ein Widerspruch: Wenn ich rückwärtskompatibel bin durch DHTML, dann weiß ich nicht mehr, ob ich noch aufwärtkompatibel bin bzw. XHTML-konform. Im Extremfall also einmal <body>...</body> und sonst nur noch document.write mit total XHTML-inkonformen Zeugs, aber mein Bannerchen krieg ich trotzdem.

        Das scheint deutlich zu machen, daß es nicht der richtige Weg ist, eine HTML-Seite komplett per document.write erstellen zu lassen. :)

        - Sven Rautenberg

        1. Tach, Sven!

          Moin!

          Wenn du document.write benutzt, um mehr Browser zu unterstützen, dann machst du irgendwas falsch.

          Ich wette, Du hast recht, aber ich kenne es noch nicht anders. Ich kenne halt die Methoden wie im SelfHTML beschrieben http://selfhtml.teamone.de/dhtml/beispiele/anzeige/dhtml.htm# oder die ua.js von Netscape. Ziel jeweils, die individuellen Varianten einzusetzen, wo Inkompatibilitäten vorkommen.

          Ich habe jedenfalls noch keine Notwendigkeit gesehen, Seiten dynamisch mit Javascript zu generieren, was nicht auch serverseitig geschehen könnte.

          Nee, geht bei mir nicht. Das basteln meiner "hand-crafted" HP ist eher eine Therapiesitzung für mich, indem ich als alter "Hostie" versuche, mich in die "neue Welt" einzuarbeiten, und ich habe einfach beschlossen, daß das, was ich kenne, zu teuer ist mit serverseitigen Möglichkeiten. Erst mal lernen, dann mal schauen. Vor allem auch dem Boss zeigen: Schau mal, selbst gemacht, ohne teuren Lehrgang.

          Das scheint deutlich zu machen, daß es nicht der richtige Weg ist, eine HTML-Seite komplett per document.write erstellen zu lassen. :)

          Das war mir wohl klar, deshalb habe ich das ja so ausgedrückt! Es scheint ja Leute zu geben, die alles anders machen wollen, als "normal" ist, und deshalb mit normalem HTML nicht mehr weiterkommen und folglich sehr gut leserliche ;-) Seiten voller document.write haben. Und dann für die zweieinhalb Zeilen HTML sich den Validierungsbutton holen...

          Howdy

          Angy

          1. hi

            Das war mir wohl klar, deshalb habe ich das ja so ausgedrückt! Es scheint ja Leute zu geben, die alles anders machen wollen, als "normal" ist, und deshalb mit normalem HTML nicht mehr weiterkommen und folglich sehr gut leserliche ;-) Seiten voller document.write haben. Und dann für die zweieinhalb Zeilen HTML sich den Validierungsbutton holen...

            Daher hoffe ich auch, dass es irgendwann einen Vali für Scripting gibt. Zum einen könnte ich dann einen Button mehr auf meine Page ballern (der CSS-Button fehlt übrigend nicht, sondern wäre unberechtigt), zum anderen wäre dann auch gegen diesen Unfug ein Kraut gewachsen.

            Zum Thema umgehen von Inkompatibilitäten:
            davon kann man 99% (insbesondere alle, die Netscape 4 betreffen) über HTML und CSS alleine lösen.

            gruss Kai

  2. Hi, Timna

    Warum muss (soll? - kann?) ich folgendes im Quelltext an erster Stelle stehen haben:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    Sieh dir mal http://selfhtml.teamone.de/html/allgemein/grundgeruest.htm#dokumenttyp an. Wenn du hierzu Fragen hast, dann her damit ;-)

    Was bedeutet es und warum wird es als Fehler gemeldet, wenn ich das nicht da stehen hab?

    Ohne diese Definition ist die Seite eben nicht wirklich vollständig, auch, weil sich Browser beim Rendern an diese Angaben halten (sollten).

    LG Orlando

  3. hi

    Warum muss (soll? - kann?) ich folgendes im Quelltext an erster Stelle stehen haben:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    Was bedeutet es und warum wird es als Fehler gemeldet, wenn ich das nicht da stehen hab?

    Theoretischer Grund:
    es ist vom W3C so festgeschrieben und dient dazu zu erkennen um was für ein Dokument es sich handelt. Das W3C geht dabei davon aus, dass ein Browser auch nur ein SGML- oder XML-Parser ist und theoretisch auch noch ganz was anderes verarbeiten könnte (Praktisch sind die meisten ja schon mit HTML überfordert)

    Praktischer Grund:
    Internet Explorer 6 und Mozilla / Netscape 6.x gewöhnen sich dann einiges oft inkombatibles Fehlverhalten der letzten Jahre ab.

    gruss Kai