javascript - 如果不存在合适的 ARIA 属性,我是否应该使用自定义 ARIA 属性?

标签 javascript html w3c wai-aria

我想确定当用户单击其后代时可以自动隐藏一个元素(使用 JavaScript 来实现)。

例如:

<div>
    <div aria-autohide>
        <a href="http://..." target="_blank">A Link</a>
    </div>
</div>

这是正确的方法吗?

最佳答案

虽然您可以创建自定义 HTML tags您可以创建 custom attributes ,通常以“data-”开头,您无法创建自定义 ARIA 属性。有一个预定义列表 ARIA attributes that are mapped to certain properties in the accessibility API 。如果您创建一个新属性,则无法告诉辅助功能 API 该属性的含义以及辅助技术(例如屏幕阅读器)应如何解释它。

目前你能做的最好的事情就是 add visually hidden text到您的元素,以便当焦点(无论是键盘焦点还是屏幕阅读器焦点)移动到该元素时屏幕阅读器可以读取它。

例如,

<div>
  <div>
    <a href="http://..." target="_blank">A Link <span class="sr-only">selecting this link will cause this element to be hidden</span></a>
  </div>
</div>

参见What is sr-only in Bootstrap 3?有关“仅 sr”类别的信息。

关于javascript - 如果不存在合适的 ARIA 属性,我是否应该使用自定义 ARIA 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54395017/

相关文章:

javascript - 如何在打印前隐藏按钮并在打印过程完成后显示它?

javascript - 一旦用户开始在文本字段中输入,您如何检查复选框?如果 javascript/html 中的文本字段为空,也取消选中复选框

html - 样式化输入类型 ="file"按钮

html - 带有 ID 属性的结束标记

javascript - 在移动 (JIL/W3C) 小部件中存储数据

javascript - JQuery-UI 选项卡的样式菜单选项卡

javascript - MongoDB 聚合 () - 错误 "TypeError: Cannot call method ' forEach' of undefined"

javascript - knockout 模板 : afterRender triggered twice because name/data are coupled observables

html - 仅使用 CSS 的导航栏动画/过渡

colors - 带 Alpha channel 的颜色的十六进制表示?