Élément <dialog>
accessible en HTML
Principes généraux
Pour rendre un élément <dialog>
accessible, il faut respecter ces principes :
- Fournir un contenu clair et structuré
- Assurer la navigation au clavier
- Gérer correctement le focus
- Utiliser les attributs ARIA appropriés
- Offrir des moyens de fermer la boîte de dialogue
Exemple typique
<dialog id="ma-boite-dialogue">
<h2>Titre de la boîte de dialogue</h2>
<p>Contenu de la boîte de dialogue</p>
<button autofocus>OK</button>
<button>Annuler</button>
</dialog>
Utilisation avancée
Ouverture et fermeture programmatique
<button id="ouvrir-dialogue">Ouvrir la boîte de dialogue</button>
<dialog id="ma-boite-dialogue">
<h2>Confirmation</h2>
<p>Êtes-vous sûr de vouloir continuer ?</p>
<button id="confirmer">Confirmer</button>
<button id="annuler">Annuler</button>
</dialog>
<script>
const dialog = document.getElementById('ma-boite-dialogue');
const ouvrirBtn = document.getElementById('ouvrir-dialogue');
const confirmerBtn = document.getElementById('confirmer');
const annulerBtn = document.getElementById('annuler');
ouvrirBtn.addEventListener('click', () => {
dialog.showModal();
});
confirmerBtn.addEventListener('click', () => {
dialog.close('confirm');
});
annulerBtn.addEventListener('click', () => {
dialog.close('cancel');
});
</script>
Gestion du focus
dialog.addEventListener('close', () => {
ouvrirBtn.focus();
});
Bonnes pratiques
- Utilisez
role="dialog"
ourole="alertdialog"
si le navigateur ne supporte pas nativement<dialog>
- Assurez-vous que le focus est correctement géré à l'ouverture et à la fermeture
- Fournissez toujours un moyen de fermer la boîte de dialogue (bouton de fermeture, touche Échap)
- Utilisez
autofocus
sur le premier élément interactif de la boîte de dialogue
Accessibilité avancée
Utilisation de aria-labelledby
et aria-describedby
<dialog id="ma-boite-dialogue" aria-labelledby="dialogue-titre" aria-describedby="dialogue-description">
<h2 id="dialogue-titre">Confirmation de commande</h2>
<p id="dialogue-description">Votre commande est prête à être validée. Veuillez confirmer ou annuler.</p>
<button>Confirmer</button>
<button>Annuler</button>
</dialog>
Gestion de l'arrière-plan
dialog::backdrop {
background-color: rgba(0, 0, 0, 0.5);
}
Checklist pour l'audit d'accessibilité des éléments Dialog
- Vérification de la prise en charge du navigateur et utilisation de polyfills si nécessaire
- Présence d'un titre clair (
<h2>
ou équivalent) - Gestion correcte du focus à l'ouverture et à la fermeture
- Possibilité de fermer la boîte de dialogue avec la touche Échap
- Utilisation appropriée des attributs ARIA (
aria-labelledby
,aria-describedby
) - Contraste suffisant entre le contenu et l'arrière-plan
- Vérification de la navigation au clavier à l'intérieur de la boîte de dialogue
- Test avec des lecteurs d'écran
Conformité RGAA
- Vérification de la conformité avec les critères du RGAA relatifs aux contenus additionnels apparaissant au survol ou à la prise de focus
- Respect des niveaux de conformité visés (A, AA, AAA)
- Documentation des non-conformités éventuelles et des solutions proposées
Outils et méthodes
- Test avec différents navigateurs et technologies d'assistance
- Utilisation d'outils d'inspection d'accessibilité
- Tests manuels de navigation au clavier
- Vérification du comportement sur différents appareils (desktop, mobile, tablette)
En suivant ces recommandations, vous vous assurez que vos éléments <dialog>
sont accessibles et conformes aux normes WCAG et RGAA, offrant ainsi une expérience utilisateur inclusive pour tous, y compris les personnes utilisant des technologies d'assistance.