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>
La meilleure solution à ce problème est de consulter les spécifications officielles:
aller à la spécification: https://www.w3.org/TR/html5/
rechercher "a
element": 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'élément a
:
- 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'attribut alt
n'est pas autorisé sur l'élément a
.
Vous remarquerez également que l’attribut src
n’est pas autorisé non plus.
Par en validant votre HTML , de telles erreurs vous sont signalées.
Notez que ce qui précède s’applique à HTML5, qui est norme HTML du W3C 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'élément a
peut avoir un autre attribut en HTML 5.1: rev
.
Vous pouvez trouver toutes les spécifications HTML (y compris la norme la plus récente) sur W3C’s HTML Statut actuel .
Pour les ancres, vous devriez utiliser le titre à la place. alt n'est pas valide atribute de a. Voir http://w3schools.com/tags/tag_a.asp
"title" est largement implémenté dans les navigateurs. Essayer:
<a href="#" title="hello">asf</a>
Non, un attribut alt
(ce serait un attribut et non une balise) n'est pas autorisé pour un élément a
dans une spécification ou un brouillon HTML. Et il ne semble pas non plus être reconnu par aucun navigateur.
La raison pour laquelle les gens essaient de l’utiliser est donc un peu mystérieuse, mais l’explication probable est qu’ils le font en mode analogique avec l’attribut alt
pour les éléments img
, s’attendant à voir une "info-bulle" au passage de la souris. Il y a deux problèmes avec cela. Tout d'abord, chaque élément possède ses propres attributs, définis dans les spécifications de chaque élément. Deuxièmement, le rendu "infobulle" des attributs alt
dans certains navigateurs anciens est/était une bizarrerie ou même un bogue, plutôt que quelque chose d’attendu; l'attribut alt
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 plutôt l'attribut title
ou, bien mieux encore, Google pour "info-bulles CSS" et utilisez les info-bulles CSS de votre choix (elles peuvent être qualifiées de "calques" masqués qui deviennent visibles sur passer la souris).
Vous devez utiliser l'attribut title pour les balises d'ancrage si vous souhaitez appliquer les 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 pas 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
Sinon, 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 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
Si vous souhaitez toutefois décrire une balise d'ancrage, il est généralement approprié d'utiliser la balise rel ou rev, mais que vous soyez 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 entre la page liée et la page actuelle. (par exemple, si la page liée est la suivante dans une série logique, ce sera rel = next)
L'attribut rev est essentiellement la relation inverse de l'attribut rel. Rev décrit la relation entre la page en cours 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 cela a fonctionné!
L'attribut title donne le titre du lien. À une exception près, c'est purement consultatif. La valeur est text. L'exception concerne les liens de feuille de style, où l'attribut title définit d'autres ensembles de feuilles de style.
<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito Dell'Istituto Ancel Keys">A.K.</a>