在进行研究时,我遇到了this statement:
警告:使用按钮角色标记链接时要小心。 预计按钮将使用 Space键和链接触发 预计将使用 Enter 键触发。
有谁知道为什么不同的键用于按钮/链接?
是否可以同时使用 Space 和 Enter 触发?
在阅读本文之前,作为用户,我不知道何时使用 Space 或 Enter 。
快速浏览一下Google,看看他们做了什么。
答案 0 :(得分:2)
按钮是表单元素。
如果选择checkbox
元素, space 将切换复选框,而 enter 将提交表单。
因此,为了保持连贯性,按钮的行为方式相同。在实践中,他们接受输入和空间没有任何区别。
这不仅可以,但你必须
在Third rule of ARIA内阅读:
例如,如果使用role = button,则元素必须能够获得焦点,并且用户必须能够使用enter(在WIN OS上)或返回(MAC OS)激活与元素关联的操作)和空格键。
这是出于历史原因,而不是在任何官方推荐中已定义,据我所知
例如,2000年的一个旧版本(https://bugzilla.mozilla.org/show_bug.cgi?id=56495)已经声明空格键可以用于按钮。也许是Windows行为的继承。
答案 1 :(得分:0)
我猜测回答#1,但我相信用于激活按钮和超链接的密钥是来自操作系统的保留。对于超链接,请考虑Windows 95中的Windows帮助及其依赖于内容链接或Mac之前的Hypercard。另请注意,自{IIRC)第一天起,Space
已在浏览器中滚动页面。
要回答2号,不是不行。这是因为空格键会触发页面滚动,许多用户希望当焦点位于超链接上时按Space
只会滚动页面。
简而言之,尊重现有的键盘映射,因为有些用户依赖它们并且弄乱它们会对辅助技术用户以及不使用辅助技术的残疾用户造成灾难性后果。
让我重新说明你在Mozilla看到的内容:
按Enter键可以触发超链接。但是按下回车键或空格键可以触发真正的按钮。当超链接具有焦点并且用户按空格键时,页面将滚动一个屏幕。
然后让我补充一下:
我认为值得一提的是,空格键触发的事件仅在释放键时触发,而使用Enter键会在您按下键时(在释放键之前)立即触发事件。