【发布时间】:2017-04-11 19:32:14
【问题描述】:
我的任务是完成 a11y 项目清单。 (http://a11yproject.com/checklist.html) 对于那些不确定那是什么的人。
我注意到,在我们的网站 (www.adn.com) 上,当您浏览网站时,它会遍历我们的整个左侧栏菜单,然后才进入文章内容。
是否有某种方法可以控制我们的网站对于仅使用键盘的用户“通过选项卡浏览”的顺序?
行业新手,目前是初级开发人员。抱歉,如果这是一个简单的问题。
【问题讨论】:
我的任务是完成 a11y 项目清单。 (http://a11yproject.com/checklist.html) 对于那些不确定那是什么的人。
我注意到,在我们的网站 (www.adn.com) 上,当您浏览网站时,它会遍历我们的整个左侧栏菜单,然后才进入文章内容。
是否有某种方法可以控制我们的网站对于仅使用键盘的用户“通过选项卡浏览”的顺序?
行业新手,目前是初级开发人员。抱歉,如果这是一个简单的问题。
【问题讨论】:
你要找的是tabindex
w3schools 示例
<a href="https://www.w3schools.com/" tabindex="2">W3Schools</a>
<a href="http://www.google.com/" tabindex="1">Google</a>
<a href="http://www.microsoft.com/" tabindex="3">Microsoft</a>
【讨论】:
您遇到的问题不是 tabindex 问题,因为 tabindex 对于菜单在 DOM 中的位置是正确的。 (也将 tabindexes 更改为超过 0 或 -1 的值确实会破坏界面的预期 tab 顺序)。
这里发生的情况是菜单已通过将其放置在屏幕外而在视觉上隐藏,但尚未对键盘用户/屏幕阅读器充分隐藏。
您需要更新菜单的 CSS,以便当它位于屏幕外时,id="slider-menu-nav-list" 设置为 display: none。那么当菜单按钮被激活时,#slider-menu-nav-list应该设置为display: block;
进一步查看源代码,您还必须将“菜单”按钮更改为实际的 <button> 元素,因为它目前无法作为 <div><span> 组合使用键盘,因此目前无法使用键盘用户实际打开菜单。 (并非所有键盘用户都是盲人,看不到当前键盘焦点的位置可能会令人沮丧)。
希望这会有所帮助!
【讨论】: