盲人站长深恶痛绝的onfocus=”this.blur()”

标签: 前端技术 设计探讨 | 发表时间:2011-04-15 20:13 | 作者:妙净 DeadPoet
出处:http://ued.taobao.com/blog

杭州最美的季节里,淘宝无障碍访问改善小组有幸邀请到盲人在线站长——争渡读屏团队成员——杨永全同学和我们一起面对面交流网站无障碍访问方面的问题。杨同学使用电脑必须使用读屏软件,就像他看不到我们的脸必须靠声音识别我们一样。在谈到读屏软件操作页面时,他对我们前端的同学特别的强调:他最深恶痛绝的就是页面链接上有 onfocus=”this.blur()” 这句代码,这从何说起呢?

各种浏览器虚线框差异图

(图一)

各位同学,看到这句代码有没有觉得眼熟,对的,你懂的,我们常用它来去除链接取得焦点时外围出现的虚线框(如上图一),google一下,前面几十页谈的都是这个去除虚线框的技巧。但我们也许以前从未想过:我们的这行代码给盲人用户们带来了巨大的困扰:这中断了盲人用户的Tab键路径,导致Tab光标无法聚焦页面的下一个控制器(链接、表单域、object、image map等)。测试如下:

<body>
<a href=”#” >第一个链接</a>
<a href=”#” >第二个链接</a>
<a href=”#” onfocus=”this.blur();”>第三个链接</a>
<a href=”#” >第四个链接</a>
<a href=”#” >第五个链接</a>
<a href=”#” >第六个链接</a>
</body>

按下Tab键,第一和第二个链接都可以正常获取焦点,继续Tab到第三个链接时,悲剧出现了:此时焦点会回到第一个链接,而无法Focus到第四个链接,原因是当Focus到第三个链接时,onfocus=”this.blur()” 事件处理强制触发了失焦,焦点重新回到文档的最开始。于是不停按Tab的结果就是焦点在前面三个链接轮流转,后面的内容通过Tab键无法访问[1]。

虚线框影响视觉效果 (图二)

那么,有更好的方式吗?从根源上看,加onfocus=”this.blur()”是为了去除链接获取焦点后外围的虚线框(当然chrome、safari、opera下的focus效果各异,这里姑且就这么叫吧 )。W3C关于Outline的文章里说明这个虚线框用来告诉用户当前页面获取焦点的元素。我觉得,虚线框的存在有它的合理性,但有时你也许无法回避某些”视觉洁癖”需求(如图二:虚线框使“商品”背景和下面的红色色块分隔开了),以下总结了去掉虚线框的几种常用方法:

去除虚线框的方法 优劣 兼容性 是否中断tab
<a href=”#” onfocus=”this.blur()”>this blur</a> 链接聚焦触发时失去焦点,js和html耦合在一起 没有兼容性问题
a:focus {outline:none}或
a{outline:none}
outline由css2.1引入,去除虚线框视觉上的问题正是css的职责 ie6/ie7不支持,ie8+/ff /safari/opera[2]支持
<a href=”#” hidefocus=”true” >hidefocus</a> 该属性是ie的私有属性[3] ie5+支持
a { noFocusLine: expression(this.onFocus = this.blur())} 可批量处理,但expression的性能问题不能忽视 expression ie6/7支持,ie8+、非ie不支持

综合以上,去除链接虚线框的推荐方法是:ie下用hidefocus属性,ff/chorme/opera/safari下用outline:none。即:

<a href=”#” hidefocus=”true” >链接</a>
a:focus {
    outline:none;
}

杨永全同学无奈地说,如果页面因为onfocus=”this.blur()”导致tab无法访问页面全部内容,争渡读屏软件在读取页面之前会强制过滤掉这个属性,但是如果用户是在js里面动态触发this.blur(),读屏软件又要出新招来克制了。这无疑增加了读屏软件的开发工作量,为了让盲人用户们能更顺畅的访问我们的网站,尽量避免使用onfocus=”this.blur()”哦。

注释

[1]Safari默认情况下,按tab键是不会focus链接的,但会focus表单域,在偏好设置-高级勾选“按下tab以高亮显示网页上的每一项”可开启该功能。Opera比较特殊,它通过shift+上下左右方向键可以向上下左右focus页面焦点。

[2]在Opera下点击链接(focus和active状态)时都不会出现所谓的虚线框,所以Opera下链接的虚线框问题可以不计。 Opera 通过shift+上下左右键产生的线框通过outline:none并不能去除,但是Opera支持outline这个属性。

[3]hidefocus属性是ie的私有属性,虽然hidefocus属性有true or false两个值,但测试结果是ie5-ie9不管其值为true or false, 只要添加hidefocus属性,该链接都会失去虚线框。

相关 [盲人 站长 onfocus] 推荐:

盲人站长深恶痛绝的onfocus=”this.blur()”

- DeadPoet - Taobao UED Team
杭州最美的季节里,淘宝无障碍访问改善小组有幸邀请到盲人在线站长——争渡读屏团队成员——杨永全同学和我们一起面对面交流网站无障碍访问方面的问题. 杨同学使用电脑必须使用读屏软件,就像他看不到我们的脸必须靠声音识别我们一样. 在谈到读屏软件操作页面时,他对我们前端的同学特别的强调:他最深恶痛绝的就是页面链接上有 onfocus=”this.blur()” 这句代码,这从何说起呢.

盲人摸象和“忙人”摸象

- Fanny - 左岸读书_blog
文章来自著名的时间管理者GTDLift. 原文地址:http://www.gtdlife.cn/2011/2235/the-busy-person-traces-the-elephant/. 迦南老师从小受到父亲的影响研习佛法,长大后学习过瑜伽、心理学、并且到处讲学五年有余,她的课程具有独特的气场和魅力,她本人也总是面带释然的微笑和平和的声音.

盲人被控下载色情

- hao - Solidot
电影公司的反盗版律师对美国BT用户发起了大规模的诉讼,有数以千计的人被控下载版权内容,他们可能将不得不支付罚款. 但富有戏剧性的是,一名被控下载色情电影Tokyo Cougar Creampies的用户是一名盲人,他根本没有能力去观看包括色情在内的任何电影. 代号为John Doe 2,057的盲人说,他没有电影欣赏能力,他的孩子只有4岁和6岁,他相信他们不可能去看色情,他怀疑可能是邻居访问了他家的开放WiFI.

盲人也能用平板电脑

- bamerl - 果壳网 guokr.com - 果壳网
作者:木灵 在平板电脑触屏上进行盲输入是一件相当棘手的事,并且通常还需要有笨重而昂贵的专用设备来支持,有些设备甚至高达6,000美金,却只能实现非常有限的功能. 为改变这种情况,来自斯坦福的研究小组研制出了一个新型触摸屏接口,使得在平板电脑的手触版上进行盲输入操作成为现实. 小组最初是为陆军高性能计算机研究中心设计盲文字符识别器,研究中心每年都会邀请全国各地的大学生到斯坦福中心,参加为期两个月的暑期高级计算机竞赛.

BlindSquare:利用 LBS 数据帮助盲人

- - 爱范儿 · Beats of Bits
最近 Foursquare 积累了数量庞大的真实地理位置数据,它拥有 2000 万名用户以及 20 亿次签到. 这些数据不但可以 帮助商户掘金,还可以帮助盲人导航. iOS 应用 BlindSquare 利用 Open Street Maps 来定位用户的位置,然后通过 Foursquare 的数据找出附近有什么地方,再通过苹果内置的 VoiceOver 或 Acapela Group 提供的文本转声音服务,将地名读出来,好让用户知晓,这样便为盲人创建了一个由语音构成的地图.

翻译-盲人如何使用互联网的8个误区

- - 张鑫旭-鑫空间-鑫生活
本文地址: http://www.zhangxinxu.com/wordpress/?p=3073. 本文原址: http://speckyboy.com/2013/02/04/…internet/. 本文作者: David Ball – 大卫·皮球. 翻译编辑: zhangxinxu. 作为一个脑袋没有被驴踢过前端开发人员,显然听说过可访问性这个东西.

站长的网站安全保护

- zou guangxian - Google 黑板报 - Google (谷歌)中国的博客网志,走近我们的产品、技术和文化
发表者:Gary Illyes,Webmaster趋势分析师(Trends Analyst). 原 文:Website Security for Webmasters. 发布时间:2011年5月19日 下午 03:58:00. 用户们都被教育通过安装复杂的杀毒软件来保护自己免受恶意程序的侵扰,但是通常他们还可能将私人信息委托给您这样的网站,这时保护他们的数据就变得十分重要.

谈个人站长的出路问题

- - 慕容鱼吐的新闻泡
陈一舟是个牛人,花钱的牛人,caoz自愧不如,搞chinaren,上千万美金biu的一下就烧完了,然后没辙了,投资商替他擦的屁股,这次mop又把千万美金biu的一下烧完了,不知道谁替他再擦一次屁股. 古永锵也是个牛人,从休业在家就开始不断包装炒做自己,但凡一个大公司有职位出缺,就有古永锵要去补缺的传言,反正传言不要钱,先来两盘扔出去看看,然后终于尘埃落定要做视频了,又开始炒张钰,最近又炒百度,只要有新花样,就不怕看客们审美疲劳.

12大穿戴式科技产品:从充电靴到盲人短信手套

- - 互联网的那点事
当今的人们已经越来越离不开科技,智能手机、笔记本、平板电脑已经渗透到生活的方方面面,但却并未阻止创新者和发明家继续拉近我们与科技的距离. 谷歌眼镜或许是当今最著名的穿戴式科技产品,但类似的设备还有很多,从给手机充电的靴子到方便盲人发短信的手套,不一而足. 美国科技博客BusinessInsider今天撰文,罗列了12款穿戴式计算设备,击鼓T恤、太阳能比基尼、音乐手套均榜上有名.