我对此进行了很多研究,似乎在 SO 和所有网络上都得到了相互矛盾的答案。我明白,对于第 508 节,合规性不等于可访问性。
最重要的是,UI/UX 设计师被告知下拉菜单的键盘快捷键需要具有符合 508 的键盘快捷键。我看到 Windows 窗体应用程序具有此功能,但对于 Web 开发,我认为“合规”不是强制性的
我回答的另一个问题在这里:MVC 4 site 508 compliant
我对此进行了很多研究,似乎在 SO 和所有网络上都得到了相互矛盾的答案。我明白,对于第 508 节,合规性不等于可访问性。
最重要的是,UI/UX 设计师被告知下拉菜单的键盘快捷键需要具有符合 508 的键盘快捷键。我看到 Windows 窗体应用程序具有此功能,但对于 Web 开发,我认为“合规”不是强制性的
我回答的另一个问题在这里:MVC 4 site 508 compliant
一些标准(以及许多法律)的问题在于它们对解释持开放态度......
我在 508 标准中唯一提到键盘使用的是这个(逐字):
B分部——技术标准
§ 1194.21 软件应用程序和操作系统。
(a) 当软件设计为在具有键盘的系统上运行时,产品功能应可从键盘执行,其中功能本身或执行功能的结果可通过文本识别。
我对此的看法是:
频谱的另一端是 WCAG,它与 508 合规性几乎相结合,在我的书中得到了更好的定义:键盘的东西在 WCAG 中是“可操作的”。
简而言之:对于用户体验来说,为重要功能提供自定义键盘快捷键是一种很好的做法。但本身与 508 合规性无关。(除了功能应该可以通过键盘访问 - 不知何故 - )。
我部分同意thinice,但同意评论的前两句话。
我指的句子是:
对于 508,它们应该可以通过键盘访问。我一直强调快捷方式和可访问之间的区别
Crixus 说:
最重要的是,UI/UX 设计师被告知下拉菜单的键盘快捷键需要具有符合 508 的键盘快捷键。
你需要澄清这一点。您是指<select>
导航菜单的简单菜单还是下拉菜单?正如 Thinice 在评论中所说,第 508 条只是说需要可达。问题变成:
你是如何为你的应用程序添加快捷键的?您是通过 accesskeys 属性添加它们还是 Gmail/Yahoo Mail 如何添加快捷键?
我以为我回答了有关 AccessKeys 的问题,但找不到。从本质上讲,accesskeys 听起来很棒,但是如果您查看允许使用的密钥,它们不会干扰浏览器或辅助技术密钥,那么您的能力就非常有限。Gez Lemon对 AccessKeys 及其问题进行了概述。如果你想使用 Yahoo!Mail 方法,你必须做更多的工作。Todd Kloots 做了一个关于 ARIA 的演讲,这可能会有所帮助。这使我进入第二部分。如果您在网站上大量使用 JavaScript 来做事,人们会同时使用1194.21(软件应用程序/操作系统)和1194.22(网络)标准来评估网站。如果网站使用JS制作navmenu(YUI菜单示例),下拉行为需要可以通过键盘访问。我会说这属于:
§ 1194.21 软件应用程序和操作系统。
(a) 当软件设计为在具有键盘的系统上运行时,产品功能应可从键盘执行,其中功能本身或执行功能的结果可通过文本识别。
和
(c) 应提供明确定义的当前焦点屏幕指示,随着输入焦点的变化在交互界面元素之间移动。焦点应以编程方式公开,以便辅助技术可以跟踪焦点和焦点变化。
我说这两个标准都被使用了,因为 (a) 说你必须能够通过键盘进入导航区域。(c) 之所以起作用,是因为您可以使用某些菜单tab访问所有父项,但如果没有鼠标则无法进入下拉部分。我见过的菜单,你可以tab到子菜单项,但菜单不弹出打开。因此,如果您只使用键盘(移动设备),而不是使用 JAWS,您将不知道自己在哪里。
我看到 Windows 窗体应用程序具有此功能,但对于 Web 开发,我认为“合规”不是强制性的
我会说实际的应用程序,如 Word、Outlook 等,提供常用命令的快捷方式。如果您是为 Web 应用程序执行此操作,我会考虑您做了多少。这不是必须遵守的。如果您正在制作导航栏,我建议您使用ARIA 角色,特别role="navigation"
是在父元素上作为最佳实践。
如果您谈论的是政府项目,则存在 508 合规级别。一些部门为他们的开发人员分配了 508 分,它会影响你未来合同的分数。508 合规性只要求所有内容都可以通过键盘访问,这在某种程度上通常是正确的。屏幕阅读器将阅读所有未隐藏的内容,并且 Tab 键将引导人们浏览链接。但如果你想要一个好分数,你必须解决意图,而不仅仅是法律条文。
编辑:屏幕阅读器将阅读一些隐藏的元素。一种方法是将项目绝对定位在屏幕上方,顶部位置为负。另一种是使用剪辑属性。 http://adaptivethemes.com/using-css-clip-as-an-accessible-method-of-hiding-content/ 但是如果你使用 display:none、零高度和 javascript 切换,许多屏幕阅读器会不讲这些项目。
在下拉的情况下,您正在积极地向屏幕阅读器等隐藏元素,因此您必须修复它,因为大多数阅读器不会听到 display:none 的内容。
您将找不到有关键盘导航的权威文档。没有人确切说明要做什么的原因是,有很多潜在的冲突——与浏览器、操作系统等。也没有标准,尽管 Aria 正在取得进展: http ://www.w3.org /TR/wai-aria-practices/#keyboard
如果这就是您的意思,我不会将 accessKeys 放在菜单上。
而是参见:http ://www.w3.org/TR/wai-aria-practices/#aria_ex_widget
我会为“搜索”和“主页”等主要内容保存实际的访问密钥。如果您拥有所有内容的访问密钥,则向您的站点添加学习曲线将无济于事。例如,如果您输入“About Us”accessKey=A,并且您有 20 个 accessKeys 分配给字母,那就不好了。
我做 508 网站已经很久了,就我个人而言,我只是不使用下拉菜单。添加子页面菜单要简单得多。我个人讨厌点击下拉菜单。下拉菜单需要精确的点击,这只会让我感到恼火,并且对可访问性没有帮助,因为记住可访问性还包括点击不佳的人。另外,下拉菜单在您可以拥有的级别数量上是有限的,这不是技术上的,而是从用户体验角度来看的。
我用什么:
问题尤其是在排序信息方面。想想你扫描一长串链接的速度有多快,然后想象坐在那里等待它被读给你听。也许,将您的内容组织成易于理解的部分并让搜索框进行扫描。取决于内容。
运气。:)