由于我们不将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=...
。这是正确的吗?我们真的只想要下拉功能,没有额外的辅助功能。
感谢您提供信息。
答案 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=
在这种特定背景下浪费时间。