Ha egy képernyőn több interaktív elem látható ugyanazon a helyen, az megnehezítheti a felhasználónak az alkalmazással való interakciót. Egyes kisegítő szolgáltatások – mint például a kapcsolóalapú hozzáférés – is nehézségekbe ütközhetnek abban, hogy egyértelműen mutassák be a felhasználóknak, hogy milyen elemeken végezhetnek műveleteket.
Megvalósítás
ViewHa OnClickListener
és OnLongClickListener
metódust valósít meg, ellenőrizze, hogy a kattintható View
rendelkezik-e olyan elődelemmel vagy leszármazó elemmel, amely kattintható, és a képernyő ugyanazon helyét foglalja el. Jól megvalósított kezelőfelületen a kattintható elemek különállóan jelennek meg.
Kattintható View
elemek megvalósításakor vegye figyelembe a következőket:
- Bizonyos
View
elemtípusok, például aButton
alapértelmezés szerint kattinthatóként vannak megjelölve. Alkalmazásában távolítsa el vagy állítsaandroid:clickable="false"
értékűre azOnClickListener
metódust, ha aView
nem kattintható, illetve kattintásra nem hajt végre műveletet. Így közölheti a kisegítő lehetőségek szolgáltatásaival, hogy tekintsék aView
elemet nem kattinthatónak. - Összetettebb kezelőfelületek esetében több
View
elem között alá-/fölérendeltségi viszony lehet a megjelenési hierarchiában. Beágyazott kattinthatóView
elemek esetében úgy valósítsa meg a kattintáskezelést, hogy minden egyes műveletnél kizárólag egyetlenView
kezelje a kattintásokat.
A Modifier.clickable
és a Modifier.combinedClickable
objektumok onClick
vagy onLongClick
tulajdonságának megvalósítása esetén ellenőrizze, hogy van-e olyan elődelem vagy leszármazó elem, amely kattintható, és ugyanott van a képernyőn. Jól megvalósított kezelőfelületen a kattintható elemek különállóan jelennek meg.
- Egyes alacsony szintű alkotóelemeknek, amilyen például a
Button
, alapértelmezés szerint kattintható a szemantikájuk. Ha az Ön alkalmazásban nem kattintható az alkotóelem, vagy nem végez semmilyen műveletet, amikor rákattintanak, távolítsa el a kattinthatósági szemantikáját aModifier.clearAndSetSemantics
objektummal. - Összetettebb kezelőfelületek esetében több kattintható alkotóelem között alá-/fölérendeltségi viszony lehet a megjelenési hierarchiában.
- A beágyazott kattintható alkotóelemek esetében úgy valósítsa meg a kattintáskezelést, hogy minden egyes műveletnél kizárólag egyetlen alkotóelem kezelje a kattintásokat.
Kialakítás
Mindegyik kattintható elem céljának egyértelműnek kell lennie, a felhasználó számára pedig lehetővé kell tenni, hogy felkészüljön arra a műveletre, amelyet a rendszer az elemre való kattintás vagy hosszú kattintás esetén végrehajt. A művelet végrehajtására szolgáló elemeknek egyben megfelelő méretű érintési célpontnak kell lenniük.
Tesztelés
A következőképpen ellenőrizhető manuálisan, hogy az alkalmazás kezelőfelülete nem tartalmaz-e több kattintható elemet egy helyen:
- Kapcsolja be a kapcsolóalapú hozzáférést Androidhoz, és állítsa be a kétkapcsolós lépcsős keresést.
- Nyissa meg az alkalmazást.
- A „Következő” művelethez rendelt kapcsolóval haladjon végig a felületen, elemről elemre áthelyezve a kapcsolóalapú hozzáférés fókuszát.
- Ha valamelyik elem többször is fókuszba kerül, akkor előfordulhat, hogy a felület több kattintható elemet tartalmaz egy helyen.
Az Android automatizált tesztelőeszközei képesek az egy helyen lévő kattintható View
elemek észlelésére. Fontolja meg az androidos Accessibility Scanner használatát az alkalmazás manuális tesztelésére valamely eszközön. Automatizált tesztek elvégzéséhez kapcsolja be a kisegítő lehetőségek ellenőrzését az Espresso és a Robolectric eszközökben.