0

在进行研究时,我遇到了以下声明

警告:使用按钮角色标记链接时要小心。按钮应使用 触发Space key,而链接应使用Enter键触发。

  1. 有谁知道为什么按钮/链接使用不同的键?

  2. Space可以同时使用and触发Enter吗?

在阅读本文之前,作为用户,我不知道何时使用Spaceor Enter


快速浏览了谷歌,看看他们做了什么。

  • 对于链接 Space向下滚动并Enter触发
  • 对于按钮SpaceEnter触发器_
4

2 回答 2

2
  1. 按钮是表单元素。

    如果您选择一个checkbox元素,将在提交表单space时切换复选框。enter

    因此,为了保持连贯性,按钮的作用方式相同。在实践中,他们接受两者enter并且space没有任何区别。

  2. 这不仅没问题,而且你必须

    阅读ARIA 的第三条规则

    例如,如果使用 role=button,则元素必须能够接收焦点,并且用户必须能够使用 enter(在 WIN OS 上)或 return(MAC OS)和空格键激活与元素关联的操作。

  3. 据我所知,这是出于历史原因,而不是在任何官方建议中定义过

    例如,2000 年的一个旧错误 ( https://bugzilla.mozilla.org/show_bug.cgi?id=56495 ) 已经表明空格键应该在按钮上起作用。也许是从 Windows 行为的继承。

于 2017-01-25T12:14:17.817 回答
0

我想回答 #1,但我相信用于激活按钮与超链接的键是操作系统的保留。对于超链接,请考虑 Windows 95 中的 Windows 帮助及其对内容链接的依赖,或者在此之前的 Mac 上的 Hypercard。另请注意,Space自(IIRC)第一天以来,它已经在浏览器中滚动了一个页面。

要回答第 2 个问题,不,这不行。这是因为空格键会触发页面滚动,并且许多用户希望当焦点位于超链接上时,按下Space只会滚动页面。

简而言之,尊重现有的键盘映射,因为有些用户依赖它们并弄乱它们可能会对辅助技术用户以及不使用辅助技术的残疾用户造成灾难性后果。

让我重申一下你在 Mozilla 看到的情况:

按下回车键可以触发超链接。但是可以通过按回车键或空格键来触发真正的按钮。当超链接具有焦点并且用户按下空格键时,页面将滚动一屏。

然后让我添加这个:

我认为还值得一提的是,由空格键触发的事件仅在释放键时触发,而使用 Enter 键将在您按下键时触发事件(在释放它之前)。

资料来源:链接、按钮、提交和 Div,哦,见鬼

于 2017-01-25T02:33:11.817 回答