Aller au contenu principal

Guide d’implémentation d’un bouton accessible

Introduction

Les boutons sont des éléments interactifs essentiels dans les interfaces utilisateur. Assurer leur accessibilité garantit que tous les utilisateurs, y compris ceux utilisant des technologies d’assistance, peuvent interagir efficacement avec eux.

Description technique

Structure HTML accessible

La structure HTML doit être sémantique et inclure des attributs ARIA pour une meilleure compréhension par les technologies d’assistance.

  • Élément bouton (<button> ou <a role="button">) : Utilisé pour déclencher une action.
  • Attributs ARIA :
    • aria-label : Fournit une description accessible si le texte du bouton n'est pas suffisamment explicite.
    • role="button" : Utilisé sur des éléments non-boutons (comme <a>) pour indiquer leur fonction de bouton.

Comportement javascript accessible

  • Gestion des Événements : Assurer que les événements associés au bouton sont accessibles via le clavier (par exemple, en écoutant les événements click et keydown).
  • Focus Visible : Assurer qu'un indicateur de focus est présent lorsque le bouton est sélectionné via le clavier.

Bonnes pratiques d’accessibilité

  • Respect des standards :
    • Suivre les directives WCAG 2.1, notamment le critère 4.1.2 sur les propriétés et états du nom.
  • Messages visuels et auditifs :
    • Assurer que les actions déclenchées par le bouton fournissent des retours appropriés aux utilisateurs, visibles et audibles pour les technologies d’assistance.
  • Compatibilité multi-appareils :
    • Tester le bouton sur différents appareils et navigateurs pour garantir une expérience uniforme.

Recommandations supplémentaires

  • Amélioration de l’expérience utilisateur :
    • Utiliser des styles visuels clairs pour indiquer l'état du bouton (par exemple, actif, désactivé, survolé).
    • Fournir des retours immédiats lorsque le bouton est activé, comme un changement de texte ou une animation subtile.

Exemple de code accessible

<button id="accessibleButton" aria-label="Enregistrer les modifications">Enregistrer</button>

<script>
const button = document.getElementById('accessibleButton');

button.addEventListener('click', () => {
// Logique à exécuter lors du clic sur le bouton
alert('Modifications enregistrées avec succès.');
});

button.addEventListener('keydown', (event) => {
if (event.key === 'Enter' || event.key === ' ') {
// Empêcher le défilement par défaut lors de l'appui sur la barre d'espace
event.preventDefault();
// Simuler un clic lorsque la touche Entrée ou Espace est pressée
button.click();
}
});
</script>