网页的可访问性,似乎只能由前端来并实现。这点挺可悲,作为可用性的一部分——可访问性,居然只能由技术人员来掌控,这是我不愿意看到的。但反过来,这给前端开发工程师们新增加了一个责任,同时为如何区分优秀的前端增加了一个指标.事情的缘由是,前两个礼
网页的可访问性,似乎只能由前端来并实现。这点挺可悲,作为可用性的一部分——可访问性,居然只能由技术人员来掌控,这是我不愿意看到的。但反过来,这给前端开发工程师们新增加了一个责任,同时为如何区分优秀的前端增加了一个指标. 事情的缘由是,前两个礼拜打了个“飞的”去北京玩,见了一位在百度做前端的朋友。过去一年以来,这家伙就不停的在鼓动我去他们那个的公司。当然,见面之后就不能再当面称呼人家是的公司啦,所以我就找了个理由,说你们那个“百度盲道”做得太垃圾了。他当然就很虚心的问我为什么啦。所以我也只能很心虚的糊弄了几句,说回上海之后详细告诉他。
事情的缘由是,前两个礼拜打了个“飞的”去北京玩,见了一位在百度做前端的朋友。过去一年以来,这家伙就不停的在鼓动我去他们那个的公司。当然,见面之后就不能再当面称呼人家是的公司啦,所以我就找了个理由,说你们那个“百度盲道”做得太垃圾了。他当然就很虚心的问我为什么啦。所以我也只能很心虚的糊弄了几句,说回上海之后详细告诉他。
回来之后,就马上很虚心的翻出一本老旧的电子书——《Dive Into Accessibility》,认认真真的看了一遍。
然后惊奇的发现:
1. 虽然我没看过这本书,但里面讲的大部分,我平日里都有遵守。果然,坚持好习惯是值得表扬的。
2. 网页的可访问性,似乎只能由前端来并实现。这点挺可悲,作为可用性的一部分——可访问性,居然只能由技术人员来掌控,这是我不愿意看到的。但反过来,这给前端开发工程师们新增加了一个责任,同时为如何区分优秀的前端增加了一个指标。
好吧,下面我把这本Dive Into Accessibility的内容作一个摘要,看看对于可访问性,应该要注意哪些问题:
1. 标明语言(Identifying your language)
这一条的意思是,加上lang属性,如。如果其中有一段是其他的语言,就在那一段的标签上加lang属性。这一条我做得不好,以后记得。
2. 构建有意义的页面标题(Constructing meaningful page titles)
有几点值得一提:
a) 做页面时,千万不要忘记写title。我见过好多页面的title是“Untitled Document”或“新建页面”,丢脸啊~
b) title到底应该是“小标题”在前呢,还是“大标题”在前?现在的惯例似乎都是“小标题”在前,比如“影音娱乐首页_网”。但我个人倒是有个看法,或许大标题在前比较好。这样当我把“网_影音娱乐首页”、“网_中心首页”放入收藏夹时,它们会因为音序排序而呆在一起,而不是散乱在各处。当然这个也不一定,仅供参考。
c) 对于英文的标题,一定要注意尽量不要把The放在title的前面,否则你的网页在收藏夹里就会被排在T开头了。
3. 提供额外的导航辅助(Providing additional navigation aids)
这一条是说要加 <link rel=”home” title=”Home” href=”http://url/of/home/page” /> 这个。这个其实我知道。但是貌似对于页面里这么多链接,要都加上rel和rev属性,有点难度。
4. 先呈现主要内容(Presenting your main content first)
好啦,这就是一条典型的“指望优秀的CSS”的可访问性原则啦。把<div class=”main”>放在<div class=”side”>的前面,其实挺考验CSS技术的。一道著名的题目是:如何让侧栏固定宽度,主栏宽度自适应,同时主栏的HTML要在侧栏 的前面。我很想放在我的面试题里,可又觉得是不是太刁难了。但是,无论如何,这道题目很重要!
5. 用于跳过导航栏的链接(Skipping over navigation links)
很重要!这个在骨灰级网页标准教程《网站重构》里就提到了。只是有一点我比较怀疑,如果把skip link设为display:none,难道不怕被阅读器也忽略掉么?
6. 安全的使用颜色(Using color safely)
这条其实讲了几个要点:
a) 颜色对比要够,否则眼神不好的人看起来费劲
b) 链接的颜色,最好用蓝色(像我比较喜欢用#09c)
c) 链接最好有下划线
7. 用“真链接”(Using real links)
意思是,即便这个链接是用于触发Ajax,也要把Ajax代码片段的URL放在href里,好让搜索引擎以及阅读器等等能够爬到。关于此条,请参看土豆网首页的“挖土豆”一块。
8. 给链接加“title”属性(Adding titles to links)
这个还用说么,可用性两大重点:a的title和img的alt。
呼~~~先结束这第一回合吧。如果你对可用性感兴趣,可以详细的读一下这本“Dive Into Accessibility”,尤其是前5节。然后可以再去看看那个可恶的“百度盲道”,我接下来会专门用一篇来诅咒这个忽悠人士的无良黑心产品。

网页的可访问性,似乎只能由前端来并实现。这点挺可悲,作为可用性的一部分——可访问性,居然只能由技术人员来掌控,这是我不愿意看到的。但反过来,这给前端开发工程师们新增加了一个责任,同时为如何区分优秀的前端增加了一个指标.
9. 定义键盘快捷键(Defining keyboard shortcuts)
意思就是定义accesskey属性。这个好说。有个关键是如何在浏览器里使用。IE里是“alt+”,并且只是将焦点移过去,要点击需要再按 enter;Firefox是“shift+alt+”,按下之后直接触发点击事件。Opera和Chrome还有Safari,我都没试出来,有知情者 请告知。
感谢aoao提供:Safari 4/mac control+alt+key | /win alt+key
Opera Shift+Esc 选key
Chrome 3 alt+key

除了accesskey,其实还有一个更重要的:tabindex。有时候需要改变默认的tabindex顺序,以期得到更便利的体验。举个例子,如下格式的登陆框:
用户名
记住我
密码
忘记密码
按照默认的顺序,按下tab键,焦点会依次经过“用户名”、“记住我”、“密码”。但是似乎把“记住我”放在“密码”之后更方便,毕竟不是所有的人 都需要使用“记住我”这个按钮,尤其是多次使用这个登陆框的人,他很显然是不喜欢“记住我”。所以应该用tabindex指定如下的顺序:“用户名”、“ 密码”、“记住我”。
10. 不要打开新窗口(Not opening new windows)
文中的意思是,这样会浏览器的“history”记录,从而使浏览器“后退键”无效。总算知道外国网站很少有新开窗口的缘故了吧,也总算知道为啥 XHTML标准要把a标签的target属性取消的缘故了吧。但这个似乎不符合中国用户的习惯,还值得商讨。不过有一些变通的方式可以考虑:
a) 页面上给一个选框,选择之后就自动把a标签里的target属性移除,使得所有的链接都在本页打开。
b) 新开窗口并不是到”_blank”,而是到一个指定名字的窗口,比如“new”。这样所有新开的页面都会到同一个窗口里打开,至少在这个窗口里,还是可以使用浏览器的“后退键”的。(提一下,土豆网的视频都是这样的,开到同一个新窗口里)。
11.定义首字母缩略字(Defining acronyms)
先说明一下,其实作者这里对acronym这个词理解不正确。acronym是指单词的首字母合起来成为一个新的可读的单词,这个单词未必是所有字母都大写的,比如Nato(北大西洋公约组织)。所以HTML或是CSS算不上acronym,而
DOS、BASIC这种才算。像HTML或CSS这种,应该叫abbreviation,与其对应的是<abbr>标签,但很遗憾,这个标签IE6上无效。
12. 给你的日历加上抬头(Giving your calendar a real caption)
13. 使用真正的表头(Using real table headers)
14. 为表格提供摘要(Providing a summary for tables)

把这三条合在一起说,就是要正确使用表格。其实表格的使用远比这三条更多,建议大家仔细阅读HTML权威指南。

网页的可访问性,似乎只能由前端来并实现。这点挺可悲,作为可用性的一部分——可访问性,居然只能由技术人员来掌控,这是我不愿意看到的。但反过来,这给前端开发工程师们新增加了一个责任,同时为如何区分优秀的前端增加了一个指标.
15. 忽略空白图片(Ignoring spacer images)
一定记得给图片加上alt属性,哪怕它为空。其原因是如果不写alt,有些阅读器会直接把它的文件名或URL读出来。
这让我想起小时候读过,说在发明数字0以前,人们都是用空位来表示的。这样就很不方便啊。所以alt=”"就相当于数字0这个伟大的发明。
16. 使用真实的列表(或者正确的把它们伪装起来)
这一条其实也是在讲如果要用图片作为列表前的icon,最好用CSS。但是没有提到为什么要用<ul>。其实这也是我一直纠结的问题:目前看 起来,除了出于“标签语义化”的原教旨信仰,没有更好的理由一定要用<ul>或<ol>。盼知情者告知。
17. 为图片提供替换文本(Providing text equivalents for images)
18. 为图片映射提供替换文本(Providing text equivalents for image maps
)
这两条同15。
这里我只是想说说两个题外话:
a) 到目前这个年代,<map>标签是否还有用?同样的还让我想起<applet>标签。
b) 除了alt,还有两个属性:lowsrc和longdesc。有时间我会来看看目前的浏览器对这两个属性的支持是怎样的。
19. 使用真实的水平分割线(Using real horizontal rules)
它说的是使用<hr>比使用一张装饰用的图片好。(P.S. 原来hr是horizontal rule的缩写哦,hoho)但似乎不用<hr>更好吧。
20. 使用相对字号(Using relative font sizes)
我好想遵守这个规则,但可恶的微软把宋体做得除了12px,更小的字号就不能看。不过现在浏览器都有zoom功能,相对字号或许也不像以前那么迫切需要了吧。不管怎么说,都怪IE!
21. 使用真实的标题(Using real headers)
除了SEO之外,文中提到,有浏览器是可以专门撷取文中的标题,以提供方便的文内导航。这个功能就类似word里面自动生成目录的方法。
不过有一点值得注意,<h1>标签的使用。它其实是指最能概括本页内容的文字,而不是指看起来在标题的位置的文字(比如网站顶部 LOGO)。我之前一直犯一个错误,就是把网站的LOGO作为H1。事实上,比如搜索结果页,很明显“搜索XXX,一共XXX个结果”才应该作为h1标 题。
22. 给表单元素加上label标签(labeling form elements)
这里只有一个想和大家讨论的:到底是用id和for来联系,还是直接用label标签把表单元素和文字框起来?你们的习惯是怎样的?
23. 让所有的内容都可被搜索(Making everything searchable)
这一条是个比较宽泛的产品层面的问题,这里就不作讨论了。
24. 建立可访问性声明(Creating an accessibility statement)
这个蛮好,详情还是建议看原文。我有时间也会做掉。
最新资讯
陌陌换帅:账上150亿现金救不了低迷股价,唐岩寻找新出路

陌陌换帅:账上150亿现

当智能手机的使用人数触达中国人口数上限,而快抖B站等
高瓴联合成立基金首期10亿元 重点关注中国研究型医院建设

高瓴联合成立基金首期

中国研究型医院学会与高瓴签署战略合作框架协议,联合成
德银:取消附赠充电器拉动苹果其他产品销量

德银:取消附赠充电器拉

尽管苹果声称不使用插头是为了保护环境,但由于插头的销
德媒:Wirecard将在下月底前决定出(bu)售(mai)核心业务

德媒:Wirecard将在下月

德国《南德意志报》周六援引破产管理人Michael Jaffe
到欧洲去!中国手机的下一个必争之地?

到欧洲去!中国手机的下

疫情也阻挡不了中国手机厂商寻求增长的脚步,在攻下印度
段永平部下做了一家快递公司,遭到围剿

段永平部下做了一家快

放眼中国前三大电商巨头,阿里京东都有了自己强大的物流
最新文章
网页简单布局之结构与表现原则分享

网页简单布局之结构与

一般来说html结构 css表现 javascrip行为,网页布局要考
隐藏 Web 中的元素方法及优缺点教程详解

隐藏 Web 中的元素方

这篇文章主要介绍了隐藏 Web 中的元素方法及优缺点教
白话分析自适应跟响应式的区别详解

白话分析自适应跟响应

这篇文章主要介绍了白话分析自适应跟响应式的区别详解
div与div之间有空隙的解决方法

div与div之间有空隙的

今天在制作页面的时候发现两个div之间有空隙导致两个
推荐一款酷炫闪烁的告警按钮

推荐一款酷炫闪烁的告

今天小编给大家推荐一款酷炫闪烁的告警按钮,非常不错,具
移动端开发1px线的理解与解决办法

移动端开发1px线的理

这篇文章主要给大家介绍了关于移动端开发1px线的理解