Bootstrap Dropdown.js:哪些HTML属性真的需要? (数据目标,角色,咏叹调......)

时间:2013-07-16 06:46:28

标签: twitter-bootstrap drop-down-menu wai-aria

我们使用Dropdown.js of Bootstrap

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

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

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

但是,合作开发人员认为,我们还需要data-target='#'role='button/menu',甚至aria-labelledby=...。这是正确的吗?我们真的只想要下拉功能,没有额外的辅助功能。

感谢您提供信息。

1 个答案:

答案 0 :(得分:3)

关于<a>aria-labelledby,请参阅w3.org

  

[..]目前aria-labelledby和aria-describedby更加强大   支持将文本内容与交互式子集相关联   内容要素。 在撰写本文时,它们无法正常工作   链接 [编辑:添加阻止bug链接?],对嵌入式内容的支持是   未知,但可以安全地用于表单控件,包括许多   输入类型。

有意义的是,还应该有一个元素aria-labelledby地址,例如

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

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


对于role="button/menu",找不到准确的文档,但我认为“发明”新的角色类型不合法,例如button/menu。只有the standard roles才合法。读者如何解析按钮/菜单?即使它分裂,这两个角色也不兼容。有关在不同情况下如何以及何时使用角色属性,请参阅此w3 recommendation table


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