以编程方式移动辅助功能焦点

2024-04-11

按下按钮时是否可以将辅助功能焦点(iOS 的 VoiceOver 和 Android 的 Talkback)移动到定义的小部件?

我尝试过在语义包 https://api.flutter.dev/flutter/semantics/semantics-library.html但我找不到方法来获得这个。

让屏幕阅读器从头开始重新启动语义树就足够了。

我有一个PageView有 3 个页面和按钮,可使用PageController。当使用按钮(调用_pageController.animateToPage).


简而言之,不,目前没有方法允许您通过代码移动辅助功能焦点。

请参阅免责声明https://stackoverflow.com/a/28481095/6668797 https://stackoverflow.com/a/28481095/6668797作为一些背景(尽管 Android 仍然允许我们这样做..)

免责声明:强制将注意力集中在活动负载上,而不是在 顶部栏总是(好吧,几乎不应该说总是),但是 真的,只是不要这样做。这违反了 WCAG 2.0 的各种规定 有关可预测的规定,包括 3.2.1 和 3.2.3 导航和上下文分别发生变化。你很可能实际上是 这样做会使您的应用程序更加难以访问。

http://www.w3.org/TR/WCAG20/#consistency-behavior http://www.w3.org/TR/WCAG20/#consistent-behavior

Dart 团队目前坚定地支持该规则,因此添加此功能并不是优先考虑的事情。

如果您确实希望通知用户现在可以看到不同的页面,您可以使用SemanticsService.announce() https://api.flutter.dev/flutter/semantics/SemanticsService/announce.html在执行某些操作后通知用户。例如,将其设置为onPageChanged,

onPageChanged: (int page) {
  // announce new page
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式移动辅助功能焦点 的相关文章

随机推荐