L' <a>
élément nchor est simplement une ancre vers ou depuis un contenu. À l'origine, la spécification HTML autorisait les ancres nommées ( <a name="foo">
) et les ancres liées ( <a href="#foo">
).
Le format d'ancrage nommé est moins couramment utilisé, car l'identificateur de fragment est maintenant utilisé pour spécifier un [id]
attribut (bien que pour la compatibilité ascendante, vous puissiez toujours spécifier des [name]
attributs). Un <a>
élément sans [href]
attribut est toujours valide .
En ce qui concerne la sémantique et le style, l' <a>
élément n'est pas un lien ( :link
) à moins qu'il n'ait un [href]
attribut. Un effet secondaire de ceci est qu'un <a>
élément sans [href]
ne sera pas dans l'ordre de tabulation par défaut.
La vraie question est de savoir si l' <a>
élément seul est une représentation appropriée de a <button>
. Sur le plan sémantique, il existe une nette différence entre a link
et a button
.
Un bouton est quelque chose qui, lorsqu'il est cliqué, provoque une action.
Un lien est un bouton qui provoque une modification de la navigation dans le document courant. La navigation qui se produit peut être le déplacement dans le document dans le cas des identificateurs de fragment ( #foo
) ou le déplacement vers un nouveau document dans le cas des urls ( /bar
).
Les liens étant un type spécial de bouton, leurs actions ont souvent été remplacées pour exécuter des fonctions alternatives. Continuer à utiliser une ancre comme bouton est acceptable du point de vue de la cohérence, bien que ce ne soit pas tout à fait précis sémantiquement.
Si vous êtes préoccupé par la sémantique et l'accessibilité de l'utilisation d'un <a>
élément (ou <span>
, ou <div>
) comme bouton, vous devez ajouter les attributs suivants:
<a role="button" tabindex="0" ...>...</a>
Le rôle de bouton indique à l'utilisateur que l'élément particulier est traité comme un bouton comme un remplacement pour la sémantique que l'élément sous-jacent peut avoir.
Pour les éléments <span>
et <div>
, vous pouvez ajouter des écouteurs de clé JavaScript pour Spaceou Enterpour déclencher l' click
événement. <a href>
et les <button>
éléments le font par défaut, mais pas les éléments sans bouton. Parfois, il est plus logique de lier le click
déclencheur à une clé différente. Par exemple, un bouton "Aide" dans une application Web peut être lié à F1.