【问题标题】:Buttons and links keyboard triggers按钮和链接键盘触发器
【发布时间】:2017-06-09 23:18:40
【问题描述】:

在做研究的时候我遇到了this statement

警告:使用按钮角色标记链接时要小心。 按钮应使用 空格键 触发,而链接 预计将使用 Enter 键触发。

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

  2. 可以同时使用SpaceEnter触发吗?

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


快速浏览一下 Google,看看他们做了什么。

  • 对于 links Space 向下滚动并 Enter 触发器
  • 对于 按钮 SpaceEnter 触发器

【问题讨论】:

    标签: html hyperlink accessibility keyboard-events htmlbutton


    【解决方案1】:
    1. 按钮是表单元素。

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

      为了保持连贯性,按钮的行为方式相同。在实践中,他们接受 enterspace 没有任何区别。

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

      阅读里面的Third rule of ARIA

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

    3. 据我所知,这是出于历史原因,并不是任何官方推荐中定义的

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

    【讨论】:

    • 谢谢,这很有意义。很高兴知道 ARIA 的第三条规则,MDN 文章似乎没有提到任何关于它的内容,所以我会看看我是否可以编辑它。
    【解决方案2】:

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

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

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

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

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

    然后让我补充一下:

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

    来源:Links, Buttons, Submits, and Divs, Oh Hell

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多