当前位置: 首页 > 知识库问答 >
问题:

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

戚浩淼
2023-03-14

当按下按钮时,是否可以将可访问性焦点(Voiceover foriOS和Talkback for Android)移动到定义的小部件?

我尝试过在语义包中搜索,但我找不到一种方法来获得它。

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

我有一个包含3个页面和按钮的页面视图,可以使用PageController向后/向前移动。我想使用按钮(调用_pageController.animateToPage)进行更改时,将焦点移动到页面的开头。

共有2个答案

孙福
2023-03-14

目前在Flutter中没有这样做的方法。输入焦点和可访问性焦点是两件不同的事情。很多人似乎建议这样做:

FocusScope.of(context).requestFocus(_myFocusNode);

问题是这只改变了输入焦点。可访问性焦点,即TalkBack和Voiceover提供的绿色/蓝色/黑框,不会改变。

这就是为什么您可以使用打印语句验证焦点,但框尚未移动的原因。

到目前为止,没有办法改变Flatter中的可访问性焦点。这是一个巨大的疏忽,也是创建真正可访问应用程序的巨大障碍。

编辑 为了完整性,我确实找到了一个丑陋的解决方法。

如果将焦点更改为表单域(如文本域),则辅助功能焦点也将更新。

在我的例子中,我使用的是一个平面按钮,它几乎没有附加任何样式。显然,你必须让那个按钮做点什么,但它至少让你在你想去的地方附近。

哈克?当然,但这是我目前所拥有的,而不是更好的选择。

越扬
2023-03-14

简言之,没有,目前没有任何html" target="_blank">方法允许您通过代码移动可访问性焦点。

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

免责声明:强制将注意力集中在活动负载的任何地方,但在顶部栏总是(好吧,总是应该永远不应该说),但真的,只是不要这样做。它违反了各种WCAG 2.0法规,包括分别关于可预测导航和上下文变化的3.2.1和3.2.3。通过这样做,您实际上可能会使您的应用程序更加无法访问。

http://www.w3.org/TR/WCAG20/#consistent-行为

Dart团队目前坚定地支持这一规则,因此添加这一功能并非当务之急。

如果您确实希望通知用户现在可以看到不同的页面,您可以使用SemanticsService.announce()在某些操作后通知用户。例如,在onPageChanged中设置它,

onPageChanged: (int page) {
  // announce new page
}
 类似资料:
  • 我在文本视图下方有一个水平回收器视图(最近的项目在最右边的位置,最古老的项目在最左边的位置)。一旦辅助功能控件到达文本视图,在向右滑动时,它会聚焦在回收器视图的最左边的项目(即第一个项目)。有没有办法我们可以将默认焦点设置为最右边的项目。

  • 为程序制作辅助功能是很重要的。在这里,我们很高兴地向你们介绍Devtron和Spectron。这两个新功能有机会使开发者们让他们的应用程序更加可用。 Electron 应用中有关辅助功能的开发和网站是相似的,因为两者最终使用的都是HTML. 然而, 对于Electron应用, 你不能使用在线的辅助功能审查者, 因为你的应用没有一个URL可以提供给审查者. 然而这些新功能将这些审查工具带到您的Ele

  • 为程序制作辅助功能是很重要的。在这里,我们很高兴地向你们介绍Devtron和Spectron。这两个新功能有机会使开发者们让他们的应用程序更加可用。 Electron 应用中有关辅助功能的开发和网站是相似的,因为两者最终使用的都是HTML. 然而, 对于Electron应用, 你不能使用在线的辅助功能审查者, 因为你的应用没有一个URL可以提供给审查者. 这些功能将会提供一些审查工具给你的Elec

  • 扩展使用者能够根据个人的能力和偏好创建理想的浏览体验。 扩展程序应包括可访问性组件,该组件通过使视力障碍,听力受损,肢体受限和其他残障人士能够访问扩展程序,从而鼓励包容性用户群。 每个人,不仅是有特殊需求的用户,都可以从辅助功能中受益。 视力障碍,肢体受限用户都将从键盘快捷键中受益。 字幕和笔录对聋哑用户至关重要,但也对语言学习者有所帮助。 人们可以通过多种方式与扩展互动。一些用户具有标准的显示器

  • 一般来说,可访问性意味着可用性,内容可访问意味着内容可用。 在软件方面,应用程序可访问意味着应用程序可供所有人使用。 在这里,所有意味着残疾人,视障者或使用屏幕阅读器使用计算机的人或者喜欢使用键盘而不是使用鼠标导航的人。 用键盘导航而不是使用鼠标。 可访问的应用程序称为ARIA(可访问的富Internet应用程序)。 Ext JS中的辅助功能 Ext JS旨在记住它应该适用于所有键盘导航。 它具有

  • 问题内容: 使用Accessibility Service,我能够阅读通知栏的标题和消息,我所面临的问题是,当出现第一个通知时,我可以很好地阅读所有这些信息,但是在第一次通知之后,我只会收到标题和文本“您有2条消息”以此类推,而不是整个消息。等待您的专家意见。 代码: 通知示例1: 包:com.whatsapp,标题:你好,消息:你好吗 通知示例2: 包:com.whatsapp,标题:您好,消息