ImageView 的 Android 可访问性

r.b*_*waj 4 android accessibility talkback

我为某些 ImageView 添加了 contentDescription。使用 TalkBack 进行测试时,其中一些将“按钮”附加到 contentDescription,而另一些则没有。演讲不存在一致的行为吗?

注意:一些 ImageView 有 OnClickListener,而另一些则有 onTouchListener。带有 onClickListener 的 ImageView 会在 contentDescription 中附加“button”,而带有 onTouchListener 的 ImageView 则不会。

另外,我注意到android:clickable="true"使用 onTouchListener 的 ImageView 设置会宣布带有 contentDescription 的“按钮”。

处理这种不一致的最佳方法是什么?
设置是否android:clickable="true"可能会影响 onTouchListener 的现有功能?

Chr*_*sCM 6

从可访问性的角度来看,“按钮”不是视图的子类型,而是接受交互的元素。活动图像、接受触摸事件的图像、可点击事件、onClickListeners 等都是活动图像的示例。这些图像以按钮的形式公布,因为如果用户在聚焦的情况下双击屏幕,他们就会执行操作。如果图像只是提供信息,它只会读出其内容描述。相当于他们聚焦于一段文字。

TalkBack 通过添加一些有关他们正在交互的对象类型的信息,帮助失明用户识别图像是活动图像还是信息图像。在这种情况下,类型是由可以发生的交互类型定义的,而不是由它实际的对象类型定义的。

  • onTouchListener 通常不应用于“点击”。onTouchListeners 用于其他自定义交互。使用 onTouchListener 来响应简单的按钮按下是可能的,但不是推荐的用例,因为这属于 onClickListener。这就是为什么带有 onTouchListeners 的项目不会被声明为按钮。事实上,恕我直言,简单地包含 onTouchListeners 本质上会破坏应用程序的可访问性,除非提供执行这些操作的替代方法。 (2认同)