按下按钮时,是否可以将可访问性焦点(iOS的VoiceOver和Android的Talkback)移至已定义的小部件?
我曾尝试在语义包中进行搜索,但找不到找到这种方法的方法。
使屏幕阅读器从头开始重新启动语义树就足够了。
我有PageView3个页面和一个按钮,可以使用来后退/前进PageController。当使用按钮(调用_pageController.animateToPage)进行更改时,我想将焦点移到页面的开头。
PageView
PageController
_pageController.animateToPage
简而言之,没有,目前没有允许您通过代码移动可访问性焦点的方法。
请参阅https://stackoverflow.com/a/28481095/6668797上的免责声明,作为一些背景知识(即使Android仍允许我们执行此操作。)
免责声明:总是将活动负载强制放在任何位置,但总是放在顶部栏(好吧,几乎永远不应该说),但实际上,只是不要这样做。它分别违反了有关可预测的导航和上下文更改的各种WCAG 2.0法规,包括3.2.1和3.2.3。通过执行此操作,您实际上可能使您的应用无法访问。 http://www.w3.org/TR/WCAG20/#consistent- behavior
免责声明:总是将活动负载强制放在任何位置,但总是放在顶部栏(好吧,几乎永远不应该说),但实际上,只是不要这样做。它分别违反了有关可预测的导航和上下文更改的各种WCAG 2.0法规,包括3.2.1和3.2.3。通过执行此操作,您实际上可能使您的应用无法访问。
http://www.w3.org/TR/WCAG20/#consistent- behavior
Dart团队目前坚定地支持该规则,因此添加此功能并不是摆在优先考虑的位置。
如果您确实希望通知用户现在可以看到另一个页面,则可以使用SemanticsService.announce()在执行某些操作后通知用户。例如,设置在此onPageChanged,
onPageChanged
onPageChanged: (int page) { // announce new page }