Ist es richtig, das Alt-Tag für einen Ankerlink zu verwenden?
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
Ist es richtig, das Alt-Tag für einen Ankerlink zu verwenden?
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
Antworten:
Solche Dinge lassen sich am besten anhand der offiziellen Spezifikation beantworten:
Gehen Sie zur Spezifikation: https://www.w3.org/TR/html5/
Suche nach " a
Element": https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element
Aktivieren Sie "Inhaltsattribute", in dem alle zulässigen Attribute für das a
Element aufgelistet sind :
- Globale Attribute
href
target
download
rel
hreflang
type
Überprüfen Sie die verknüpften "globalen Attribute": https://www.w3.org/TR/html5/dom.html#global-attributes
Wie Sie sehen werden, ist das alt
Attribut für das a
Element nicht zulässig .
Außerdem würden Sie feststellen, dass das src
Attribut ebenfalls nicht zulässig ist.
Durch die Validierung Ihres HTML- Codes werden Ihnen solche Fehler gemeldet.
Beachten Sie, dass dies für HTML5 gilt , den HTML-Standard von W3C aus dem Jahr 2014 . Im Jahr 2016 wurde HTML 5.1 zum nächsten HTML-Standard . Das Finden der zulässigen Attribute funktioniert auf die gleiche Weise. Sie werden sehen, dass das a
Element in HTML 5.1 ein anderes Attribut haben kann : rev
.
Sie finden alle HTML-Spezifikationen (einschließlich des neuesten Standards) im aktuellen HTML-Status von W3C .
title
.
Für Anker sollten Sie stattdessen title verwenden. alt ist nicht gültig atribute von a. Siehe http://w3schools.com/tags/tag_a.asp
"title" ist in Browsern weit verbreitet. Versuchen:
<a href="#" title="hello">asf</a>
title
der HTML5-Spezifikation falsch ist (obwohl die meisten Browser sie implementieren werden).
Nein, ein alt
Attribut (es wäre ein Attribut, kein Tag) ist für ein a
Element in einer HTML-Spezifikation oder einem HTML-Entwurf nicht zulässig . Und es scheint auch von keinem Browser als bedeutungsvoll erkannt zu werden.
Es ist ein bisschen rätselhaft, warum die Leute versuchen, es zu verwenden, aber die wahrscheinliche Erklärung ist, dass sie dies analog zum alt
Attribut für img
Elemente tun und erwarten, dass beim Mouseover ein „Tooltip“ angezeigt wird. Daran sind zwei Dinge falsch. Erstens hat jedes Element eigene Attribute, die in den Spezifikationen für jedes Element definiert sind. Zweitens alt
ist / war das „Tooltip“ -Rendering von Attributen in einigen alten Browsern eher eine Eigenart oder sogar ein Fehler als etwas, das zu erwarten war. Das alt
Attribut soll dem Benutzer genau dann angezeigt werden, wenn das Bild selbst aus irgendeinem Grund nicht angezeigt wird.
Um einen "Tooltip" zu erstellen, verwenden Sie title
stattdessen das Attribut oder, viel besser, Google für "CSS-Tooltips" und verwenden Sie CSS-basierte Tooltips Ihrer Wahl (sie können als versteckte "Ebenen" charakterisiert werden, die beim Mouseover sichtbar werden).
Sie sollten das title-Attribut für Ankertags verwenden, wenn Sie beschreibende Informationen ähnlich wie für ein alt-Attribut anwenden möchten. Das title-Attribut ist für Ankertags gültig und dient keinem anderen Zweck als der Bereitstellung von Informationen über die verknüpfte Seite.
W3C empfiehlt, dass der Wert des title-Attributs mit dem Wert des Titels des verknüpften Dokuments übereinstimmt, dies ist jedoch nicht obligatorisch.
http://www.w3.org/MarkUp/1995-archive/Elements/A.html
Alternativ und wahrscheinlich vorteilhafter können Sie das ARIA-Eingabehilfenattribut verwenden aria-label
(nicht zu verwechseln mit aria-labeledby
). aria-label
hat die gleiche Funktion wie das alt-Attribut für Bilder, jedoch für Nicht-Bildelemente, und enthält ein gewisses Maß an Optimierung, da Sie für Bildschirmleser optimieren.
http://www.w3.org/WAI/GL/wiki/Using_aria-label_to_provide_labels_for_objects
Wenn Sie ein Ankertag beschreiben möchten, ist es normalerweise angebracht, das rel- oder rev-Tag zu verwenden, aber Sie sind auf bestimmte Werte beschränkt. Sie sollten nicht für lesbare Beschreibungen verwendet werden.
Rel dient dazu, die Beziehung der verknüpften Seite zur aktuellen Seite zu beschreiben. (zB wenn die verlinkte Seite als nächstes in einer logischen Reihe ist, wäre es rel = next)
Das rev-Attribut ist im Wesentlichen die umgekehrte Beziehung des rel-Attributs. Rev. beschreibt die Beziehung der aktuellen Seite zur verknüpften Seite.
Eine Liste der gültigen Werte finden Sie hier: http://microformats.org/wiki/existing-rel-values
Ich habe Titel verwendet und es hat funktioniert!
Das title-Attribut gibt den Titel des Links an. Mit einer Ausnahme ist es rein beratend. Der Wert ist Text. Die Ausnahme bilden Stylesheet-Links, bei denen das title-Attribut alternative Stylesheet-Sätze definiert.
<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito dell'Istituto Ancel Keys">A.K.</a>
Ich bin überrascht zu sehen, dass alle Antworten, die besagen, dass die Verwendung von alt
Attributen im a
Tag ungültig ist . Das ist absolut falsch.
HTML blockiert Sie nicht mit irgendwelchen Attributen:
<a your-custom-attribute="value">Any attribute can be used</a>
Wenn Sie fragen, ob es semantisch korrekt ist, ein alt
Attribut zu verwenden , a
werde ich sagen:
NEIN. Es wird verwendet, um die Bildbeschreibung festzulegen <img alt="image description" />
.
Es kommt darauf an, was Sie mit den Attributen machen würden. Hier ist ein Beispiel:
a::after {
content: attr(color); /* attr can be used as content */
display: block;
color: white;
background-color: blue;
background-color: attr(color); /* This won't work */
display: none;
}
a:hover::after {
display: block;
}
[hidden] {
display: none;
}
<a href="#" color="red">Hover me!</a>
<a href="#" color="red" hidden>In some cases, it can be used to hide it!</a>
Wenn Sie erneut fragen, ob die Verwendung eines benutzerdefinierten Attributs semantisch korrekt ist, sage ich:
Verwenden Sie data-*
Attribute für die semantische Verwendung.
Hoppla, die Frage wurde 2013 gestellt.
title
Attribut nicht in dena
globalen Attributen. Ist es richtig, ein solchestitle
Attribut in den zu verwendena
oder nicht?