3

我们使用Bootstrap 的 Dropdown.js

由于我们不将 Bootstrap 用于应用程序的任何其他部分,因此我们通常不使用 aria 属性,所以现在我们不确定,我们可以从复制和粘贴的 HTML 结构中去除哪些属性。

在我看来,我们只需要这个:

<a href='#' class='dropdown-toggle' data-toggle='dropdown'>Dropdown</a>
<ul class='dropdown-menu'>
  <li><a...>...</a></li>
</ul>

但一位共同开发者认为,我们还需要data-target='#'and role='button/menu',甚至是aria-labelledby=...东西。这是正确的吗?我们真的只想要下拉功能,没有其他与可访问性相关的东西。

谢谢你告诉我这件事。

4

1 回答 1

3

关于<a>aria-labelledby查看w3.org

[..] 目前 aria-labelledby 和 aria- describeby 更强大地支持将文本内容与交互式内容元素的子集相关联。在撰写本文时,它们在链接上无法正常工作[EDITOR: add blocking bug link?],对嵌入式内容的支持尚不清楚,但可以安全地用于包括许多输入类型在内的表单控件。

为了有意义,还应该有一个元素aria-labelledby地址,比如

<a href="#" aria-labelledby="meaningless">link</a>
<span id="meaningless">click here</span>

显然<a>-tags 是交互式的,但有自己的标签。


至于role="button/menu",找不到确切的文档,但我不认为“发明”新角色类型是合法的,比如button/menu. 只有标准角色是合法的。读者应该如何解析按钮/菜单?即使分开,这两个角色也不兼容。请参阅此w3 推荐表,了解在不同情况下如何以及何时使用角色属性。


我个人的结论:完全同意你的看法,Joshua Muheim -在这种特定情况role='button/menu'aria-labelledby=是浪费时间。

于 2013-07-16T08:44:52.300 回答