重复的可点击 View
背景
如果屏幕在同一位置显示多个互动项,用户在与应用进行互动时就会比较困难。另外,对于某些无障碍服务(例如开关控制)来说,还会导致难以向用户清楚说明可操作项。
实施
在您实施 OnClickListeners
和 OnLongClickListeners
时,请检查可点击 View
是否有可点击且共用同一屏幕位置的父级或子级元素。在配置完善的界面中,可点击项会单独显示。
在实施可点击的 Views
时,请考虑以下几点:
- 某些
View
类型(如Button
)在默认情况下将被标注为可点击。在您的应用中,如果相应的View
不可点击,或点击后不执行相应操作,请移除其OnClickListener
或设置android:clickable="false"
。这样即可要求无障碍服务将此View
视为不可点击。 - 在更为复杂的界面中,多个可点击
Views
在相应的 view 层级中可能具有父/子关系。对于嵌套的可点击Views
,请实施点击处理,以便只让一个View
处理针对任何一项操作的点击。
设计
每个可点击项的用途都应该明确无误,并可让用户合理预见到在点击或长按某个项后将要执行的操作。这些可操作项的触摸目标也应采用适当的大小。
测试
要手动验证应用界面是否包含重复的可点击项,请执行以下操作:
- 为 Android 开启开关控制并设置双开关分步扫描。
- 打开应用。
- 使用指定给“下一个”操作的开关,将开关控制的焦点逐个移至界面上的每个项。
- 如有任何项被聚焦的次数超过一次,则此界面就可能包含重复的可点击项。
Android 的自动化测试工具能够检测到重复的可点击 View
。不妨考虑使用 Android 版无障碍功能扫描仪对设备上的应用进行人工测试。要实现自动化测试,请在 Espresso 和 Robolectric 中开启无障碍检查功能。