繁体   English   中英

如何使“话语提示”按顺序读取Android可访问性事件而不中断

[英]How to make TalkBack read Android accessibility events in order without cutting them off

我有一个过滤器视图,在关闭该视图时,我想做2项可访问性操作:

  • 宣布“列表中的$ listSize个项目”,因为应用过滤器将更改列表大小
  • 将焦点设置为“添加过滤器”按钮

我尝试了以下方法:

filtersButton.announceForAccessibility("$listSize items in list")
filtersButton.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)

我希望TalkBack可以按顺序阅读:

  • “清单中有20个项目”
  • “过滤器按钮”

但是,它通常会跳过第一个读出的内容,只读取filtersButton上的文本。 有时,在跳到第二个之前,它只会读取第一个的一部分。

如何强制“话语提示”读出两个辅助功能事件?

最好使文本和声音信息相似,这是一种好的做法,也是一种推荐的方法。 尽量避免发布通知,而应让屏幕阅读器阅读显示的信息。 方法announceForAccessibility()旨在通知视觉更改,否则这些更改将不会被注意。

屏幕上是否有显示项目总数的视图? 如果您没有关于商品数量的直观线索,则不应在“话语提示”上宣布该商品的数量。 信息很重要,您应该以可视化的方式向所有用户显示,或者信息在屏幕上显示的重要性不高,并且不应该在屏幕阅读器上宣布。

如果您在屏幕上可以看到它,则可以使用AccessibilityLiveRegion让读者宣布更改的值,并将焦点放在“ Add filters按钮上。 另一种方法是简单地将第一个焦点设置到显示项目列表计数的视图,然后让用户导航至下一个按钮。

ViewCompat.setAccessibilityLiveRegion(itemCountTextView, ACCESSIBILITY_LIVE_REGION_POLITE)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM