2010-11-19 6 views
1

J'essaye de rendre ma pagination Ajax-compatible 508 (accessible en utilisant JAWS version 9). J'ai une cellule d'en-tête de table avec un lien qui exécute une requête ajax jQuery onclick avec un rappel pour mettre à jour la table. J'ai eu du succès en utilisant une image "spacer" dans le corps du lien avec un texte alternatif transmettant des informations de tri aux utilisateurs de JAWS (note: les info-bulles ne sont pas lues par défaut par JAWS). Cependant, lorsqu'un utilisateur JAWS navigue sur le lien (en utilisant le haut et les touches fléchées) et presses ESPACE pour parapher le lien événement onclick, j'ai deux problèmes:Accessible, 504 conforme Ajax Pagination

  1. aucune information est transmise à l'utilisateur JAWS indiquant que le contenu de la table a été mis à jour,
  2. lorsque le contenu est mis à jour, le lien que l'utilisateur JAWS vient d'exécuter est relu, mais il relit le texte alt avant que la table ne soit mise à jour, l'utilisateur doit avancer vers le Ensuite, revenez au lien pour que JAWS puisse lire le texte alt mis à jour.

Les conseils de toute personne expérimentée dans la mise en œuvre d'une pagination Ajax accessible seraient grandement appréciés! Ma table code de cellule d'en-tête suit:

<th title="Sorted column, toggle sort from Ascending to Descending" controller="xxxManagement" id="xxxName" scope="col" class="sortable sorted asc" > 
    <a href="/app/xxxManagement/listXXX?max=20&sort=name&order=desc" onclick="toggleLoadingAnimation();jQuery.ajax({type:'POST',data:{'controller': 'xxxManagement','max': '20','sort': 'name','order': 'desc'}, url:'/app/xxxManagement/listXXX',success:function(data,textStatus){jQuery('#xxxList').html(data);},error:function(XMLHttpRequest,textStatus,errorThrown){},complete:function(XMLHttpRequest,textStatus){toggleLoadingAnimation()}});return false;" title="Sorted column, toggle sort from Ascending to Descending"> 
     Name 
     <img src='/app/images/pixel.gif' alt='Sorted column, toggle sort from Ascending to Descending' /> 
    </a> 
</th> 

Répondre

1

Malheureusement je pense que la réponse courte est que vous n'avez pas de chance. J'ai souvent des problèmes avec Jaws qui me dit quand le contenu est mis à jour, et parfois il faut un rafraîchissement de l'écran pour mettre à jour le tampon virtuel de Jaws. Jaws 9 est également une version un peu obsolète, mais vous devrez peut-être y faire face si vous écrivez des applications internes pour un service qui a standardisé cette version. Je suggérerais deux choses. La première option est de télécharger la version 12 de mâchoires qui a été libérée le mois dernier. Si cela résout votre problème peut-être pourriez-vous justifier une mise à niveau? La deuxième option est de regarder dans WAI-ARIA Cela devrait vous permettre de marquer vos tables comme des régions actives et d'avoir des mises à jour automatiquement annoncées. Je n'ai aucune expérience avec ceci mais cela peut fonctionner. Je ne sais pas si Jaws 9 supporte WAI-ARIA mais les mâchoires 10 semblent faire du bon travail. Voir this blog entry pour une comparaison du support du lecteur d'écran pour WAI-ARIA. Vous pouvez toujours faire les tests listés avec Jaws 9 pour avoir une idée de ce qu'est le support de WAI-ARIA.

+0

merci encore de partager avec moi. Travailler avec Jaws est une nouveauté pour moi, donc je ne sais jamais si je suis confronté à une limitation de JAWS ou si je n'ai pas le savoir-faire pour implémenter certaines fonctionnalités d'accessibilité idéales. Je vais télécharger Jaws 12 et tester comme vous l'avez suggéré (Jaws 9 est en effet notre version client). FYI - Jaws 9 ne supporte pas WAI-ARIA. –

0

Cela pourrait ne pas répondre à votre question, mais si vous implémentez avec progressive enhancement, je pense que cela résoudrait le problème. En d'autres termes, faites fonctionner la navigation de votre page via des liens traditionnels (non-ajax), puis reliez les événements de clic ajax sur ces liens. Si vous utilisez un navigateur ou un lecteur d'écran autre que JS, il vous suffit de naviguer jusqu'à la page suivante. Si vous utilisez un navigateur moderne, il va donner l'expérience ajax. L'accessibilité est construite sans perdre l'expérience ajax.

+1

Bonjour Matt, merci d'avoir pris le temps de partager vos astuces. Nous sommes en phase de test d'acceptation des utilisateurs maintenant, et notre implémentation a été dictée par les exigences des clients (doit supporter IE7 et IE8, doit être conforme à la norme 508, et ... doit être une application ajax super géniale!), Il est donc trop tard Progressive Enhancement (j'ai lu le lien cependant, et bien qu'intéressant, je pense en pratique serait trop cher à implémenter si la fonctionnalité non-js n'était pas appelée dans les conditions ... js/ajax n'est pas forcément non accessible, mais cela ne rend pas les choses plus difficiles). –