我在使用button
元素的所有Bootstrap示例中都注意到,它们包括role="button"
(和type="button"
),例如:
<div class="dropdown">
<button id="dLabel" type="button" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Dropdown trigger <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
...
</ul>
</div>
辅助功能软件是否已知道button
元素是否可用作按钮?我有什么理由在我的代码中加入role="button"
和/或type="button"
吗?
答案 0 :(得分:24)
许多HTML5元素附带默认隐式ARIA语义,并且明确设置这些默认值为&#34; unnecessary and not recommended&#34;。
查看button
element,您可以看到它默认为button
role。
因此,设置role="button"
是&#34;不推荐&#34;,但允许。 可能帮助支持WAI-ARIA但不支持HTML5的旧用户代理。
答案 1 :(得分:12)
TL; DR 对于给定的情况,应指定role=button
,因为它的行为与切换按钮相同。也应该使用type=button
。
问题中的信息表明Bootstrap示例中的所有按钮都使用role=button
是不正确的。只有在逻辑上表现为切换按钮的按钮才会被标记为。
你不通常需要使用role=button
,因为按钮元素具有强大的本机语义。此外,根据ARIA usage note in W3C's HTML5 specification:
在大多数情况下,设置与默认隐式ARIA语义匹配的ARIA角色和/或aria- *属性是不必要的,不推荐使用,因为浏览器已经设置了这些属性。
有一个例外,对于切换按钮,在给出的示例中就是这种情况。
根据W3C Using WAI-ARIA in HTML中的建议表:
HTML语言功能:按钮
默认ARIA语义: role = button
作者应该明确定义默认的ARIA语义吗?不(注0a)
注意0a:是如果按钮元素上使用了按下aria的属性
所以你应该设置切换按钮的角色,但不是。
由于这个问题也提到type=button
,我会详细说明。根据{{3}},按钮元素上类型的缺失默认值为type=submit
,其激活行为是提交表单所有者(如果有)。没有与type=button
相关联的激活行为。
因此,{<1}} 应该为给定的案例指定。
答案 2 :(得分:2)
<button>
标记可以是以下三种内容之一:
type = button
)时指定的内容。type = submit
)时提交表单。type = reset
)。最好指定您打算使用哪种类型,因为不同的浏览器对按钮使用不同的默认值。
http://www.w3schools.com/tags/att_button_type.asp
该角色不包含 ,但它对于accessibilty软件很有用。
那么,你必须包含它们吗? 不,你没有,但通常建议你这样做。
答案 3 :(得分:1)
Here说:
注意:如果可能,建议使用本机HTML按钮(和)而不是按钮角色,因为旧版用户代理和辅助技术更广泛地支持本机HTML按钮。默认情况下,原生HTML按钮也支持键盘和焦点要求,无需进行其他自定义。
使用按钮角色时,用户代理应将元素公开为操作系统辅助功能API中的按钮控件。屏幕阅读器应将元素声明为按钮并描述其可访问的名称。语音识别软件应该允许通过说“单击”然后按钮的可访问名称来激活按钮。 注意:关于辅助技术应该如何处理这种技术的观点可能有所不同。以上提供的信息是其中一种意见,因此不具备规范性。
然后你应该添加它。为了向用户公开。但不是规范性的。
答案 4 :(得分:0)
角色=&#34;按钮&#34;
对于Bootstrap
,这不是强制性的
答案 5 :(得分:0)
现在,“ HTML中的ARIA”中更详尽地记录了要求和建议。
下表提供了HTML文档中使用ARIA标记的规范化每个元素的文档一致性要求,并描述了适用于HTML元素的隐式ARIA语义,如HTML Accessibility API Mappings 1.0 [html-aam-1.0 ]规范。