1

我基本上有这个:

<MyCustomLinearLayout>
  <ImageView>
  <TextView>
</MyCustomLinearLayout>

我想覆盖整个布局子结构的可访问性文本;当 LinearLayout 或它的任何一个孩子被 tuoched 时,我想完全控制 TalkBack 所说的内容(所以我可以让它说“3 comments”而不是“Comment Icon 3”)。

我尝试了各种覆盖sendAccessibilityEventUnchecked, dispatchPopulateAccessibilityEvent,requestSendAccessibilityEvent等的组合都无济于事,而且我在任何地方都找不到这种相当简单的设置的示例。

4

1 回答 1

0

在布局上使用View.setContentDescription()动态设置文本并防止 TalkBack 读取子视图的内容。

myText.setText(text);
. . .
myLayout.setContentDescription(imageDescription + " " + text);

由于您正在动态设置描述,因此您可以在布局 XML 中将图像的内容描述设置为 @null 以避免 Lint 错误。

<ImageView
    . . .
    android:contentDescription="@null" />

还可以考虑观看最近有关使 Android 应用程序可访问的 Android 开发人员办公时间视频,其中涵盖了这些主题以及更多内容。

于 2012-09-30T05:42:43.493 回答