Tausta
TalkBack-näytönlukijan käyttäjä voi siirtyä sovelluksessa kahdella tavalla:
- Kosketuksella tutkiminen: Käyttäjä tutkii elementtien fyysistä asettelua vetämällä yhtä sormea näytöllä.
- Lineaarinen siirtyminen: Käyttäjä siirtyy eteenpäin ja taaksepäin yksi kohde kerrallaan pyyhkäisemällä oikealle ja vasemmalle.
Android-sovellusten tulisi tukea sekä kosketuksella tutkimista että lineaarista siirtymistä. Lineaarisen siirtymisen aikana läpikäyntijärjestyksen tulisi noudattaa visuaalista järjestystä tai läpikäyntijärjestys pitäisi optimoida muulla tavalla siten, että järjestys on näytönlukijoiden käyttäjille looginen.
TalkBack käyttää oletuksena sovelluksen näkymähierarkiaa kohteiden läpikäyntijärjestyksen määrittämiseksi lineaarisen siirtymisen aikana.
Toteutus
Jos sovelluksen näkymähierarkia ei kuvaa sovelluksen loogista rakennetta, kehittäjät voivat vaikuttaa esteettömyysominaisuuksissa käytettävään läpikäyntijärjestykseen määrittämällä android:accessibilityTraversalBefore
- tai android:accessibilityTraversalAfter
-attribuutin. Nämä attribuutit osoittavat, että näytönlukijan tulisi siirtyä jonkin tietyn näkymän sisältöön ennen siirtymistä jonkin toisen näkymän sisältöön (tai siihen siirtymisen jälkeen). Näkymät, joihin ei ole määritetty ennen/jälkeen-suhteita, käydään läpi näytönlukijan määrittämässä järjestyksessä.
Esteettömyysominaisuuksissa käytettävä läpikäyntijärjestys ei ole sama kuin näppäimistöllä siirtymisessä käytettävä kohdistus. Näppäimistöllä siirtymisen järjestys määritetään android:nextFocusDown
-, android:nextFocusLeft
-, android:nextFocusRight,
- ja android:nextFocusUp
-attribuuteilla.
Käyttäessäsi accessibilityTraversalBefore
- ja accessibilityTraversalAfter
-attribuutteja huomioi seuraavat vinkit välttääksesi rajoittamasta läpikäyntijärjestystä liikaa:
- Käytä näitä attribuutteja vain paikoissa, joissa looginen järjestys eroaa näkymähierarkian järjestyksestä.
- Jokaisen kosketuksella tutkimisella kohdistettavissa olevan elementin tulisi olla kohdistettavissa myös lineaarisen siirtymisen aikana.
- Läpikäyntijärjestyksen tulisi olla yhdenmukainen lineaarisen siirtymisen kanssa suunnasta riippumatta. Esimerkiksi tehtäessä ensin kohdistuksen seuraavaan elementtiin siirtävä ele ja heti perään kohdistuksen edelliseen elementtiin siirtävä ele, kohdistuksen tulisi aina palata alkuperäiseen elementtiin.
- Määritettäessä
accessibilityTraversalBefore
- jaaccessibilityTraversalAfter
-attribuutteja tulisi välttää silmikoita, etteivät käyttäjät päädy tilanteisiin, joissa joihinkin elementteihin ei voi siirtyä käytettäessä lineaarista siirtymistä.
Suunnittelu
Mieti sovellusta suunnitellessasi, miten haluat näytönlukijan käyttäjän käyvän lineaarisesti läpi käyttöliittymässä esitettyjä tietoja. Ihannetapauksessa läpikäyntijärjestys vastaa tietojen visuaalista esitystapaa. Jos tämä ei ole mahdollista, voit määrittää läpikäyntijärjestyksen, joka välittää käyttöliittymän loogisen järjestyksen tai tavoitteen.
Lue lisää siirtymisen kannalta selkeän käyttöliittymän luomisesta.
Testaus
Näin voit arvioida läpikäyntijärjestystä esteettömyysominaisuuksien käytön aikana:
- Ota TalkBack käyttöön.
- Avaa sovellus.
- Siirrä esteettömyysominaisuuden kohdistus vuorollaan kaikkiin näytön elementteihin käyttämällä lineaarisia siirtymiseleitä.
- Varmista että TalkBack siirtää kohdistuksen näytöllä olevien elementtien välillä loogisessa järjestyksessä ja antaa jokaisesta kohdistetusta elementistä merkityksellisen kuvauksen.
- Varmista että TalkBack siirtää kohdistuksen näytöllä olevien elementtien välillä taakse- ja eteenpäin johdonmukaisesti riippumasta suunnasta, johon siirrytään.
Androidin automaattiset testaustyökalut saattavat tunnistaa joitakin läpikäyntijärjestykseen liittyviä ongelmia. Voit testata sovellustasi laitteessa manuaalisesti Androidin Accessibility Scannerilla. Automaattisten testien suorittamiseksi ota Espresson ja Robolectricin esteettömyystarkistukset käyttöön.