Contexte
Les utilisateurs de lecteurs d'écran TalkBack peuvent naviguer dans une application de deux façons :
- Explorer au toucher : faites glisser votre doigt sur l'écran pour explorer la disposition physique des éléments.
- Navigation linéaire : balayez l'écran vers la droite ou vers la gauche pour naviguer entre chaque élément.
Les applications Android doivent être compatibles avec l'exploration tactile et la navigation linéaire. Pour la navigation linéaire, l'ordre de navigation correspond généralement à l'ordre visuel des éléments. Sinon, il doit être optimisé afin de rester logique pour les utilisateurs de lecteurs d'écran.
Par défaut, TalkBack utilise la hiérarchie des vues de l'application pour déterminer l'ordre de navigation entre les éléments pour la navigation linéaire.
Mise en œuvre
Si la hiérarchie des vues d'une application ne reflète pas la structure logique de l'application, les développeurs peuvent modifier l'ordre de navigation pour l'accessibilité en définissant des propriétés android:accessibilityTraversalBefore
ou android:accessibilityTraversalAfter
. Ces propriétés indiquent qu'un lecteur d'écran doit accéder au contenu d'une vue avant (ou après) celui d'une autre. Le lecteur d'écran détermine l'ordre dans lequel il doit parcourir les vues sans relation de type avant/après.
L'ordre de navigation pour l'accessibilité est différent de l'ordre de "sélection d'éléments de saisie" utilisé pour la navigation avec le clavier. L'ordre de navigation avec le clavier est spécifié par les propriétés android:nextFocusDown
, android:nextFocusLeft
, android:nextFocusRight
et android:nextFocusUp
.
Si vous utilisez les propriétés accessibilityTraversalBefore
et accessibilityTraversalAfter
, suivez les conseils ci-dessous pour ne pas compliquer l'ordre de navigation :
- N'utilisez ces attributs que lorsque l'ordre logique est différent de celui de la hiérarchie des vues.
- Tous les éléments qui peuvent être sélectionnés avec l'exploration tactile doivent l'être également avec la navigation linéaire.
- L'ordre de navigation doit être cohérent avec la navigation linéaire, quelle que soit la direction. Par exemple, un geste pour sélectionner l'élément "suivant" immédiatement suivi d'un geste pour sélectionner l'élément "précédent" doivent toujours entraîner le retour à l'élément d'origine.
- Les cycles ne doivent pas commencer par des attributs
accessibilityTraversalBefore
niaccessibilityTraversalAfter
, car certains éléments deviendraient inaccessibles en cas d'utilisation de la navigation linéaire.
Conception
Lors de la conception de votre application, vous devez réfléchir à la façon dont la navigation linéaire des informations présentées dans l'interface s’effectuera par les utilisateurs de lecteurs d'écran. Dans l'idéal, l'ordre de navigation correspond à celui de la présentation visuelle des informations. Toutefois, lorsque ce n'est pas possible, vous pouvez spécifier un ordre de navigation reflétant la structure logique ou l'objectif de l'interface.
En savoir plus sur la création d'une navigation facile à suivre.
Test
Pour tester manuellement l'ordre de navigation pour l'accessibilité dans une application, procédez comme suit :
- Activez TalkBack.
- Ouvrez l'application.
- Utilisez des gestes de navigation linéaire pour passer d'un élément au suivant sur l'écran.
- Vérifiez que TalkBack navigue entre les éléments à l'écran dans un ordre logique et énonce une description pertinente de chaque élément sélectionné.
- Vérifiez que TalkBack sélectionne les éléments précédents et suivants à l'écran de manière cohérente, quelle que soit la direction de la navigation.
Les outils de test automatisés d'Android peuvent détecter certains problèmes liés à l'ordre de navigation. Nous vous conseillons d'utiliser l'application Accessibility Scanner pour Android pour tester manuellement votre application sur un appareil. Vous pouvez effectuer des tests automatisés en activant la vérification de l'accessibilité dans Espresso et Robolectric.