如果空格键在所有浏览器中打开下拉菜单,为啥我的 onchange 触发菜单被认为无法访问

Posted

技术标签:

【中文标题】如果空格键在所有浏览器中打开下拉菜单,为啥我的 onchange 触发菜单被认为无法访问【英文标题】:If spacebar opens dropdowns across all browsers, why is my onchange triggered menu considered inaccessible如果空格键在所有浏览器中打开下拉菜单,为什么我的 onchange 触发菜单被认为无法访问 【发布时间】:2015-06-29 16:38:21 【问题描述】:

背景:对于使用 Chrome 和 IE 的 Windows 用户,重新加载或更改页面的下拉菜单不利于可访问性。一旦用户按下向下箭头按钮,页面就会重新加载。这意味着用户只能访问第一个菜单选项。这是一个例子:http://html.cita.illinois.edu/script/onchange/onchange-example.php

WCAG 规则涵盖了这一点: “更改任何用户界面组件的设置不会自动导致上下文更改,除非用户在使用该组件之前已被告知该行为。 (A级)”

除了用户可以非常轻松地打开下拉菜单并浏览所有选项而不会触发 onchange 事件。用户通过按空格键来执行此操作。这是一个非常常见的键盘技巧,我看到所有测试过的用户都已经知道或能够快速弄清楚。

在我的系统中,我们使用下拉菜单在长目录中进行分页。 EG:“您在第 [1^] 页,共 16 页”([1^] 是浏览器默认下拉菜单)。设计师不允许任何视觉的 [go] 按钮。这发生在数千个页面上,我看到的 javascript 修复需要考虑每个下拉列表,而这在我们的案例中是不可能的。

使用空格键,用户可以查看所有选项并仅使用键盘从列表中的任何位置进行选择。那么为什么自动重新加载 onchange 的下拉页面菜单仍然被认为无法访问?如果我们在屏幕阅读器中包含“按空格键打开此菜单,进行选择将加载您的下一页”的文本,它们是否会被认为是可访问的?

【问题讨论】:

【参考方案1】:

除了在 Firefox 中,键盘命令实际上是 F4,你是对的 - 这不是 WCAG 2 违规,而是最佳实践

这是一个您可以测试的页面:http://dylanb.github.io/onchange_select.html

【讨论】:

以上是关于如果空格键在所有浏览器中打开下拉菜单,为啥我的 onchange 触发菜单被认为无法访问的主要内容,如果未能解决你的问题,请参考以下文章

如何在空格键按下时打开剑道下拉菜单

为啥我的第二个下拉菜单是复制我的第一个下拉菜单的更改操作

如何在简单的下拉菜单代码中摆脱 <li> 之后的神秘额外空格? [复制]

腾讯文档表格里为啥没有粘贴功能?

打开下拉菜单后在 QtWebEngine 中触摸冻结

为啥源代码管理下拉菜单中没有我的项目名称?