我需要角色=&#34;按钮&#34;在<按钮>?</按钮>

时间:2014-11-14 16:36:11

标签: html5 twitter-bootstrap accessibility wai-aria

我在使用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"吗?

6 个答案:

答案 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

问题中的信息表明Bootstrap示例中的所有按钮都使用role=button是不正确的。只有在逻辑上表现为切换按钮的按钮才会被标记为。

在按钮元素上使用role =按钮

通常需要使用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 =按钮

由于这个问题也提到type=button,我会详细说明。根据{{​​3}},按钮元素上类型的缺失默认值为type=submit,其激活行为是提交表单所有者(如果有)。没有与type=button相关联的激活行为。

因此,{<1}} 应该为给定的案例指定

答案 2 :(得分:2)

<button>标记可以是以下三种内容之一:

  1. 一个常规按钮,用于执行您在点击(type = button)时指定的内容。
  2. 提交按钮,在点击(type = submit)时提交表单。
  3. 重置按钮,可在单击时将表单重置为初始值(type = reset)。
  4. 最好指定您打算使用哪种类型,因为不同的浏览器对按钮使用不同的默认值。

    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 ]规范。

https://w3c.github.io/html-aria/#document-conformance-requirements-for-use-of-aria-attributes-in-html

相关问题