Objektens ordning

Bakgrund

En person som använder TalkBack-skärmläsaren kan navigera i en app på två sätt.

  • Explore by touch: Dra ett finger över skärmen för att utforska var elementen befinner sig.
  • Linjär navigering: Dra åt höger och vänster för att gå framåt och bakåt, ett objekt i taget. 

Android-appar bör stödja både Explore by touch och linjär navigering. Ordningen på objekten vid linjär navigering bör i allmänhet matcha den visuella ordningen eller optimeras på ett annat sätt för att ordningen ska vara logisk för de som använder skärmläsare.  

Som standard använder TalkBack appens vyhierarki för att bestämma objektens ordning vid linjär navigering.

Implementering

Om en apps vyhierarki inte återspeglar den logiska strukturen i appen kan utvecklare påverka ordningen på objekten genom att ange android:accessibilityTraversalBefore eller android:accessibilityTraversalAfter. De här egenskaperna indikerar att en skärmläsare ska läsa upp innehållet i en vy före (eller efter) innehållet i en annan. Skärmläsaren bestämmer själv i vilken ordning den läser upp vyer som inte har någon före- eller efterrelation.

Objektens ordning är inte samma sak som ”inmatningsordning” som används för tangentbordsnavigering. Ordningen på tangentbordsnavigeringen anges med android:nextFocusDown, android:nextFocusLeft, android:nextFocusRight, och android:nextFocusUp.

Tänk på följande när du använder accessibilityTraversalBefore och accessibilityTraversalAfter, för att undvika att begränsa objektens ordning:

  • Använd endast de här attributen där den logiska ordningen skiljer sig från den hierarkiska ordningen.
  • Varje element som en användare kan fokusera på genom Explore by touch bör också kunna fokuseras på vid linjär navigering.
  • Objektens ordning bör överensstämma med den linjära navigeringen, oavsett riktning. Om en person till exempel gör en gest för att flytta fokus till nästa element och direkt efter det gör en gest för att flytta fokus till föregående element ska fokus återgå till det ursprungliga elementet.
  • Cykler bör inte införas när man definierar accessibilityTraversalBefore och accessibilityTraversalAfter. Om man gör det kan användare stöta på situationer där vissa element är oåtkomliga om man använder linjär navigering.

Design

När du utformar en app bör du tänka på i vilken ordning informationen i gränssnittet ska läsas upp av en skärmläsare. Helst ska den ordningen var densamma som den visuella presentationen av informationen. Om det inte är möjligt kan du ange en ordning som förmedlar gränssnittets logiska struktur eller avsikt.

Läs mer om att skapa navigering som är lätt att följa.

Testning

Så här utvärderar du manuellt objektens ordning i en app:

  1. Aktivera TalkBack.
  2. Öppna appen.
  3. Flytta tillgänglighetsfokus till varje element på skärmen med linjära navigeringsgester.
  4. Kontrollera att TalkBack flyttar fokus till elementen på skärmen i en logisk ordning och beskriver varje element ordentligt.
  5. Kontrollera att TalkBack flyttar fokus på elementen bakåt och framåt på skärmen på ett konsekvent sätt, oavsett navigationsriktning.

Androids automatiserade testverktyg kan upptäcka vissa problem med objektens ordning. Vi rekommenderar att du använder tillgångstestaren för Android för att testa appen manuellt på enheten. För automatiska tester kan du aktivera tillgänglighetskontrollerna i Espresso och Robolectric.