edition W3C.de

HTML 4.01-Spezifikation

Deutsche Übersetzung

Diese Version:
http://www.edition-w3.de/TR/1999/REC-html401-19991224
Aktuelle Version:
http://www.edition-w3c.de/TR/html4
Übersetzer:
Christine Kühnel (Übersetzung, fachliche Kommentierung) <kuehnel@screenexa.net>
Stefan Mintert (Fachlektorat und fachliche Kommentierung) <www.mintert.com/stefan/mail/>
Stefan Schumacher (Übersetzung, fachliche Kommentierung) <sts@schumacher-netz.de>

Bei diesem Dokument handelt es sich um eine Übersetzung eines W3C-Textes. Dieser Text ist urheberrechtlich geschützt; bitte beachten Sie die nachfolgenden Hinweise des Originaldokuments. Die Rechte an der Übersetzung liegen bei den Übersetzern und dem Verlag Addison-Wesley. Die Übersetzung hat keine durch das W3C legitimierte, normative Wirkung. Das einzige maßgebliche Dokument ist das englische Original.

Bitte senden Sie Fehler und Korrekturen zur deutschen Fassung an die Übersetzer.

Kommentare der Übersetzer, die als solche gekennzeichnet sind, unterliegen dem Urheberrecht der Übersetzer. Sie sind nicht Bestandteil des Ursprungsdokuments.

Diese Veröffentlichung ist eine Vorveröffentlichung. Kein Teil dieses Textes darf kopiert werden. Alle Rechte vorbehalten. Nach Abschluss der Arbeit wird das endgültige Dokument unter der oben angegebenen Adresse veröffentlicht. Die jetzige Veröffentlichung während der laufenden Arbeit dient zur Information von Interessierten und zur Prüfung durch die Fachöffentlichkeit. Sollten Sie Fehler finden oder Verbesserungsvorschläge haben, schicken Sie diese bitte per Mail an die Übersetzer.
Folgende Teile liegen noch in Englisch vor und müssen noch in deutscher Fassung generiert werden: (a) Gesamtinhaltsverzeichnis (b) Index


12 Links

Inhaltsverzeichnis

12.1 Einführung in Links und Anker

HTML bietet viele der herkömmlichen Publikationsmöglichkeiten für Rich-Text und strukturierte Dokumente. Was den Unterschied zu den meisten anderen Auszeichnungssprachen ausmacht, sind die Merkmale: Hypertext und interaktive Dokumente. Dieser Abschnitt stellt den Link (auch Hyperlink oder Web-Link), das grundlegende Hypertext-Konstrukt, vor. Ein Link ist eine Verbindung von einer Web-Ressource zur anderen. Wenngleich ein einfaches Konzept, war der Link eine der wichtigsten Kräfte, die den Erfolg des Webs vorangetrieben haben.

Ein Link hat zwei Enden – genannt Anker – und eine Richtung. Der Link beginnt beim »Quell«-Anker und zeigt auf den »Ziel«-Anker, der eine beliebige Web-Ressource sein kann (zum Beispiel ein Bild, ein Videoclip, ein Klangschnipsel, ein Programm, ein HTML-Dokument, ein Element innerhalb eines HTML-Dokuments und so weiter).

12.1.1 Besuchen einer verlinkten Ressource

Standardmäßig wird über einen Link eine andere Web-Ressource gefunden. Dieses Verhalten wird gewöhnlich ohne weiteres durch Auswahl eines Links (zum Beispiel durch Anklicken, durch eine Tastatureingabe usw.) erreicht.

Der folgende HTML-Auszug enthält zwei Links, einen, dessen Zielanker ein HTML Dokument namens »chapter2.html« ist, und einen anderen, dessen Zielanker ein GIF-Bild in der Datei »forest.gif« ist:

<BODY>
...Text...
<P>Sie können eine Menge mehr in  <A href="chapter2.html">Kapitel zwei</A> finden.
Schauen Sie bitte auch diese <A href="../images/forest.gif">Karte des Zauberwaldes</A> an.
</BODY>

Bei der Aktivierung dieser Links (durch Anklicken mit der Maus, Tastatureingabe, Sprachbefehle usw.) können Benutzer diese Ressourcen aufsuchen. Beachten Sie, dass das href-Attribut in jedem Quellanker die Adresse des Zielankers durch einen URI spezifiziert.

Der Zielanker eines Links kann ein Element innerhalb eines HTML-Dokuments sein. Der Zielanker muss einen Ankernamen besitzen, und jede URI-Adressierung dieses Ankers muss den Namen als Fragmentbezeichner enthalten (siehe Abschnitt 2.1.2).

Zielanker in HTML-Dokumenten können entweder duch das Element A (benannt durch das name-Attribut) oder durch ein anderes Element (benannt durch das id-Attribut) angegeben werden.

So könnte zum Beispiel ein Autor ein Inhaltsverzeichnis erstellen, dessen Einträge auf Überschriften-Elemente H2, H3 und so weiter im gleichen Dokument verweisen. Unter Verwendung des A-Elements zur Erstellung von Zielankern würden wir schreiben:

<H1>Inhaltsverzeichnis</H1>
<P><A href="#section1">Einführung</A><BR>
<A href="#section2">Etwas zum Hintergrund</A><BR>
<A href="#section2.1">Eine persönliche Anmerkung</A><BR>
...Der Rest des Inhaltsverzeichnisses...
...Der Dokumentrumpf...
<H2><A name="section1">Einführung</A></H2>
...Abschnitt 1...
<H2><A name="section2">Etwas zum Hintergrund</A></H2>
...Abschnitt 2...
<H3><A name="section2.1">Eine persönliche Anmerkung</A></H3>
...Abschnitt 2.1...

Wir können denselben Effekt erreichen, wenn wir die Überschriften-Elemente selbst zu Ankern machen:

<H1>Inhaltsverzeichniss</H1>
<P><A href="#section1">Einführung</A><BR>
<A href="#section2">Etwas zum Hintergrund</A><BR>
<A href="#section2.1">Eine persönliche Anmerkung</A><BR>
...Der Rest des Inhaltsverzeichnisses...
...Der Dokumentrumpf...
<H2 id="section1">Einführung</H2>
...Abschnitt 1...
<H2 id="section2">Etwas zum Hintergrund</H2>
...Abschnitt 2...
<H3 id="section2.1">Eine persönliche Anmerkung</H3>
...Abschnitt 2.1...

12.1.2 Andere Link-Beziehungen

Die bei weitem häufigste Nutzungsart von Links ist die, wie in dem vorigen Beispiel dargestellt, andere Web-Ressourcen aufzurufen. Autoren können jedoch auch Links in ihre Dokumente aufnehmen, die andere Beziehungen zwischen den Ressourcen ausdrücken als einfach nur »aktiviere diesen Link, um die betreffende Ressource aufzusuchen«. In Quellankern von Links, die andere Arten von Beziehungen ausdrücken, sind ein oder mehr Linktypen spezifiziert.

Die Rolle eines durch A oder LINK definierten Links wird durch die rel und rev-Attribute bestimmt.

Beispielsweise können Links, die mit mit Hilfe des LINK-Elements definiert sind, die Position eines Dokuments innerhalb einer Serie von Dokumenten beschreiben. Im folgenden Auszug verweisen Links innerhalb des mit »Kapitel 5« betitelten Dokuments auf das vorhergehende und das nachfolgende Kapitel:

<HEAD>
...andere Kopfinformation...
<TITLE>Kapitel 5</TITLE>
<LINK rel="prev" href="chapter4.html">
<LINK rel="next" href="chapter6.html">
</HEAD>

Der Linktyp des ersten Links ist »prev« und der des zweiten ist »next« (zwei von mehreren erkannten Linktypen). Durch LINK spezifizierte Links werden nicht mit dem Dokumentinhalt dargestellt. Benutzerprogramme können sie jedoch auf andere Weise wiedergeben (zum Beispiel als Navigationswerkzeuge).

Anmerkung der Übersetzer:

Der Mozilla-Browser zum Beispiel nutzt diese Links, so sie in einem Dokument vorhanden sind, um dem Benutzer ein bequemes Navigationsinstrument anzubieten. Schauen wir als Beispiel die Originalfassung dieses Kapitels der HTML-Spezifikation unter http://www.w3.org/TR/1999/REC-html401-19991224/struct/links.html an. Sie enthält folgende Links:

<link rel="previous" href="tables.html">
<link rel="next" href="objects.html">
<link rel="contents" href="../cover.html#toc">

Wird die Seite im Browser geladen, so zeigt er eine Navigationsleiste, über die man in Fall unserer Beispielseite zur vorhergehenden Seite (das ist Kapitel 11, »Tables«, tables.html), zur nächsten Seite (das ist Kapitel 13, »Objects, Images, and Applets«, objects.html) und zum Inhaltsverzeichnis (cover.html) gelangen kann.

link rel=previous in Mozillaink rel=contents in Mozilla

Auch wenn sie nicht für die Navigation benutzt werden, können diese Links auf interessante Weise interpretiert werden. Biespielsweise kann ein Benutzerprogramm, das eine Serie von HTML-Dokumenten als ein einziges Dokument ausdruckt, die Informationen dieser Links als Grundlage für den Aufbau eines durchgehenden zusammenhängenden Dokuments nutzen. Mehr Informationen sind weiter unten unter »Links und Suchmaschinen« zu finden.

12.1.3 Links und Anker definieren

Obgleich verschiedene HTML-Elemente und -Attribute Links zu anderen Ressourcen erzeugen (zum Beispiel das Element IMG, das Element FORM usw.), befasst sich dieses Kapitel mit Links und Ankern, die durch die Elemente LINK und A erzeugt werden. Das Element LINK darf nur im Kopf eines Dokuments auftauchen. Das Element A darf nur im Rumpf stehen.

Ist das href-Attribut des A-Elements gesetzt, so definiert das Element einen Quellanker für einen Link, der vom Benutzer aktiviert werden kann, um eine Web-Ressource abzurufen. Der Quellanker ist die Position der A-Instanz und der Zielanker ist die Web-Ressource.

Die aufgerufene Ressource kann vom Benutzerprogramm auf unterschiedliche Art behandelt werden: durch Öffnen eines neuen HTML-Dokuments im gleichen Fenster des Benutzerprogramms, durch Öffnen eines neuen HTML-Dokuments in einem anderen Fenster, durch Starten eines anderen Programms, das die Ressource bearbeitet und so weiter. Da das A-Element Inhalt besitzt (Text, Bilder usw.), können Benutzerprogramme diesen Inhalt auf eine Art wiedergeben, die auf das Vorhandensein eines Links hinweist (zum Beispiel durch Unterstreichen des Inhalts).

Wenn das name- oder das id-Attribut des Elements A gesetzt ist, definiert das Element einen Anker, der Ziel anderer Links sein kann.

Autoren können name- und href-Attribut gleichzeitig in derselben A-Instanz setzen.

Das Element LINK definiert eine Beziehung zwischen dem aktuellen Dokument und einer anderen Ressource. Obwohl LINK keinen Inhalt hat, kann die definierte Beziehung von manchen Benutzeragenten wiedergegeben werden.

12.1.4 Linktitel

Das title-Attribut kann sowohl für A als auch für LINK gesetzt werden, um Informationen über über den Link hinzuzufügen. Diese Information können vom Benutzerprogramm gesprochen werden, als Tooltip wiedergegeben werden, eine Änderung der Cursordarstellung bewirken und vieles mehr.

Damit können wir ein vorangehendes Beispiel erweitern, indem wir für jeden Link einen Titel anbieten:

<BODY>
...Text...
<P>Sie können eine Menge mehr in <A href="chapter2.html"
       title="Gehe zu Kapitel zwei">Kapitel zwei</A> finden.
<A href="./chapter2.html"
       title="Hole Kapitel zwei.">chapter two</A>.
Schauen Sie bitte auch diese <A href="../images/forest.gif"
       title="GIF-Bild des Zauberwaldes">Karte 
       des Zauberwaldes</A> an.
</BODY>

12.1.5 Internationalisierung und Links

Da Links auf Dokumente mit anderer Zeichenkodierung (siehe Abschnitt 5.1) weisen können, unterstützen A- und LINK-Element das charset-Attribut. Dieses Attribut erlaubt es Autoren, das Benutzerprogramm über die Datenkodierung am anderen Ende des Links zu informieren.

Das hreflang-Attribut versorgt das Benutzerprogramm mit Informationen über die Sprache der Ressource am Ende eines Links, so, wie das lang-Attribut Information über die Sprache des Inhalts eines Elements oder den Wert eines Attributs zur Verfügung stellt.

Ausgerüstet mit diesem zusätzlichen Wissen sollten es Benutzerprogramme vermeiden können, dem Benutzer »Müll« zu präsentieren. Statt dessen können sie entweder Ressourcen ausfindig machen, die für die korrekte Präsentation des Dokuments notwendig sind, oder sie sollten, so sie die Ressourcen nicht finden können, den Benutzer wenigstens warnen, dass das Dokument unlesbar sein wird, und den Grund erklären.

12.2 Das Element A

<!ELEMENT A - - (%inline;)* -(A)       -- anchor -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
  type        %ContentType;  #IMPLIED  -- advisory content type --
  name        CDATA          #IMPLIED  -- named link end --
  href        %URI;          #IMPLIED  -- URI for linked resource --
  hreflang    %LanguageCode; #IMPLIED  -- language code --
  rel         %LinkTypes;    #IMPLIED  -- forward link types --
  rev         %LinkTypes;    #IMPLIED  -- reverse link types --
  accesskey   %Character;    #IMPLIED  -- accessibility key character --
  shape       %Shape;        rect      -- for use with client-side image maps --
  coords      %Coords;       #IMPLIED  -- for use with client-side image maps --
  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
  onfocus     %Script;       #IMPLIED  -- the element got the focus --
  onblur      %Script;       #IMPLIED  -- the element lost the focus --
  >

Start-Tag: erforderlich, End-Tag: erforderlich

Attributdefinitionen

name = cdata [CS]
Dieses Attribut bennent den aktuellen Anker, so dass er Ziel eines anderen Links sein kann. Der Wert dieses Attributs muss ein eindeutiger Ankername sein. Der Geltungsbereich dieses Namens ist das aktuelle Dokument. Beachten Sie bitte, dass dieses Attribut den gleichen Namensraum hat wie das id-Attribut.
href = uri [CT]
Dieses Attribut gibt die Position einer Web-Ressource an und definiert so einen Link zwischen dem aktuellen Element (dem Quellanker) und dem durch dieses Attribut definierten Zielanker.
hreflang = langcode [CI]
Dieses Attribut gibt die Basissprache der durch href bestimmten Ressource an. Es kann nur benutzt werden, wenn href angegeben ist.
type = content-type [CI]
Dieses Attribut gibt einen Hinweis auf den Inhaltstyp des an der Zieladresse des Links vorhandenen Inhalts. Es erlaubt Benutzerprogrammen, sich für den Einsatz eines Fallback-Meschanismus zu entscheiden, statt den Inhalt zu holen, wenn sie darüber benachrichtigt werden, dass sie Inhalt mit einem Inhaltsyp erhalten, den sie nicht unterstützen.
Autoren, die dieses Attribut benutzen, übernehmen die Verantwortung, das Risiko der Inkonsistenz mit dem an der Zieladresse des Links verfügbaren Inhalt zu behandeln.
Die aktuelle Liste der registrierten Inhaltsypen finden Sie unter [MIMETYPES].
rel = link-types [CI]
Dieses Attribut beschreibt die Beziehung vom aktuellen Dokument zu dem durch das href-Attribut angegebenen Anker. Der Wert dieses Attributs ist eine durch Leerzeichen getrennte Liste von Linktypen.
rev = link-types [CI]
Dieses Attribut wird benutzt, um einen Rückwärtslink vom durch das href-Attribut angegebenen Anker zum aktuellen Dokument zu beschreiben. Der Wert dieses Attributs ist eine durch Leerzeichen getrennte Liste von Linktypen.
charset = charset [CI]
Dieses Attribut gibt die Zeichenkodierung der durch den Link bezeichneten Ressource an. Details finden Sie in Abschnitt 5.2, »Zeichenkodierungen«.

An anderer Stelle definierte Attribute

Jedes A-Element definiert einen Anker

  1. Der Inhalt des A-Elements bestimmt die Position des Ankers.
  2. Das name-Attribut benennt den Anker, so dass er Ziel von null oder mehr Links sein kann (siehe auch Anker mit id).
  3. Das href-Attribut macht diesen Anker zum Quellanker von genau einem Link.

Autoren können auch ein A-Element erstellen, das keine Anker definiert, d.h., weder href, name noch id sind angegegeben. Werte für diese Attribute können zu einem späteren Zeitpunkt per Skript gesetzt werden.

Anmerkung der Übersetzer:

Mit dieser Möglichkeit sollten Autoren äußerst bewusst und vorsichtig umgehen und stets bedenken, dass Scripting nicht zwingend zur Verfügung steht.

Im folgenden Beispiel definiert das A-Element einen Link. Quellanker ist der Text »W3C Web-Site« und Zielanker ist »http://www.w3.org/«:

Mehr Informationen über das W3C bekommen Sie auf der 
<A href="http://www.w3.org/">Web-Site des W3C </A>.

Dieser Link weist auf die Homepage des World Wide Web Consortium. Wenn ein Benutzer den Verweis in einem Benutzerprogramm aktiviert, wird das Benutzerprogramm die Ressource, die in diesem Fall ein HTML-Dokument ist, abrufen.

Benutzerprogramme stellen Links gewöhnlich so dar, dass sie für den Benutzer augenfällig sind (unterstrichen, invertiert usw.). Die exakte Wiedergabe hängt vom Benutzerprogramm ab. Die Wiedergabe kann abhängig davon, ob der Benutzer den Link bereits besucht hat oder nicht, variieren. Eine mögliche visuelle Wiedergabe des vorigen Links könnte so aussehen:

Mehr Informationen über das W3C bekommen Sie auf der Web-Site des W3C.
                                                     ~~~~~~~~~~~~~~~~

Anmerkung der Übersetzer:

Autoren können durch Setzen der entsprechenden Attributwerte im BODY-Start-Tag oder mit Hilfe von Stylesheets vom Standardverhalten abweichende eigene Vorgaben machen. Sie sollten dabei aber stets darauf achten, dass die Benutzerfreundlichkeit erhalten bleibt. Nicht mehr oder nur schwer als Links erkennbare Links etwa sind wenig benutzerfreundlich.

Um einem Benutzerprogramm die Zeichenkodierung der Zielseite explitzit mitzuteilen, setzen Sie das charset-Attribut:

Mehr Informationen über das W3C bekommen Sie auf der 
<A href="http://www.w3.org/" charset="ISO-8859-1">Web-Site des W3C</A>.

Angenommen, wir definieren einen Anker namens »anker-one« in der Datei »one.html«.

...Text vor dem Anker...
<A name="anchor-one">Hier befindest sich anker-one.</A>
...Text nach dem Anker...

Es wird ein Anker um den Text »Hier befindest sich anker-one.« erstellt. Üblicherweise wird der Inhalt von A nicht auf spezielle Art dargestellt, wenn A lediglich einen Anker definiert.

Nachdem wir den Anker definiert haben, können wir vom gleichen oder einem anderen Dokument aus auf ihn verweisen. URIs, die Anker kennzeichnen, enthalten ein »#«-Zeichen gefolgt vom Namen des Ankers (dem Fragmentbezeichner). Hier folgen einige Beispiele für solche URIs:

Ein Link, der in der in demselben Verzeichnis wie »one.html« befindlichen Datei »two.html« definiert ist, würde folgendermaßen auf den Anker verweisen:

...Text vor dem Link...
Mehr Informationen finden Sie unter <A href="./one.html#anchor-one"> anchor one</A>.
...Text nach dem Link...

Das A-Element im folgenden Beispiel spezifiziert gleichzeitig einen Verweis (mittels href) und erstellt einen benannten Anker (mittels name):

Ich bin gerade aus dem Urlaub zurück! HIer ist ein
<A name="anchor-two"
   href="http://www.somecompany.com/People/Ian/vacation/family.png">
Foto meiner familie am See.</A>.

Dieses Beispiel enthält einen Link auf eine andere Art Web-Ressource (einem PNG-Bild). Die Aktivierung des Links sollte bewirken, dass die Bildquelle aus dem Web abgerufen wird (und, falls das System konfiguriert wurde, dies zu tun, dargestellt wird).

Anmerkung: Benutzerprogramme sollten in der Lage sein, von leeren A-Elementen erstellte Anker zu finden; manche versagen jedoch dabei. Zum Beispiel können einige Benutzerprogramme den Anker »empty-anchor« im folgenden HTML-Auszug nicht finden:

<A name="empty-anchor"></A>
<EM>...etwas HTML...</EM>
<A href="#empty-anchor">Link auf empty-anchor</A>

Anmerkung der Übersetzer:

Von der Verwendung leerer A-Elemente raten auch die Übersetzer dieser Spezifikation ab, da zum Zeitpunkt der Übersetzung gängige Browser dieses unerwünschte Verhalten noch immer zeigen.

12.2.1 Die Syntax von Ankernamen

Ein Ankername ist entweder der Wert des name- oder des id-Attributs, wenn diese im Kontext von Ankern verwendet werden. Ankernamen müssen die folgenden Regeln beachten:

Damit ist das folgende Beispiel hinsichtlich des Zeichenfolgenabgleiches korrekt und muss von Benutzerprogramm als zutreffend angesehen werden:

<P><A href="#xxx">...</A>
...mehr Dokument...
<P><A name="xxx">...</A>

UNGÜLTIGES BEISPIEL:
Das folgende Beispiel ist bezüglich der Eindeutigkeit ungültig, da beiden Namen sich nur in Groß- und Kleinschreibung unterscheiden:

<P><A name="xxx">...</A>
<P><A name="XXX">...</A>

Obwohl der folgende Auszug gültiges HTML darstellt, ist das Verhalten von Benutzerprogrammen nicht definiert; einige Benutzerprogramme könnten dies (fälschlicherweise) als zutreffend betrachten und andere nicht.

<P><A href="#xxx">...</A>
...Mehr Dokument...
<P><A name="XXX">...</A>

Ankernamen sollten auf ASCII-Zeichen beschränkt sein. Im Anhang B finden Sie weitere Informationen unter »Nicht-ASCII-Zeichen in URI-Attributwerten«.

12.2.2 Verschachtelte Links sind unzulässig

Durch das A-Element definierte Anker und Verweise dürfen nicht verschachtelt werden; ein A-Element darf kein anderes A-Elemente enthalten.

Da die DTD das Element LINK als leer definiert, können LINK-Elemente auch nicht verschachtelt werden.

12.2.3 Anker mit dem id-Attribut

Das id-Attribut kann verwendet werden, um einen Anker am Start-Tag eines beliebigen Elements (einschließlich des A-Elements) zu erstellen.

Dieses Beispiel veranschaulicht die Verwendung des id-Attributs, um einen Anker innerhalb eines H2-Elements positionieren. Auf den Anker wird durch das A-Element verwiesen.

Sie können mehr darüber in 
<A href="#section2">Abschnitt zwei</A> lesen.
...weiter unten im Dokument
<H2 id="section2">Abschnitt zwei</H2>
...weiter unten im Dokument
<P>Bitte lesen Sie Details weiter oben in 
<A href="#section2">Section Two</A> 
nach.

Das folgende Beispiel benennt einen Zielanker im dem id-Attribut:

Ich bin gerade aus dem Urlaub zurück! Hier ist ein
<A id="anchor-two">Foto meiner Famile am See.</A>.

Das id und das name-Attribut benutzen denselben Namensraum. Das bedeutet, sie können nicht beide einen Anker mit demselben Namen im selben Dokument definieren. Es ist zulässig, beide Attribute zu benutzen, um einen eindeutigen Bezeichner für die folgenden Elemente anzugeben: A, APPLET, FORM, FRAME, IFRAME, IMG, und MAP. Wenn beide Attribute bei einem Element benutzt werden, müssen ihre Werte identisch sein.

Anmerkung der Übersetzer:

Der Sinnn dieser Einschränkung wird augenfällig, wenn man folgendes Beispiel ansieht:

<p>Absatz 1:
<br><a href="#ziel">Der Link zum Ziel</a></p>
<p id="ziel">Absatz 2:
<br>... Text ...</p>
<p><a name="ziel">Absatz 3</a>:
<br>...noch mehr Text ...</p>

Wo befindet sich der Zielanker des Links, in Absatz 2 oder in Absatz 3? Er ist nicht eindeutig bestimmbar; damit ist der obige Code ungültig.

Anders hier:

<p>Absatz 1:
<br><a href="#ziel">Der Link zum Ziel</a></p>
<p>Absatz 2:
<br>... Text ...</p>
<p><a name="ziel" id="ziel">Absatz 3</a>:
<br>...noch mehr Text ...</p>

UNGÜLTIGES BEISPIEL:
Der folgende Auszug ist ungültiges HTML, da diese Attribute denselben Namen zweimal im selben Dokument deklarieren:

<A href="#a1">...</A>
...
<H1 id="a1">
...Seiten und Seiten...
<A name="a1"></A>

Das folgende Beispiel veranschaulicht, dass id und name identisch sein müssen, wenn beide im Start-Tag des Elements stehen:

<P><A name="a1" id="a1" href="#a1">...</A>

Seiner Spezifizierung in der HTML-DTD folgend kann das name-Attribut Zeichenreferenzen enthalten. Damit sind sowohl D&#xfc;rst als auch D&uuml;rst gültige Werte für ein name-Attribut. Im Unterschied dazu darf das id-Attribut keine Zeichenreferenzen enthalten.

Id oder name benutzen? Autoren sollten die folgenden Punkte beachten, wenn sie zwischen id und name für einen Ankernamen entscheiden:

12.2.4 Unerreichbare und nicht identifizierbare Ressourcen

Eine Referenz auf eine nicht verfügbare oder eine nicht identifizierbare Ressource ist ein Fehler. Wenngleich Benutzerprogramme solch einen Fehler auf unterschiedliche Weise behandeln können, empfehlen wir folgendes Verhalten:

Anmerkung der Übersetzer:

Hier sind Beispiele von zur Zeit verwendeten Browsern für

12.3 Dokumentbeziehungen: das LINK-Element

<!ELEMENT LINK - O EMPTY               -- a media-independent link -->
<!ATTLIST LINK
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
  href        %URI;          #IMPLIED  -- URI for linked resource --
  hreflang    %LanguageCode; #IMPLIED  -- language code --
  type        %ContentType;  #IMPLIED  -- advisory content type --
  rel         %LinkTypes;    #IMPLIED  -- forward link types --
  rev         %LinkTypes;    #IMPLIED  -- reverse link types --
  media       %MediaDesc;    #IMPLIED  -- for rendering on these media --
  >

Start-Tag: erforderlich, End-Tag: verboten

An anderer Stelle definierte Attribute

Dieses Element definiert einen Verweis. Anders als A kann es nur im HEAD-Abschnitt des Dokuments stehen, kann jedoch mehrfach vorkommen. Obgleich LINK keinen Inhalt besitzt, vermittelt es Informationen über die Beziehungen zweier Ressourcen, die von Benutzerprogrammen auf vielfältige Weise wiedergegeben werden können (zum Beispiel als Toolbar, durch ein aus Links bestehendes Drop-Down-Menü).

Dieses Beispiel veranschaulicht das Auftreten mehrerer LINK-Definitionen im HEAD-Abschnitt des Dokuments. Das aktuelle Dokument ist »Chapter2.html«. Das rel-Attribut gibt die Beziehung des verlinkten Dokuments zum aktuellen Dokument an. Die Werte »Index«, »Next«, und »Prev« werden in Abschnitt 6.12, »Linktypen« erklärt.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
  <TITLE>Chapter 2</TITLE>
  <LINK rel="Index" href="../index.html">
  <LINK rel="Next"  href="Chapter3.html">
  <LINK rel="Prev"  href="Chapter1.html">
</HEAD>
...Der Rest des Dokuments...

12.3.1 Vorwärts- und Rückwärts-Links

Die rel- und rev-Attribute spielen entgegengesetzte Rollen -- das rel-Attribut spezifiziert einen Vorwärts-Link und das rev-Attribut einen Rückwärts-Link.

Betrachten Sie die beiden Dokumente A und B.

Dokument A:       <LINK href="docB" rel="foo">

hat exakt die gleiche Bedeutung wie:

Dokument B:       <LINK href="docA" rev="foo">

Beide Attribute können gleichzeitig angegeben werden.

12.3.2 Links und externe Stylesheets

Wenn das LINK-Element ein externes Stylesheet mit dem Dokument verbindet, spezifiziert das type-Attribut die Stylesheet Sprache an und das media-Attribut das vorgesehene Ausgabemedium. Benutzerprogramme können Zeit sparen, indem sie nur diejenigen Stylesheets aus dem Netz laden, die für das aktuelle Gerät passend sind.

Medientypen werden in Abschnitt 14, »Stylesheets« genauer behandelt.

12.3.3 Links und Suchmaschinen

Autoren können das LINK-Element verwenden, um vielfältige Informationen für Suchmaschinen bereitzustellen, darin enthalten:

Das Beispiel unten veranschaulicht, wie Sprachangaben, Medientypen und Verweisarten kombiniert werden können, um die Behandlung des Dokuments durch Suchmaschinen zu verbessern.

In dem folgenden Beispiel benutzen wir das hreflang-Attribut, um Suchmaschinen mitzuteilen, wo die niederländische, portugiesische und arabische Version eines Dokuments zu finden sind. Beachten Sie die Verwendung des charset-Attributs für das arabische Handbuch. Beachten Sie auch die Verwendung des lang-Attributs, das darauf hinweist, dass der Wert des title-Attributs im LINK-Element, welches das französiche Handbuch kennzeichnet, in Französisch angegeben ist.

<HEAD>
<TITLE>Das Handbuch auf englisch</TITLE>
<LINK title="Das Handbuch auf niederländisch"
      type="text/html"
      rel="alternate"
      hreflang="nl"
      href="http://someplace.com/manual/dutch.html">
<LINK title="Das Handbuch auf portugiesisch"
      type="text/html"
      rel="alternate"
      hreflang="pt"
      href="http://someplace.com/manual/portuguese.html">
<LINK title="Das Handbuch auf arabisch"
      type="text/html"
      rel="alternate"
      charset="ISO-8859-6"
      hreflang="ar"
      href="http://someplace.com/manual/arabic.html">
<LINK lang="fr" title="La documentation en Fran&ccedil;ais"
      type="text/html"
      rel="alternate"
      hreflang="fr"
      href="http://someplace.com/manual/french.html">
</HEAD>

In dem folgenden Beispiel sagen wir Suchmaschinen, wo die druckbare Version des Handbuchs zu finden ist.

<HEAD>
<TITLE>Handbuch</TITLE>
<LINK media="print" title="Das Handbuch in Postscript"
      type="application/postscript"
      rel="alternate"
      href="http://someplace.com/manual/postscript.ps">
</HEAD>

In dem folgenden Beispiel sagen wir Suchmaschinen, wo die Titelseite einer Sammlung von Dokumenten zu finden ist.

<HEAD>
<TITLE>Handbuch – Seite 5</TITLE>
<LINK rel="Start" title="Die erste Seite des Handbuchs"
      type="text/html"
      href="http://someplace.com/manual/start.html">
</HEAD>

Weitere Informationen sind in den Anmerkungen in Anhang B unter »Suchmaschinen helfen, die eigene Web-Site zu indexieren« zu finden.

12.4 Pfadangaben: das BASE-Element

<!ELEMENT BASE - O EMPTY               -- Basis-URI des Dokuments-->
<!ATTLIST BASE
  href        %URI;          #REQUIRED -- URI die als Basis-URI dient --
  >

Start-Tag: erforderlich, End-Tag: verboten

Attributdefinitionen

href = uri [CT]
Dieses Attribut gibt einen absoluten URI an, der als Basis-URI für die Auflösung relativer URIs dient.

An anderer Stelle definierte Attribute

In HMTL sind Links und Referenzen zu externen Bildern, Anwendungen, formularverarbeitenden Programmen, Stylesheets und so weiter stets durch einen URI spezifiziert. Relative URIs werden gemäß einem Basis-URI aufgelöst, der aus den verschiedensten Quellen kommen kann. Das Element BASE erlaubt es Autoren, den Basis-URI eines Dokuments explizit anzugeben.

Wenn vorhanden, muss das Element BASE im HEAD-Abschnitt eines HTML-Dokuments stehen, vor jedem Element, das auf eine externe Quelle verweist. Die Pfadangabe, spezifiziert durch das BASE-Element, betrifft nur URIs in dem Dokument, in dem das Element steht.

Zum Beispiel würden die folgende BASE- und A-Deklaration:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
 <HEAD>
   <TITLE>Unsere Produkte</TITLE>
   <BASE href="http://www.aviary.com/products/intro.html">
 </HEAD>

 <BODY>
   <P>Haben Sie unsere <A href="../cages/birds.gif">Vogelkäfige</A> gesehen?
 </BODY>
</HTML>

den relativen URI »../cages/birds.gif« auflösen in:

http://www.aviary.com/cages/birds.gif

12.4.1 Relative URIs auflösen

Benutzerprogramme müssen den Basis-URI für die Auflösung relativer URIs gemäß [RFC1808], Abschnitt 3 ermitteln. Nachfolgend ist beschrieben, wie [RFC1808] speziell in HTML angewendet wird.

Benutzeragenten müssen den Basis-URI gemäß folgender Rangfolge (von höchster Priorität zu niedrigster) ermitteln:

  1. Der Basis-URI ist durch das BASE-Element gesetzt.
  2. Der Basis-URI wird durch Meta-Daten angegeben, die während einer Protokoll-Interaktion gefunden wurden, wie zum Beispiel einem HTTP-Header (siehe auch [RFC2616]).
  3. Standardmäßig ist der Basis-URI der des aktuellen Dokuments. Nicht alle HTML-Dokumente haben einen Basis-URI (zum Beispiel kann ein gültiges HTML-Dokument in einer E-Mail vorkommen und nicht durch einen URI bezeichnet werden). Solche HTML-Dokumente werden als fehlerhaft angesehen, wenn sie relative URIs enthalten und sich auf einen Standard-Basis-URI beziehen.

Zusätzlich definieren OBJECT- und APPLET-Elemente Attribute, die Vorrang vor dem durch das BASE-Element gesetzten Wert haben. Weitere Informationen über speziell für diese geltende URI-Punkte finden Sie in den Definition der Elemente.

Anmerkung. Bei Versionen von HTTP, die einen Link-Header definieren, sollten Benutzerprogramme diese Header genau wie LINK-Elemente im Dokument behandeln. HTTP 1.1, wie in [RFC2616] definiert, enthält kein Link-Header-Feld (bezieht sich auf Abschnitt 19.6.3).