Mathias: TARGET-Option nicht in HTML 4 Strict?!

Hallo,

ich bin schon seit Tagen am suchen, denn der W3C-Validator mag die TARGET-Option im A-Tag nicht.

<beispiel>

... ../inhalt.html" target="_top">zum Inhalt ...
                           ^
Error: there is no attribute "TARGET"

</beispiel>

In der HTML-4-Spezifikation ist ebensowenig etwas zu finden wie hier im Forum. Kann mir jemand helfen?

m.

  1. Hallo m.,

    ich bin schon seit Tagen am suchen, denn der W3C-Validator mag die TARGET-Option im A-Tag nicht.

    <beispiel>

    ... ../inhalt.html" target="_top">zum Inhalt ...
                               ^
    Error: there is no attribute "TARGET"

    </beispiel>

    In der HTML-4-Spezifikation ist ebensowenig etwas zu finden wie hier im Forum. Kann mir jemand helfen?

    m.

    In der DTD-Strict fuer HTML ist das target Attribut beim A Element nicht entahlten.

    Enthalten ist es aber in Loose
    (<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                "http://www.w3.org/TR/html4/loose.dtd">)

    gruss,
    frank_eee

    1. Hallo, Frank,

      »»> ich bin schon seit Tagen am suchen, denn der W3C-Validator mag die TARGET-Option im A-Tag nicht.

      Enthalten ist es aber in Loose
      (<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                  "http://www.w3.org/TR/html4/loose.dtd">)

      Ich möchte ja gern mein HTML so sauber wie möglich schreiben, deshalb HTML 4 Strict.

      Die Option target steht unter »Attributes defined elsewhere«, das heißt doch wohl aber nicht, dass sie sicht HTML-4-Strict-konform ist, oder? Schließlich scheint er gegen class, style und title auch nicht zu haben.

      Gibt es eine Alternative für die target-Option?

      m.

      1. Hallo Mathias,

        ich bin kein Spec-Profi, aber "target" macht nur in Verbindung mit Frames Sinn, und dafuer ist die frameset.dtd zustaendig. Die wiederum beinhaltet die loose.dtd, und dort ist auch das target-Attribut im A-Tag definiert; in der strict.dtd dagegen nicht.

        IMHO kannst Du schon mehr als zufrieden sein, wenn Dein Code bei Verwendung der loose.dtd vom Valligatot akzeptiert wird ;-)

        Viele Gruesse,
        Heiko

        1. Hallo, Heiko,

          ich bin kein Spec-Profi, aber "target" macht nur in Verbindung mit Frames Sinn, und dafuer ist die frameset.dtd zustaendig.

          target="_blank" mach do auch ohne Frames Sinn

          IMHO kannst Du schon mehr als zufrieden sein, wenn Dein Code bei Verwendung der loose.dtd vom Valligatot akzeptiert wird ;-)

          Warum?

          m.

          1. Hallo Mathias,

            target="_blank" mach do auch ohne Frames Sinn

            Da hast Du wohl recht, an "_blank" hatte ich bei meiner Antwort nicht gedacht.
            Trotzdem ist das target-Attribut in der strict.dtd nicht definiert, ich hab gerad nochmal nachgesehen (http://www.w3.org/TR/html4/strict.dtd). Ausserdem wird auch "_blank" unter den "Frame target names" aufgefuehrt (siehe http://www.w3.org/TR/html4/types.html#type-frame-target), und insofern ist das schon konsequent, dass der Valligator meckert.

            IMHO kannst Du schon mehr als zufrieden sein, wenn Dein Code bei Verwendung der loose.dtd vom Valligatot akzeptiert wird ;-)

            Warum?

            Weil die loose-dtd z.B. nicht das height-Attribut bei Tabellen unterstuetzt, und das ist wirklich ziemlich praktisch, wenn man Inhalte vertikal auf einer Seite zentrieren will, und wird deshalb haeufig genutzt.

            Viele Gruesse,
            Heiko

            1. Hallo Heiko,

              Trotzdem ist das target-Attribut in der strict.dtd nicht definiert, ich hab gerad nochmal nachgesehen

              Stimmt, habe in der Liste »attributes« nachgesehen. Aber warum kann ein Tag nur »loose« sein, aber nicht »deprecated«? Wo ist genau der Unterschied?

              Weil die loose-dtd z.B. nicht das height-Attribut bei Tabellen unterstuetzt, und das ist wirklich ziemlich praktisch, wenn man Inhalte vertikal auf einer Seite zentrieren will, und wird deshalb haeufig genutzt.

              Geht das nicht via CSS?

              m.

              1. Moin ihr beiden,

                Stimmt, habe in der Liste »attributes« nachgesehen. Aber warum kann ein Tag nur »loose« sein, aber nicht »deprecated«? Wo ist genau der Unterschied?

                Weil: was nie dazu gehörte, nicht wegfallen kann. Die Diskussion, warum Frames (und damit auch das Attribut target) zwar (via die frames-DTD) "loose" sind, in strict aber nicht (genauer:nie) vorhanden waren und deshalb nicht deprecated sein müssen, war recht umstritten. Schaut euch mal in http://lists.w3.org/Archives/Public/www-html/2000Jan/0051.html bzw den gesamten Thread in  http://lists.w3.org/Archives/Public/www-html/2000Jan/thread.html an, dann ahnt ihr, dass es hier fast an Haarspalterei grenzt. Wenn ihr dann noch nicht genug habt, dann durchsucht mal die w3-mailinglisten nach "attribute target" ;-)

                Etwa einfacher finde ich den Ansatz, sich klar zu machen, dass die Hauptaufgabe von HTML Markup ist. Alles andere (und damit auch die Frage, in welchen Fenster sich ein Link öffnet) gehört nicht zu den originären Aufgaben einer Markup-Sprache ...

                Weil die loose-dtd z.B. nicht das height-Attribut bei Tabellen unterstuetzt, und das ist wirklich ziemlich praktisch, wenn man Inhalte vertikal auf einer Seite zentrieren will, und wird deshalb haeufig genutzt.

                Geht das nicht via CSS?

                richtig ... denn auch hier wird der Grundsatz verwirklicht, Struktur und Layout trennen zu wollen.

                Viele Grüße

                Swen