Baggrund
En person, der bruger TalkBack-skærmlæseren, kan navigere i en app på to måder:
- Udforsk ved berøring: Træk en enkelt finger over skærmen for at udforske elementernes fysiske opstilling.
- Lineær navigation: Stryg til højre og venstre for at gå frem og tilbage ét element ad gangen.
Android-apps bør understøtte både udforskning ved berøring og lineær navigation. Passagerækkefølge under lineær navigation bør generelt matche den visuelle rækkefølge, eller passagerækkefølgen bør optimeres på en anden måde, der sørger for, at bestillingen forbliver logisk for brugere af skærmlæsere.
Som standard bruger TalkBack appens visningshierarki til at bestemme passagerækkefølgen af elementer under lineær navigation.
Implementering
I tilfælde, hvor en apps visningshierarki ikke afspejler appens logiske struktur, kan udviklere påvirke tilgængelighedspassagen ved at indstille android:accessibilityTraversalBefore
eller android:accessibilityTraversalAfter
. Disse egenskaber indikerer, at en skærmlæser skal gå til indholdet for en visning før (eller efter) indholdet for en anden. Visninger uden før/efter-relationer passeres i en rækkefølge, der bestemmes af skærmlæseren.
Passagerækkefølgen for tilgængelighed er anderledes end rækkefølgen for "inputfokus", der bruges til tastaturnavigation. Tastaturnavigationens rækkefølge er specificeret af android:nextFocusDown
, android:nextFocusLeft
, android:nextFocusRight
og android:nextFocusUp
.
Når du bruger accessibilityTraversalBefore
og accessibilityTraversalAfter
, skal du overveje følgende tips for at undgå for stram styring af passagerækkefølgen:
- Brug kun disse attributter på steder, hvor den logiske rækkefølge afviger fra rækkefølgen for visningshierarkiet.
- Hvert element, som en bruger kan fokusere på med udforskning ved berøring, skal der også kunne fokuseres på under lineær navigation.
- Passagerækkefølgen skal være i overensstemmelse med den lineære navigation uanset retningen. For eksempel skal en bevægelse, der flytter fokus til det "næste" element, umiddelbart efterfulgt af en bevægelse, der flytter fokus til det "forrige" element, altid resultere i, at fokus vender tilbage til det oprindelige element.
- Cyklusser bør ikke introduceres, når der defineres
accessibilityTraversalBefore
ogaccessibilityTraversalAfter
. Ellers risikerer brugere at opleve situationer, hvor visse elementer ikke kan nås ved brug af lineær navigation.
Design
Når du designer en app, skal du overveje, hvordan du har til hensigt, at en person, der bruger en skærmlæser, lineært gennemgår oplysninger, der præsenteres i grænsefladen. Ideelt set svarer passagerækkefølgen til den visuelle præsentation af oplysninger. Når dette ikke er muligt, kan du angive en passagerækkefølge, der kommunikerer grænsefladens logiske struktur eller hensigt.
Få flere oplysninger om, hvordan du opretter letforståelig navigation.
Test
Sådan evaluerer du en apps passagerækkefølge for tilgængelighed manuelt:
- Slå TalkBack til.
- Åbn appen.
- Brug lineære navigationsbevægelser til at flytte tilgængelighedsfokus mellem elementerne på skærmen.
- Bekræft, at TalkBack flytter sit fokus mellem elementerne på skærmen i en logisk rækkefølge og på tydelig vis gengiver repræsentationen af de elementer, der passeres.
- Bekræft, at TalkBack flytter sit fokus bagud eller fremad mellem elementerne på skærmen i en jævn bevægelse uanset navigationsretningen.
Androids automatiske testværktøjer kan registrere nogle problemer med passagerækkefølge. Du kan også bruge Accessibility Scanner til Android til at teste din app manuelt på enheden. Du skal slå tilgængelighedskontrol til i Espresso og Robolectric ved automatiske tests.