gpt4 book ai didi

html - 可访问性:在什么情况下 aria-describedby 不会被公布?

转载 作者:行者123 更新时间:2023-11-28 00:35:24 27 4
gpt4 key购买 nike

我正在为我的表单控件创建可访问的帮助文本。我计划使用 aria-describedby 将可访问的描述附加到字段。讨论了这种方法 here

尽管在我使用 ChromeVox 扩展程序和 Windows 10 屏幕阅读器进行的测试中,我发现 aria-describedby 并未公布,but it is rather well supported across browsers and screenreaders ,所以我打算使用这种方法。

还有 this建议在某些情况下 aria-describedby 会被忽略或无法按预期工作,但这些情况非常具体,我通常可以接受。

aria-describedby content may not always be announced to users, depending on their screen reader and navigation method. The attribute is well supported, but that doesn’t mean there aren’t some things to be aware of: aria-describedby content may not be announced by all screen readers if navigating to a button, link, or form control with the virtual cursor. JAWS specifically may not announce an element’s description when using hot keys to navigate to certain elements. When navigating by visited links, the description will not be announced. However JAWS should announce descriptions when navigating by form controls. JAWS 17 + IE won’t announce aria-describedby content when tabbing to a link (newer version of JAWS have fixed this). IE11 won’t announce the accessible name or description of a form control if the title attribute is used in tandem with aria-describedby, and the user is navigating by virtual cursor or form control hot key (F). Both will be announced if using the Tab key. (IE11 had much bigger problems with aria-describedby in the past.) TalkBack + Android Chrome won’t announce any aria-describedby content of a modal dialog when auto-focusing an element within that dialog. If a user has descriptions or hint text turned off, any associated content won’t be announced. Because of this, it’s vital that any content that is necessary to the understanding of a UI be available by means other than just aria-describedby.

我想知道是否有时 aria-describedby 不会自动公布?之前的链接措辞似乎暗示它只会根据要求公布:

By using aria-describedby to reference the format of the field, this information is made available to the users on request. That is, it is not automatically displayed or read aloud. This makes sense if the user has been informed of the format before, or when there are lots of input fields with the same format, for example.

我不明白“按要求”是什么意思。我相信默认行为是在宣布标签和输入类型后宣布 aria-describedby 文本。

最佳答案

aria-describedby(如 aria-labelaria-labeledby)的行为深受元素角色的影响他们出现了。

如您所知,屏幕阅读器通常有 two 'modes' ,这主要取决于内容的角色(或默认语义)。

如果非交互式元素出现在交互式(“表单模式”)内容中,我肯定会遇到一些问题。

我使用带有模态内容的 aria-describedby 取得了很好的效果。 (将属性放在模态上,并指向模态打开时要在其中宣布的文本元素。)但我想这是因为屏幕阅读器应该在一个明显的时刻发出这些公告:当模态打开。

在表单(或其他“表单模式”容器)始终出现在页面上的情况下,您通常可以使用浏览模式组合键(例如“下一个标题”(“H”在 NVDA 和 JAWS 上)或“下一段”(“P”)。检查这些“请求”是否足以作为解决方案。

您还可以尝试使用标准 HTML 元素 fieldsetlegend,它们的目的是为交互元素组提供文本描述。

还可以考虑将“表单”(或工具栏或其他)视为单个制表位,并使用箭头键在其中导航组件。这样,当您将焦点放在容器上时,您应该会收到关于 aria-describedby(或者实际上是 aria-labeledby/aria-label)

如果这对您不起作用,作为最后的手段,您可以尝试一些技巧:

  • tabindex="-1" 放在您想要的文本周围的元素上宣布,然后在适当的时候对该元素调用 focus()时刻。
  • 将文本复制到 aria-live 区域的 textContent在适当的时候使用 javaScript。

如果没有“合适的时机”,这些技巧都不漂亮,可能不适合您。 (没有等效于浏览模式的 onfocus)。但只要稍加小心,它们就可以发挥作用。

关于html - 可访问性:在什么情况下 aria-describedby 不会被公布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56465819/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com