Validationsproblem bei Link-Angabe ("href")
Meike
- html
0 Utz0 Chräcker Heller0 Utz0 Chräcker Heller0 CarstenP
0 molily
0 $xNeTworKx
Hallo,
ich bin grad an einer Seite dran und verwende dort zum ersten Mal HTML 4.01 Strict (sonst hatte ich immer Transitional gewählt).
href="irgendwas.html" target="_blank"
^Error: there is no attribute "TARGET" for this element (in this HTML version)
Ist die Target-Angabe in HTML 4.01 nicht mehr erlaubt oder habe ich einen Fehler drin? Und wie kann ich zu meinem gewünschten Ergebnis kommen, ohne gegen den Standard zu verstossen?
LG
Meike
Hallo Meike,
target="..." ist in HTML 4.01 Transitional und Frameset erlaubt, aber in HTML 4.01 Strict verboten. Nebenbei: es macht in Strict auch überhaupt gar keinen Sinn.
Grüße,
Utz
Hallo,
Nebenbei: es macht in Strict auch überhaupt gar keinen Sinn.
(keine rethorische, sondern wißbegierige Frage jetzt) Warum?
Chräcker
Hi Chräcker,
Nebenbei: es macht in Strict auch überhaupt gar keinen Sinn.
(keine rethorische, sondern wißbegierige Frage jetzt) Warum?
target macht nur Sinn bei der Darstellung in einem Ausgabemedium, das "Fenster" kennt - also Internet-Browser. Für nicht-visuelle Ausgabemedien (Sprachausgabe z.B.) ist es nutzlos. Ich verstehe Strict so, dass es ausschließlich Elemente enthält, die auf allen Ausgabemedien Sinn machen. Deshalb ist das target da nicht mit drin. Transitional enthält dagegen auch Elemente, die nur für bestimmte Ausgabemedien sinnvoll sind, und wer seine HTML-Dateien "nur" für visuelle Ausgabemedien schreibt (so wie z.B. ich in der Regel), kann genauso gut Transitional verwenden.
Disclaimer: Das ist eine persönliche Auslegung :-)
Strict zu nehmen (und damit Ausgabemedien-unabhängig schreiben zu wollen) und dann zu versuchen, dort etwas Ausgabemedien-abhängiges wieder reinzubasteln, empfinde ich als widersinnig.
Grüße,
Utz
Hallo,
aaaaah, Danke. Das hat mich wirklich erleuchtet. Ich hatte mich immer gewundert, warum man so "meinungsbildend" bei der Auswahl der "stricten" Tags und Atribute ist..... Aber ich sehe, dies wahr/ist keine Geschmacksfrage gewesen sondern "innerhalb des Systems" tatsächlich logisch....
Dank, wieder was gelernt.
Chräcker
Hallo Chräcker,
"innerhalb des Systems" tatsächlich logisch...
es gab vor einiger Zeit hier schon mal längere Diskussionen über den Sinn/Unsinn von target innerhalb von strict:
</archiv/2002/2/4355/>
</archiv/2002/4/9889/>
Du wirst feststellen, daß es manche durchaus nicht logisch finden... ;-)
Viele Grüße
Carsten, Anhänger der "ist logisch"-Fraktion ;-)
Hallo, Utz und Chräcker,
Nebenbei: es macht in Strict auch überhaupt gar keinen Sinn.
(keine rethorische, sondern wißbegierige Frage jetzt) Warum?
target macht nur Sinn bei der Darstellung in einem Ausgabemedium, das "Fenster" kennt - also Internet-Browser. Für nicht-visuelle Ausgabemedien (Sprachausgabe z.B.) ist es nutzlos.
ACK.
Ich verstehe Strict so, dass es ausschließlich Elemente enthält, die auf allen Ausgabemedien Sinn machen. Deshalb ist das target da nicht mit drin. Transitional enthält dagegen auch Elemente, die nur für bestimmte Ausgabemedien sinnvoll sind, und wer seine HTML-Dateien "nur" für visuelle Ausgabemedien schreibt (so wie z.B. ich in der Regel), kann genauso gut Transitional verwenden.
Ja, aber der Schluss, dass eine Seite, welche primär auf Ausgabemedien dargestellt werden soll (das sind ja die meisten Webseiten), in Transitional verfasst werden soll, ist so nicht richtig. :) HTML ist an sich - auch mit den veralteten Präsentationsfeatures - kein ausgabemedienabhängiges Format, Transitional ist es auch nicht zwingend, Transitional ist nicht die HTML-Variante für visuelle Ausgabemedien oder Ähnliches.
In Transitional gibt es, wie du sagst, keine Trennung zwischen Markup und ausgabemedienspezifischer Präsentation, d.h. neben den laschen Syntaxregeln sind die alten "deprecated" Elemente und -attribute erlaubt, welche nur auf grafische Ausgabe zielen (okay, b und i sind auch in Strict erlaubt).
Weiterhin sind (imho) in einer Markup-Sprache keine Elemente "sinnvoll", welche nur existiere, um die Präsentation zu beeinflussen. Transitional ist auch kein/e Freibrief/Entschuldigung/Rechtfertigung für schlechtes HTML. "...kann genauso gut Transitional verwenden" halte ich deshalb für falsch, denn HTML schreibt man, wie gesagt unabhängig von der DTD, für kein spezielles Ausgabemedium, d.h. für alle. Für die bildschirmspezifischen Formatierungen verwendet man media="screen" bzw. @media screen Stylesheets - ganz einfach.
Das target-Attribut selbst war AFAIK eigentlich in erster Linie für Seiten mit Frames gedacht, d.h. ein Frameset mit einer Frameset-DTD und ein Dokument im Frame mit target-Attributen und dementsprechend Transitional-DTD, weil das Konzept Frames wie du implizit sagst nichts mit Markup an sich zu tun hat, sondern eine Zusatztechnik darstellt, welche nichts anderes als die Präsentation auf einem ganz bestimmten Ausgabemedium steuert.
Der "Auslöser" des ausgabemedienabhängigen Attributs target war also eigentlich die Technik Frames. Wieso man jedoch auf die #$@§ Idee gekommen ist, neben den verständlichen möglichen Attributwerten [Framename], _top, _self und _parent auch noch _blank einzuführen, ist mir schleierhaft, denn ich sehe keinen Zusammenhang mit Frames. Im Übrigen stammt die imho bis heute unausgereifte Frametechnologie von Netscape, target="_blank" war schon in NS 2.0 implementiert, Frames wurde dann von Netscape für HMTL vorgeschlagen (http://lists.w3.org/Archives/Public/www-html/1995Sep/0034.html). Das W3C hat's übernommen aber in einer der ersten 4.0-WDs steht ausdrücklich, dass ein Browser die target-Angaben ignorieren darf bzw. Möglichkeiten bieten darf, sie zu umgehen.
Strict zu nehmen (und damit Ausgabemedien-unabhängig schreiben zu wollen) und dann zu versuchen, dort etwas Ausgabemedien-abhängiges wieder reinzubasteln, empfinde ich als widersinnig.
ACK. Obwohl man mit Strict genauso wie mit XHTML 1.1 valide und wohlgeformte Seiten schreiben kann, welche z.B. Tabellen für grafische Formatierungen nutzen und somit eine Trennung von Präsentation und Inhaltsstruktur nicht vorhanden ist.
Grüße,
Mathias
(*gähn*... ich merke es, meine Sätze werden mit zunehmender Müdigkeit kürzer)
Hallo,
Ist die Target-Angabe in HTML 4.01 nicht mehr erlaubt...
Du hast es erfasst :)
Target Attribute nerven eigentlich eh unglaublich. Man sollte es dem User überlassen, ob er eine neue Seite aufmachen will oder nicht.
$xNeTworKx.
Target Attribute nerven eigentlich eh unglaublich. Man sollte es dem User überlassen, ob er eine neue Seite aufmachen will oder nicht.
Ich weiss... aber Target ist doch im Prinzip keine Tatsache, sondern nur eine Empfehlung ... wenn der User zB immer im neuen Fenster öffnen will, kann er das mit einem Rechtsklick übers Kontextmenü ja tun.
Ich möchte nunmal, dass Verweise zu anderen (externen) Seiten sich in einem neuen Fenster öffnen... gibt's da keine Alternative zu Target?
LG
Meike
Hi Meike,
Ich möchte nunmal, dass Verweise zu anderen (externen) Seiten sich in einem neuen Fenster öffnen... gibt's da keine Alternative zu Target?
Jetzt mal im Ernst: Du willst etwas verwenden, was einfach nicht zu HTML 4.01 Strict gehört. Das ist im Prinzip völlig ok. Warum aber willst Du dann unbedingt das Strict-Papperl draufhaben? Was spricht gegen die Verwendung von Transitional?
Grüße,
Utz
Jetzt mal im Ernst: Du willst etwas verwenden, was einfach nicht zu HTML 4.01 Strict gehört. Das ist im Prinzip völlig ok. Warum aber willst Du dann unbedingt das Strict-Papperl draufhaben? Was spricht gegen die Verwendung von Transitional?
Tja, das wäre schon wieder eine neue Diskussion wert oder? Warum verwendet man Transitional und Strict? Warum gibt es überhaupt beides? (Vermute mal aus Gründen der Kompatibilität gibt es Transitional, aber dann wäre Strict ja überflüssig...)
Nee also, ich wollte einfach mal korrekt sein und mich 100%ig an den Standard halten... ohne auf die Kompromisse angewiesen zu sein, die Transitional mir bietet.
Dachte nur, dass es doch eine Möglichkeit geben muss, das festzulegen... dass der Befehl gar nicht mehr zum HTML 4.01-Standard gehört, macht mir jetzt mein Weltbild kaputt :-P ;-)
LG
Meike
Hi Meike,
Dachte nur, dass es doch eine Möglichkeit geben muss, das festzulegen... dass der Befehl gar nicht mehr zum HTML 4.01-Standard gehört, macht mir jetzt mein Weltbild kaputt :-P ;-)
HTML-Dateien können ja nicht nur auf einem Browser angeschaut werden, sondern auch vorgelesen werden oder ausgedruckt...für andere Ausgabemedien als den allseits bekannten Browser macht die Angabe von target keinen Sinn. Strict dient dazu, eine Datei so auszuzeichnen, dass sie vollkommen unabhängig vom Ausgabemedium funktioniert - sozusagen die reine Lehre. Willst Du ihr folgen, musst Du in Kauf nehmen, dass der User selber darüber entscheidet, ob er den Link im selben Fenster, in einem neuen Fenster oder einem neuen Tab (oder auf dem Drucker oder wo immer) dargestellt haben möchte.
Transitional steht für die nicht ganz so reine Lehre - für Leute, die eben auch Sachen festlegen wollen, die nur mit der reinen Lehre nicht machbar sind. Es wäre aber falsch zu glauben, dass Dinge, die "nur" in Transitional stehen, nicht zum Standard gehören. Und target ist noch nicht mal als deprecated ausgewiesen, also hätte ich da an Deiner Stelle keine Hemmungen, es zu verwenden.
Grüße,
Utz
Hallo, Utz,
Dachte nur, dass es doch eine Möglichkeit geben muss, das festzulegen... dass der Befehl gar nicht mehr zum HTML 4.01-Standard gehört, macht mir jetzt mein Weltbild kaputt :-P ;-)
HTML-Dateien können ja nicht nur auf einem Browser angeschaut werden, sondern auch vorgelesen werden oder ausgedruckt...
...oder mit XML-Werkzeugen verwaltet, umgewandeln und geändert werdern.
für andere Ausgabemedien als den allseits bekannten Browser macht die Angabe von target keinen Sinn. Strict dient dazu, eine Datei so auszuzeichnen, dass sie vollkommen unabhängig vom Ausgabemedium funktioniert
Ich habe immer noch Seiten, welche Transitional nutzen (warum wohl... wegen Netscape 4 natürlich... leidiges Thema), aber dennoch funktionieren sie unabhängig von Ausgabemedien, denn eine nichtvisuelle Ausgabetechnik lässt diese Attribute einfach außer Acht.
Von vollster Zugänglichkeit kann man natürlich nicht reden, aber ein align-Attribut stellt keine Barriere dar.
Transitional steht für die nicht ganz so reine Lehre - für Leute, die eben auch Sachen festlegen wollen, die nur mit der reinen Lehre nicht machbar sind.
Strict heißt in erster Linie nichts anderes, als dass man HTML dazu benutzt, wozu es gedacht ist. Im Vordergrund steht die Überlegung, Stylesheets anstatt HTML-Formatierungen zu benutzen - das hat bis dahin nichts mit "reiner Lehre" zu tun, da man auf nichts verzichtet oder sich einschränkt, im Gegenteil, CSS vervielfältigt die Gestaltungsmöglichkeiten.
Es wäre aber falsch zu glauben, dass Dinge, die "nur" in Transitional stehen, nicht zum Standard gehören.
Wer sagt das? Die Browserhersteller, die willkürlich neue Präsentationselemente und -Attribute in ihre Browser implementieren? Jeder Netzautor definiert für sich alleine fest, was HTML ist und sein darf und was nicht? Nein, es ist ein Konsens, dass die Elemente und Attribute und die nachlässige Syntax *nicht* zu HTML als Hypertextauszeichnungssprache gehören, eine solche Sprache ist (wenn überhaupt) HTML 4.01 Strict und alles weitere ist entweder eine auf Hypertext aufsetzende Zusatztechnik, welche aber mit dem Ursprungssinn nicht vereinbar ist (Frames, mit target neue Fenster öffnen), oder ein Relikt aus der grauen Urzeit, der Zeit des Browserwars (font, bgcolor usw.). HTML Transitional ist alles, aber keine Hypertextauszeichnungssprache, auch wenn der Name es vorgibt.
Das alles ändert jedoch nichts daran, dass (X)HTML Transitional geschrieben wird und ein anscheinend Verlangen (von Seiten der Autoren) besteht. Aber zu behaupten, dass Transitional im Grunde auch HTML ist, nur nicht ganz die "reine Lehre" ist, finde ich unangebracht. ("Reine Lehre" ist hier m.E. völlig unangemessen, das impliziert dass das Verwenden der Transitional-DTD ein Akt ds Ungehorsams ist. :))
Und target ist noch nicht mal als deprecated ausgewiesen, also hätte ich da an Deiner Stelle keine Hemmungen, es zu verwenden.
target ist nicht als deprecated ausgewiesen, weil das W3C weiterhin an Frames, wie sie in HTML 4 in den Standard übernommen wurden, beibehalten möchte und diesen weiterentwickelt, siehe XFrames. Da müsste das ganze Framekonzept verleugnet werden, wenn target deprecated sein sollte. XHHTML 2 benennt m.E. bedauernswerterweise ausdrücklich, dass das target dazu genutzt werden kann, neue Fenster zu öffnen - völlig unabhängig davon, ob Frames benutzt werden: http://www.w3.org/TR/xhtml2/mod-target.html#s_targetmodule. Mal sehen, wie sich das entwickelt.
Grüße,
Mathias
Hallo,
dass der Befehl gar nicht mehr zum HTML 4.01-Standard gehört, macht
mir jetzt mein Weltbild kaputt :-P ;-)
kann ich verstehen ;-) Hat bei mir aber bewirkt, daß ich (beim ausgeschaltetem Computer) mal überlegt habe, warum ich externe links eigendlich in einem neuen fenster öffnen wollte. Bei mir war das nämlich der Fall, daß ich "tatsächlich" so glaubte eine Abwanderung der Besucher verhindern, oder zumindest verzögern zu könen. Und weil ich so etwas normalerwiese natürlich nie zugeben würde, habe ich einfach überall target="_blank" rausgenommen ;-)))
Chräcker