按钮可以由鼠标用户和键盘用户操作。但是如果使用其他标签来创建“自定义按钮”,那么onclick事件只会在点击鼠标光标时触发,即使使用role="button" 。因此,开发人员必须向元素添加一个单独的关键事件处理程序,以便在按下 Space or Enter 时触发按钮。

Warning: 把给一个链接标记为按钮角色的链接时要谨慎。换句话说,当链接被用来作为按钮的时候,仅仅添加role="button"是不够的。还需要添加一个 key 事件处理程序来侦听 Space 键,以便与原生按钮保持一致。

使用role="button"的一个优点是它允许创建切换按钮。一个切换按钮可以有两个状态:pressed,not pressed。除了 button角色之外,按钮是否为切换按钮,也可以用aria-pressed的属性来表示。

如果没有 aria-pressed表明这不是一个切换按钮。

按钮应该总是有一个可访问的名称。对于大多数按钮,这个名称将与按钮中的文本相同。在某些情况下,例如图标按钮,可通过 aria-label 或 aria-labelledby 属性提供可访问的名称。

当使用 button 角色时,用户代理应该将该元素公开为操作系统的易访问性 API 中的按钮控件。屏幕阅读器应该将元素声明为一个按钮并描述其可访问的名称。语音识别软件应该可以通过说:"点击"+ 按钮的可访问的 name 就能激活这个按钮。

备注: 关于辅助技术如何处理这种技术,意见可能有所不同。上面所提供的信息是其中之一,因此并非规范。