【问题标题】:Accessibility regarding role="status"关于角色=“状态”的可访问性
【发布时间】:2018-02-20 20:52:03
【问题描述】:

我相信我的问题可能过于简单,但我似乎找不到太多关于role="status" 如何确定要宣布什么内容的信息。任何反馈将不胜感激。不幸的是,大多数资源都指向这个页面 404s https://www.w3.org/TR/wai-aria/roles#status

【问题讨论】:

  • 非快照 w3.org TR 链接(即 URL 中没有日期)不稳定。发布新规范时,URL 路径可能会发生变化。这就是为什么人们应该理想地链接稳定的 URL。你可以去w3.org/TR/wai-aria然后找到“上一个推荐”的链接,然后使用“这个版本”下的URL。 -- 您问题中的链接可能来自 WAI-ARIA 1.0。这是稳定的 URL:w3.org/TR/2014/REC-wai-aria-20140320/roles#status
  • 你能澄清你的问题吗?请问如何为status 角色提供内容?或者您想知道当页面包含status 角色或多个角色时用户代理会做什么?
  • 我对@unor都很好奇

标签: html accessibility wai-aria


【解决方案1】:

<div role="status"> 类似于 <div aria-live="polite"> - see reference

<div role="alert"> 类似于 <div aria-live="assertive" aria-atomic="true"> - see reference

实时区域有点棘手。为了正常工作,它们需要在页面加载时存在于 HTML 中,但它们只会在容器内的内容发生变化时才被宣布。更新容器内的内容通常是通过 JavaScript 完成的。

aria-live 属性设置为polite 的隐式值时,屏幕阅读器应在宣布实时区域更新之前完成当前项目的阅读。

aria-live 属性设置为assertive 的隐式值时,屏幕阅读器应中断当前文本流以宣布实时区域更新。

aria-atomic="true" 的隐式属性意味着将公布活动区域的全部内容(不仅仅是新的或更新的部分)。

Terrill Thompson 有一个非常棒的 ARIA Live Region Test Page,它演示了实时区域是如何工作的。

【讨论】:

  • 谢谢!我注意到它似乎是基于容器的。那么,任何在容器中更新的内容都会被公布?
  • 是的,它应该,但这真的取决于所使用的浏览器和屏幕阅读器的组合。我相信所有现代浏览器现在都应该支持 aria-live,并且屏幕阅读器支持在过去几年中得到了改进,但可能仍然存在一些效果不佳的组合。您可能会发现这很有帮助:davidmacd.com/blog/test-aria-live-display-none.html
  • @Josh 你在哪里找到这些信息的?据我所知,地位的作用有一个隐含的aria-livepolite,而不是assertivew3.org/WAI/WCAG21/Techniques/aria/ARIA22
  • 另外,说设置这两个属性是“类似的”是误导。它确实隐式设置了这些属性,但不仅仅如此:它的存在主要是为了表达内容是咨询信息。
猜你喜欢
  • 2021-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 2014-01-25
相关资源
最近更新 更多