L'obtention d'un lecteur d'écran pour lire de nouveaux contenus ajoutés avec JavaScript
Quand on charge une page web, les lecteurs d'écran (comme celui qui est livré avec OS X, ou des MÂCHOIRES sur Windows) va lire le contenu de la page entière. Mais dire que votre page est dynamique, et que les utilisateurs de l'exécution d'une action, du nouveau contenu est ajouté à la page. Par souci de simplicité, dire que vous affichez un message, quelque part dans une <span>
. Comment pouvez-vous obtenir le lecteur d'écran pour lire que nouveau message?
- Les lecteurs d'écran lisent les champs de formulaire et les liens quand ils obtenir le focus. Donc, une possibilité est de mettre un point d'ancrage autour du texte et de définir le focus à ce point d'ancrage. Avec CSS, vous pouvez obtenir le lien n'est pas de montrer qu'un lien pour les utilisateurs à la recherche à la page. Mais cette méthode n'est pas très satisfaisant comme utilisateurs de lecteurs d'écran sera amené à tort à croire que c'est un lien.
- Ajouter tabindex à n'importe quel élément et il deviendra lisible, je crois (tabindex=-1 rend scriptable, mais pas tabbable). J'ai souvent l'envoyer par programme focus sur le nouveau contenu après avoir cliqué sur le lien (comme un onglet aiguilleur ou accordéon) -- mais il n'a pas à être un lien peut recevoir le focus. Lire sur la propriété tabindex.
Vous devez vous connecter pour publier un commentaire.
La WAI-ARIA spécification définit de plusieurs façons par lesquelles les lecteurs d'écran peut "regarder" un élément du DOM. La meilleure méthode est la
aria-live
attribut. Il a des modes deoff
,polite
,assertive
etrude
. Plus le niveau de l'affirmation de soi, plus il est susceptible d'interrompre ce qui est actuellement parlé par le lecteur d'écran.Ce qui suit a été testé avec NVDA sous Firefox 3 et Firefox 4.0b9:
La même chose peut être accompli avec WAI-ARIA les rôles
role="status"
etrole="alert"
. J'ai eu des rapports d'incompatibilité, mais n'ont pas été en mesure de les reproduire.aria-live
sontoff
,polite
etassertive
. Si quelqu'un est curieux de connaître les valeurs par défaut pour les rôles associés à vivre régions ou même veut juste voir ce qu'ils font, j'ai écrit un petit terrain de jeu qui montre en direct les régions en action: schne324.github.io/live-région-aire de jeuxIci est un modèle adapté de l'exemple du monde réel -- ce niveau d'annotation a déjà été converti à partir d'une liste non ordonnée avec des liens dans un menu de choix via JS. Le vrai code est beaucoup plus complexe et ne peut évidemment pas être inclus dans son intégralité, donc n'oubliez pas ceci devra être repensée pour une utilisation en production. Pour le menu select pour être rendues accessibles au clavier, nous avons enregistré la pression de touche & événements onchange et tiré de l'appel AJAX lorsque les utilisateurs onglets hors de la liste (méfiez-vous de navigateur différences dans le calendrier de l'événement onchange). Ce fut une grave PITA à rendre accessible, mais c'EST possible.