重复的可点击 View

背景

如果屏幕在同一位置显示多个互动项,用户在与应用进行互动时就会比较困难。另外,对于某些无障碍服务(例如开关控制)来说,还会导致难以向用户清楚说明可操作项。

实施

在您实施 OnClickListenersOnLongClickListeners 时,请检查可点击 View 是否有可点击且共用同一屏幕位置的父级或子级元素。在配置完善的界面中,可点击项会单独显示。

在实施可点击的 Views 时,请考虑以下几点:

  • 某些 View 类型(如 Button)在默认情况下将被标注为可点击。在您的应用中,如果相应的 View 不可点击,或点击后不执行相应操作,请移除其 OnClickListener 或设置 android:clickable="false"。这样即可要求无障碍服务将此 View 视为不可点击。
  • 在更为复杂的界面中,多个可点击 Views 在相应的 view 层级中可能具有父/子关系。对于嵌套的可点击 Views,请实施点击处理,以便只让一个 View 处理针对任何一项操作的点击。

设计

每个可点击项的用途都应该明确无误,并可让用户合理预见到在点击或长按某个项后将要执行的操作。这些可操作项的触摸目标也应采用适当的大小

测试

要手动验证应用界面是否包含重复的可点击项,请执行以下操作:

  1. 为 Android 开启开关控制并设置双开关分步扫描。
  2. 打开应用。
  3. 使用指定给“下一个”操作的开关,将开关控制的焦点逐个移至界面上的每个项。
  4. 如有任何项被聚焦的次数超过一次,则此界面就可能包含重复的可点击项。

Android 的自动化测试工具能够检测到重复的可点击 View。不妨考虑使用 Android 版无障碍功能扫描仪对设备上的应用进行人工测试。要实现自动化测试,请在 EspressoRobolectric 中开启无障碍检查功能。