列出子项的 WAI-ARIA 容器角色

标签 wai-aria

使用 ChromeVox 扩展程序作为屏幕阅读器,我注意到带有 role="menu" 的菜单是 ul 标签,带有 role="menuitem"属于 li 后代的 子代将触发描述:“有 N 个项目的菜单”

我还注意到,当使用不同的标签时,例如:

<div role="menu">
    <div role="menuitem">1</div>
    <div role="menuitem">2</div>
</div>

它不会触发“有 2 项的菜单”音频输出。相反,它只会显示“菜单”

以类似的方式,我正在寻找另一个容器角色,它允许我列出可能不是菜单甚至链接的元素(例如:文章列表),但让它显示“”和 N 个项目“

为什么在 role="menu" 的情况下,这只适用于 ul 标记?它还可以在哪些其他标签中使用?这在官方文档中记录在哪里?我可以对非菜单列表使用什么标签和角色组合,但也可以大声读出“with n items”文本?

最佳答案

出现这种情况的原因是 li元素是they expose a setsize 可访问性 API 中的属性值。当原生 HTML listitem 时,这是继承的角色被 ARIA 覆盖 menuitem角色。 div元素不会公开此属性。为了公开 <div role="menuitem"> 上的 setsize 属性您将需要使用'aria-setsize ' 属性。

关于列出子项的 WAI-ARIA 容器角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35255254/

相关文章:

html - 带有标有 aria-label 的图标的按钮仍然是 'Empty Button' 错误

html - aria-label 和 title 属性有什么区别?

javascript - 用画外音增加 `role="spinbutton"`

html - 列表社交媒体链接的 ARIA 作用

html - DIV ARIA-LABEl 未被 JAWS 读取

javascript - 如何创建屏幕阅读器可访问的 AJAX 区域和 DOM 插入/删除更新?

html - 能否通过 HTML 结构区分地标的重复使用?

javascript - 下拉组件的可访问性

html - HTML 5 的验证错误