8
votes

Comment prévenir le paramètre NVDA Focus automatiquement sur l'élément HTML en dernier usage?

Nous mettons en œuvre l'accessibilité sur nos applications Web existantes. Nous travaillons avec Firefox et NVDA. Peu d'introduction sur nos applications Web: Nos applications Web sont des formulaires avec plusieurs étapes (étape 1, étape 2: ce sont des pages Web différentes). Chaque étape a un hyperlien précédent / suivant pour aller à l'étape précédente ou suivante. À l'étape finale, les utilisateurs voient leurs entrées et peuvent soumettre les formulaires ou revenir aux valeurs de changement. Lorsque l'utilisateur accède à une page précédente pour modifier certaines valeurs, nous mettons un #anchor afin que la page soit à cette ancre. Ensuite, à JQuery, je me suis concentré sur le premier élément concentrable après cette ancre.

Cela fonctionne bien, sauf lorsque NVDA est actif:

Lorsque NVDA est actif, la NVDA oblige la mise au point sur l'élément HTML utilisé lors de la dernière utilisation lorsque l'utilisateur était sur cette page la dernière fois. Dans mon cas, la NVDA a mis l'accent sur le prochain lien hypertexte. NVDA remplace mon objectif que j'ai mis dans ma fonction $ (document) .Readady ().

J'ai essayé de changer de presque tous les paramètres de NVDA, mais je n'ai pas trouvé celui qui corrige mon problème.

J'ai fouillé sur le Web pour n'importe quel attribut ARIA, je pourrais définir pour dire à la NVDA, je vais gérer la focus et la navigation, mais je n'ai rien trouvé là-bas.

Quelqu'un sache comment résoudre ce problème?

Merci beaucoup!


3 commentaires

Je ne suivons pas le "Nous mettons un #anchor pour que la page soit à cette ancre". Voulez-vous dire que vous pouvez modifier votre nom et revenir à ce contrôle, ou voulez-vous dire que la touche PREV est de se concentrer sur le formulaire, de sorte que les gens n'ont pas besoin de naviguer dans le reste de la page?


Nous mettons une ancre au sommet d'une section. En dernier étape, l'utilisateur peut décider de modifier leur entrée d'une section afin de cliquer sur le bouton Modifier, nous le ramenons à cette étape et l'ancre la positionner à cette section de l'étape. Exemple: à l'étape 1, vous remplissez des informations sur vous, votre conjoint et vos enfants. À la dernière étape, vous voulez changer votre anniversaire de conjoint. Vous cliquez donc sur Modifier à côté de l'information du conjoint, l'application vous ramène à l'étape 1 et une position d'ancrage que vous avez à la section du conjoint. Je ne sais pas si je suis assez clair. Aimerait vraiment pouvoir poster un exemple.


Vous pouvez modifier votre message et votre code postal. Juste puoster un extrait ou quelque chose comme ça.


3 Réponses :


0
votes

Dans mon cas, la NVDA a mis l'accent sur le prochain lien hypertexte. NVDA remplace mon objectif que j'ai mis dans ma fonction $ (document) .Readady ().

Ce sonne comme si une personne clique sur précédent, vous faites xxx

que je pense que cela pourrait être un problème liée au navigateur. Certains se souviennent d'où vous étiez après avoir quitté une page. Puisque vous ne rechargez pas la page, je ne fais que retourner, prêt () ne tire pas à nouveau. La question de Fabrication Ready () Fire à nouveau, a déjà été posée , qui peut être quelques-unes aider. Mais vous pouvez avoir des problèmes Déterminer si l'utilisateur a appuyé sur , étant donné mon hypothèse.

J'ai fouillé sur le Web pour n'importe quel attribut ARIA, je pourrais définir pour dire à la NVDA, je vais gérer la focus et la navigation, mais je n'ai rien trouvé là-bas.

Aria ne fera rien ici. Le problème est de savoir comment vous naviguer dans votre application.

La seule façon de résoudre ce problème est de ré-ingénieur l'application. Si vous comptez sur historique.go (-1) , vous devrez faire une nouvelle fonction qui imite prête () .


1 commentaires

Je ne fais pas d'histoire.o (-1). C'est une application ASP.NET et chaque action effectue un publication. Nous effectuons uniquement la validation du côté serveur (... je sais;) Stuff gouvernement, ancien architecture). Donc, le document.Ready () est en train de tirer!



2
votes

Je sais que cela a quelques mois, mais je viens de courir dans le même problème et après une longue nuit de frapper ma tête contre le bureau, j'ai demandé sur la NVDA Bug Tracker et il s'avère que ce comportement étrange est en fait par design (!)

Quoi qu'il en soit, j'ai trouvé une solution qui fonctionne pour moi, de toute façon, avec Firefox 32 et NVDA 2014.2 P>

$(document).ready(function() {
        function resetTab(){
            document.getElementById('toplink').focus();
        }
        window.setTimeout(resetTab, 250);
    });


0 commentaires