制作 aria-live 区域阅读链接
make aria-live region read links
我想在事件发生时将 link 放入 aria-live 区域。
然而,当画外音读取 aria-live 区域时,它是作为文本读取的,并且不会读取有可点击的 link。
所以事件发生时我的标记是
<div role="region" aria-live="assertive">
hello <a href="/world">world</a>
</div>
画外音会在事件发生时读出 hello world,然后将上下文放回到引发事件之前它所在的元素上。
有没有办法让画外音在阅读 aria-live 中的内容时不仅仅是纯文本?
不,这就是 aria-live
的目的 - 它宣布 text 发生了变化。没有公布其他信息,例如角色(link 或按钮或列表)。
您可以“强制”阅读额外的文本,但您必须手动进行。所以你可以添加这样的东西:
<div role="region" aria-live="assertive">
hello <a href="/world">world</a> <span class="sr-only"> link </span>
</div>
所以你会听到“hello world link”,但我会在宣布之后删除多余的文本,否则当用户手动导航所有元素时(通过使用画外音向右滑动),他们会听到:
- "你好"
- "世界link"
- "link"
(有关“仅限 sr”的信息,请参阅 What is sr-only in Bootstrap 3? class)。
但这并不是一个很好的解决方法。添加新元素时听到“hello world link”听起来像是“hello world”是link,而只有“world”是link。
如果您多解释一下用户体验,可能会有更好的解决方案来解决您要实现的目标。
我想在事件发生时将 link 放入 aria-live 区域。
然而,当画外音读取 aria-live 区域时,它是作为文本读取的,并且不会读取有可点击的 link。
所以事件发生时我的标记是
<div role="region" aria-live="assertive">
hello <a href="/world">world</a>
</div>
画外音会在事件发生时读出 hello world,然后将上下文放回到引发事件之前它所在的元素上。
有没有办法让画外音在阅读 aria-live 中的内容时不仅仅是纯文本?
不,这就是 aria-live
的目的 - 它宣布 text 发生了变化。没有公布其他信息,例如角色(link 或按钮或列表)。
您可以“强制”阅读额外的文本,但您必须手动进行。所以你可以添加这样的东西:
<div role="region" aria-live="assertive">
hello <a href="/world">world</a> <span class="sr-only"> link </span>
</div>
所以你会听到“hello world link”,但我会在宣布之后删除多余的文本,否则当用户手动导航所有元素时(通过使用画外音向右滑动),他们会听到:
- "你好"
- "世界link"
- "link"
(有关“仅限 sr”的信息,请参阅 What is sr-only in Bootstrap 3? class)。
但这并不是一个很好的解决方法。添加新元素时听到“hello world link”听起来像是“hello world”是link,而只有“world”是link。
如果您多解释一下用户体验,可能会有更好的解决方案来解决您要实现的目标。