La différence entre a et button
Publié le 2025-05-07
Un <a>
n’est pas un <button>
. Et inversement.
On pourrait croire que c’est un détail, que tant que ça marche, tout va bien. Mais en réalité, le choix entre <a>
et <button>
est
fondamental pour l’accessibilité, l’UX, et même le référencement.
Un <a>
= navigation
Tu veux envoyer l’utilisateur vers une autre page, un autre site, ou une ancre interne ?
Utilise un lien :
<a href="/contact">Contactez-nous</a>
Un <button>
= action
Tu ouvres une modale ? Tu déclenches un menu ? Tu modifies un élément dans la page sans changer d’URL ?
Utilise un bouton :
<button @click="openModal = true">Ouvrir la modale</button>
Pourquoi c’est important ?
Parce que les navigateurs, le clavier et les lecteurs d’écran attendent un comportement précis en fonction des balises utilisées.
Utiliser la mauvaise balise, c’est :
- tromper les technologies d’assistance et donc l’humain derrière,
- gâcher l’expérience utilisateur (UX),
- rendre la navigation difficile, voire impossible, pour certaines personnes.
Petit tip bonus
Tu peux parfaitement styliser un <a>
pour qu’il ressemble à un bouton, ou un <button>
pour qu’il ressemble à un lien.
Mais…
Ne triche pas avec les rôles HTML.
- Ne mets pas
role="button"
sur un lien, - ne mets pas
onclick
sur un lien sanshref
, - ne force pas un
<button>
à agir comme un lien.
Bref, ne mélange pas tout ! Chaque balise a un rôle sémantique important. Respecter ce rôle, c’est garantir un web plus accessible.
En résumé
Tu veux :
- naviguer vers une autre page : Utilise
<a>
, - déclencher une action dans la page : Utilise
<button>
Respecter les balises HTML, c’est coder pour tout le monde.