对之乎网页的无障碍优化建议

最近注册了之乎,使用几天下来,还是遇到一些影响读屏软件操作的问题。 另外昨天收到之乎的付鑫同学的私信,询问我在使用之乎过程中是否遇到什么障碍。 于是便总结一下。

1 页面顶部个人菜单: <li class="xns" id="xls"><a class="xms xks" href="/people/qt06"><img class="xjs" src="" /><span class="xis">杨永全</span></a></li> 建议增加"aria-haspopup"属性,这样读屏软件便可以正确提示有子菜单。参考代码: <li class="xns" id="xls"><a aria-haspopup=true class="xms xks" href="/people/qt06"><img class="xjs" src="" /><span class="xis">杨永全</span></a></li>

2 添加问题按钮: <div class="xqs">添加问题</div> 建议增加role的button属性,同时设置tabindex等于0,这样该按钮既可以有tab顺序,又可以被读屏软件正确提示。参考代码: <div role="button" tabindex="0" class="xqs">添加问题</div>

3 问题搜索框: <input type="text" class="xrs" name="q" autocomplete="off" value=""/><label class=xrr closure_uid_v9lxsf="13">搜索话题、问题或人…</label> 建议input增加id属性,并将label的for与之相关联,如此既可以扩大鼠标可点击范围,使得低视力用户可以点击label提示文本就可以激活输入框,又可以让读屏软件正确的提示该输入框。参考代码: <input type="text" class="xrs" id="q" name="q" autocomplete="off" value=""/><label for="q" class=xrr closure_uid_v9lxsf="13">搜索话题、问题或人…</label>

4 建议增加landmark功能。landmark是WAI-ARIA规范中提出的一种提高辅助工具操作网页效率的方法。通过给元素添加role属性,同时加上读屏软件的支持,可以让盲人很方便的在网页的不同区域之间跳转,加快访问速度。常用的landmark有"banner,complementary,contentinfo,main,navigation,search"等。 参考代码: <div role="main"></div><div role="search"><input type="text" name="srctxt" /></div> 详细介绍请参看:http://www.marcozehe.de/2009/10/31/easy-aria-tip-4-landmarks/

5 关于对话框焦点处理。建议当对话框弹出之后,自动把焦点设置到对话框内第一个元素上。当对话框关闭后,将焦点还给触发对话框的元素,或者把焦点给到对话框关闭后的提示信息上。

我注意到现在之乎的多数对话框(比如添加问题)都是模态对话框,而且都有aria属性,所以,读屏软件已经可以很不错的支持,但是唯一遗憾的就是对话框弹出之后,没有设置默认焦点。 给对话框设置默认焦点的好处很多,如果对话框的主要功能是接受用户输入,那么如果设置默认焦点为输入框,那用户便可以直接输入,而无需在点击鼠标或者用键盘切换寻找输入框,节省了用户的操作次数,提高了用户体验。可以参考新浪微博的转发和评论对话框。 同时,设置默认焦点,也可以方便读屏软件朗读,因为读屏软件可以捕捉焦点事件,主动告知用户,所以会带给盲人良好的操作体验。

而关于对话框关闭之后的焦点处理,其实是更为重要的细节,处理好会带给用户尤其是盲人等残障用户更加良好的体验。关于这个问题,我曾经针对新浪微博写过一篇讨论:关于网页中浮层消失后的焦点处理

之乎现在默认的对话框关闭之后焦点被丢弃,ie的默认行为是并没有设置焦点元素。这样的结果是,当按tab键切换的时候,焦点会从网页中的第一个焦点元素开始,这会带来极大的效率低下问题。 假设网页中的第30个链接点击之后弹出评论对话框,当评论完毕之后,便无法从这第30个链接开始向后切换其余的内容,而只能被迫从第一个链接开始,也就是意味着必须强迫键盘用户从头开始。 如果你使用过读屏软件操作这种交互,你就会感到极大的痛苦和愤怒。关于这一点,可以通过国内的主流微博来体验。

6 回答问题编辑器的一个问题。当在输入框内输入了若干内容,或者应该是当草稿被保存过之后,在按tab键的话,会出现焦点错误。表现是并不能切换到“取消草稿”和“保存草稿”这几个链接,而是焦点跳到了页面顶部。 这个问题很诡异,现在我也没明白是怎么出现的。

7 总结。虽然之乎网页还存在不少的影响读屏软件操作的问题,但总的来说已经相当不错了。必须提出的是,之乎采用的js框架内置了WAI-ARIA支持,在国内aria还没有得到广泛重视和关注,我想之乎是带了一个好头,希望未来会有更多网站支持aria,会有更多网站关注残障用户。

updatedupdated2012-04-242012-04-24