Android辅助功能:强制屏幕阅读器在其子级内容之后读取ViewGroup的角色

时间:2019-07-11 16:00:38

标签: android accessibility android-accessibility

根据Google的Android accessibility tutorial,要将一组元素视为单个信息单元,我们可以将这些元素分组到一个可聚焦的容器中,并将容器的android:focusable属性设置为true。通过这样做,我们使屏幕阅读器知道我们希望通过一次公告来阅读此内容。

所以我创建了以下布局XML:

<LinearLayout
  android:focusable="true"
  ...>
  <TextView 
    android:text="Text #1"
    ... />
  <TextView 
    android:text="Text #2"
    ... />
</LinearLayout>

通过使用AccessibilityNodeInfoCompat的setClassName方法,我将LinearLayout的类名设置为android.widget.Button,以便TalkBack可以将视图组视为按钮。

这是我的可访问性树在此之后的样子:

Button:(0, 722 - 1080, 905):FAC:focusable:clickable
  TextView:(44, 761 - 970, 813):TEXT{Text #1}:A:supportsTextLocation
  TextView:(44, 813 - 970, 865):TEXT{Text #2}:A:supportsTextLocation

问题是当我的小组被屏幕阅读器聚焦时,它宣布它为“按钮,文本#1文本#2”。但是我希望它是“文本1,文本2,按钮”。

是否有一种方法可以强制“话语提示”首先并且仅在父级角色名称之后读取子级文本?

0 个答案:

没有答案