Est-il correct d'utiliser la balise alt pour un lien d'ancrage, quelque chose comme
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
Est-il correct d'utiliser la balise alt pour un lien d'ancrage, quelque chose comme
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
Réponses:
La meilleure réponse à ces choses est de regarder la spécification officielle:
aller à la spécification: https://www.w3.org/TR/html5/
recherchez " a
élément": https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element
cochez "Attributs de contenu", qui répertorie tous les attributs autorisés pour l' a
élément:
- Attributs globaux
href
target
download
rel
hreflang
type
vérifiez les "attributs globaux" liés: https://www.w3.org/TR/html5/dom.html#global-attributes
Comme vous le verrez, l' alt
attribut n'est pas autorisé sur l' a
élément.
Vous remarquerez également que l' src
attribut n'est pas autorisé non plus.
En validant votre HTML , des erreurs comme celles-ci vous sont signalées.
Notez que ce qui précède concerne HTML5 , qui est la norme HTML du W3C à partir de 2014 . En 2016, HTML 5.1 est devenu le prochain standard HTML . La recherche des attributs autorisés fonctionne de la même manière. Vous verrez que l' a
élément peut avoir un autre attribut HTML 5.1: rev
.
Vous pouvez trouver toutes les spécifications HTML (y compris la dernière norme) sur l' état actuel du HTML du W3C .
title
.
Pour les ancres, vous devez utiliser le titre à la place. alt n'est pas un attribut valide d'un. Voir http://w3schools.com/tags/tag_a.asp
"title" est largement implémenté dans les navigateurs. Essayer:
<a href="#" title="hello">asf</a>
title
est incorrect selon la spécification HTML5 (même si la plupart des navigateurs l'implémenteront).
Non, un alt
attribut (ce serait un attribut, pas une balise) n'est autorisé pour un a
élément dans aucune spécification HTML ou brouillon. Et il ne semble pas non plus reconnu par aucun navigateur comme ayant une signification.
C'est un peu mystérieux pourquoi les gens essaient de l'utiliser, mais l'explication probable est qu'ils le font en analogique avec un alt
attribut pour les img
éléments, s'attendant à voir une «info-bulle» au survol de la souris. Il y a deux choses qui ne vont pas avec cela. Tout d'abord, chaque élément a ses propres attributs, définis dans les spécifications de chaque élément. Deuxièmement, le rendu «info-bulle» des alt
attributs dans certains anciens navigateurs est / était une bizarrerie ou même un bogue, plutôt que quelque chose à prévoir; l' alt
attribut est censé être présenté à l'utilisateur si et seulement si l'image elle-même n'est pas présentée, pour une raison quelconque.
Pour créer une «info-bulle», utilisez title
plutôt l' attribut ou, mieux, Google pour les «info-bulles CSS» et utilisez les info-bulles basées sur CSS de votre préférence (elles peuvent être caractérisées comme des «couches» cachées qui deviennent visibles au survol de la souris).
Vous devez utiliser l'attribut title pour les balises d'ancrage si vous souhaitez appliquer des informations descriptives de la même manière que vous le feriez pour un attribut alt. L'attribut title est valide sur les balises d'ancrage et n'a d'autre objectif que de fournir des informations sur la page liée.
Le W3C recommande que la valeur de l'attribut title corresponde à la valeur du titre du document lié, mais ce n'est pas obligatoire.
http://www.w3.org/MarkUp/1995-archive/Elements/A.html
Alternativement, et probablement plus avantageux, vous pouvez utiliser l'attribut d'accessibilité ARIA aria-label
(à ne pas confondre avec aria-labeledby
). aria-label
remplit la même fonction que l'attribut alt pour les images, mais pour les éléments non-image et inclut une certaine mesure d'optimisation depuis votre optimisation pour les lecteurs d'écran.
http://www.w3.org/WAI/GL/wiki/Using_aria-label_to_provide_labels_for_objects
Cependant, si vous souhaitez décrire une balise d'ancrage, il est généralement approprié d'utiliser la balise rel ou rev, mais vous êtes limité à des valeurs spécifiques, elles ne doivent pas être utilisées pour des descriptions lisibles par l'homme.
Rel sert à décrire la relation de la page liée à la page courante. (par exemple, si la page liée est la suivante dans une série logique, ce serait rel = next)
L'attribut rev est essentiellement la relation inverse de l'attribut rel. Rev décrit la relation entre la page actuelle et la page liée.
Vous pouvez trouver une liste de valeurs valides ici: http://microformats.org/wiki/existing-rel-values
J'ai utilisé le titre et ça a marché!
L'attribut title donne le titre du lien. À une exception près, il est purement consultatif. La valeur est du texte. L'exception concerne les liens de feuilles de style, où l'attribut title définit des jeux de feuilles de style alternatifs.
<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito dell'Istituto Ancel Keys">A.K.</a>
Je suis surpris de voir toutes les réponses indiquant que l'utilisation de l' alt
attribut dans la a
balise n'est pas valide . C'est absolument faux.
Html ne vous bloque en utilisant aucun attribut:
<a your-custom-attribute="value">Any attribute can be used</a>
Si vous demandez s'il est sémantiquement correct d'utiliser l' alt
attribut, a
je dirai:
NON. Il est utilisé pour définir la description de l'image <img alt="image description" />
.
C'est une question de ce que vous feriez avec les attributs. Voici un exemple:
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>
Encore une fois, si vous demandez s'il est sémantiquement correct d'utiliser un attribut personnalisé, je dirai:
Non. Utilisez des data-*
attributs pour son utilisation sémantique.
Oups, la question a été posée en 2013.
title
attribut dans lesa
attributs globaux est-il correct d'utiliser un teltitle
attribut dans lea
ou non?