javascript - 如果菜单是纯 CSS 驱动的,则更新 aria-hidden 属性

标签 javascript html css accessibility screen-readers

我决定尝试让屏幕阅读器和其他辅助技术更易于访问我的网站。目前我真的很专注于我的导航。因为如果您真正想要的元素嵌套得很深并且接近末尾,谁愿意遍历菜单上的所有元素?

因此,我正在处理的网站有一个完全基于 CSS 的下拉菜单,我正在使用 javascript 对其进行扩充,使其可以通过键盘访问,并添加了 aria 属性以帮助屏幕阅读器。

我的问题是

鉴于我现有的菜单是纯 CSS,我想知道我现在是否需要使用 javascript 来扩充我的菜单,以便在菜单的一部分变得可见时更新 aria-hidden 属性?或者在第一个实例中将它设置为 aria-hidden="true"并保留它只是为了向屏幕阅读器指示默认状态就足够了吗?

我觉得任何使用纯 CSS 来显示/隐藏内容的东西现在都需要用 javascript 来增强 - 感觉它违背了纯 CSS 显示切换的全部目的。

最佳答案

是的,您必须在其状态更改时设置 aria-hidden。

Authors MUST set aria-hidden="true" on content that is not displayed, regardless of the mechanism used to hide it.

aria-hidden specification

这个措辞向我暗示,无论您使用 CSS 还是 javascript 来切换可见性,都需要更新 aria-hidden 值。

关于javascript - 如果菜单是纯 CSS 驱动的,则更新 aria-hidden 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13716386/

相关文章:

html - CSS 选择具有特定类的最后一个 li 元素

javascript - 从轴坐标动态创建具有整数坐标的有限 n 维坐标系

javascript - Jquery 动画整个 div 内容

javascript - AngularJS - $q 的 Promise 未正确级联到 Controller

javascript - 如何在php中检查复选框的跨度是否被选中?

javascript - setInterval() 不重复。仅工作 1 次

javascript - JavaScript 对象内对象之间的交叉通信

html - 一个伪元素内容是否可以用来调用一个ID或者一个类?

javascript - 创建的对象为空

html - 如何在只有一个属性的表单中更改多个按钮的边框颜色?