【发布时间】:2019-03-05 18:44:39
【问题描述】:
我有一个项目在其托管活动打开时会窃取焦点。
但在对讲模式下,它会被读取两次。
1) 我如何定义一个项目在它打开后立即读取?
2) 什么会导致其内容描述被阅读两次?
3) 有没有办法定义点击后要阅读的内容描述?
我看到了这个doc,但没有找到答案。
【问题讨论】:
标签: android accessibility talkback android-a11y
我有一个项目在其托管活动打开时会窃取焦点。
但在对讲模式下,它会被读取两次。
1) 我如何定义一个项目在它打开后立即读取?
2) 什么会导致其内容描述被阅读两次?
3) 有没有办法定义点击后要阅读的内容描述?
我看到了这个doc,但没有找到答案。
【问题讨论】:
标签: android accessibility talkback android-a11y
这个问题缺乏一些细节,但这里有一些答案。
1 - 屏幕阅读器将自动聚焦并阅读屏幕上的第一个视图(从右到左,从上到下)。这是默认行为,不应更改。
2 - 在某些情况下,屏幕阅读器可能会在显示您的内容时执行不同的操作。例如,当显示Dialog 时,TalkBack 的默认行为是宣布标题并关注第二个视图。如果您手动要求读者将注意力集中在标题上,它可能会被阅读两次。
3 - 您可以使用 android:contentDescription 在 XML 中定义要读取的文本,或者使用 view.setContentDescription(textToRead) 在代码中定义要读取的文本
【讨论】:
如果外部容器是“可聚焦的”,那么它可能会宣布内容两次。 例如:
<FrameLayout focusable='true'>
<TextView/>
</FrameLayout>
所以,对我来说,解决方法是让外部容器“不可聚焦”
【讨论】: