Aller au contenu principal

Guide d’implémentation d’une barre de progression accessible

Introduction

Les barres de progression sont couramment utilisées pour indiquer l'avancement d'une tâche ou d'un processus. Assurer leur accessibilité est essentiel pour que tous les utilisateurs, y compris ceux utilisant des technologies d’assistance, puissent comprendre l'état d'avancement.

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 de Progression (<div> avec role="progressbar") : Représente visuellement la progression.
  • Attributs ARIA :
    • aria-valuenow : Indique la valeur actuelle de la progression.
    • aria-valuemin et aria-valuemax : Définissent les valeurs minimale et maximale de la progression.
    • aria-label ou aria-labelledby : Fournissent une description accessible de la barre de progression.

Comportement javascript accessible

  • Mise à Jour Dynamique : Mettre à jour les attributs ARIA en temps réel pour refléter l'état actuel de la progression.
  • Notifications aux Utilisateurs : Utiliser des techniques comme aria-live pour informer les utilisateurs des mises à jour importantes sans perturber leur expérience.

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 changements de progression sont annoncés de manière appropriée aux utilisateurs de technologies d’assistance.
  • Compatibilité Multi-Appareils :
    • Tester la barre de progression sur différents appareils et navigateurs pour garantir une expérience uniforme.

Recommandations supplémentaires

  • Amélioration de l’Expérience Utilisateur :
    • Ajouter des indications textuelles supplémentaires, comme un pourcentage, pour fournir plus de contexte aux utilisateurs.
    • Assurer que la barre de progression est visible et contrastée pour les utilisateurs malvoyants.

Exemple de code accessible

<div
id="progressbar"
role="progressbar"
aria-valuemin="0"
aria-valuemax="100"
aria-valuenow="0"
aria-label="Progression de la tâche"
>
<div id="progress" style="width: 0%;"></div>
</div>

<script>
function updateProgress(value) {
const progressBar = document.getElementById('progressbar');
const progress = document.getElementById('progress');
if (value >= 0 && value <= 100) {
progress.style.width = value + '%';
progressBar.setAttribute('aria-valuenow', value);
}
}

// Exemple de mise à jour de la progression
let currentValue = 0;
const interval = setInterval(() => {
if (currentValue < 100) {
currentValue += 10;
updateProgress(currentValue);
} else {
clearInterval(interval);
}
}, 1000);
</script>