W3C要求
- 必须有DOCTYPE
- 必须指定字符编码
语言
- 每个页面的html标签要指定lang属性,
线性阅读
- 不以表格作为布局使用
- 采用定位的时候,将css去除,查看内容的阅读顺序是否符合有意义
标题
- 页面中必须包含一个title元素,并且不应为空
- title中的内容应该少于60个字
- title应该包含网站名字和页面的主题
- 页面中必须包含至少一个h1,并且不能为空
- h1和title中应该包含有相同的某些词汇
- h1和title应该使用相同的词序(词序) 链接链接...链接这种吧)
- h1的内容不应该仅仅来自于图片的alt属性值
hn
- 所有的hn应该在h1后面适当的嵌套
- 从h2开始,每一个hn前面至少有一个h(n-1),比如:h3前面至少有一个h2;h5前面至少有一个h4
- 页面中至少并只能包含一个h1。(html5中已经提倡可以使用多个hn)
- h1..h6元素应该在页面中用于构建信息
- h1..h6 或者 作用等于 (heading|region|main|secondary|navigation|banner|contentinfo|definition|note|seealso|search)的元素应该在页面中用于构建信息
- 每一个h1...h6必须有文字内容
- hn中的内容通常少于65个字
- h2...h6中除了img的alt属性外,还应该包含文字内容
- 相同级别的标题内容应该是唯一的。(比如:不能有两个h1的内容都是“腾讯网”)
菜单和导航
- ul是用来作为导航的最合适的元素,其次是ol
-
推荐的导航结构:
.offscreen {
position: absolute;
top: -30em;
left: -300em;
} - 绝大多数的网页应该至少含有一个导航栏
- 每个map,ul,ol元素不要在最后一个h1之前,如果必须有个导航在标题之前,这个标题请用h2。(参见推荐的导航结构)
- 每一个嵌套的table,热点区域,ol,ul作为导航的话,他们的头部要有一个h2(或者是h2~h6,参见推荐的导航结构)
- 请勿使用blink(闪啊闪的)和marquee(移动移动的)!!!会引发癫痫和视觉损伤
- 禁止使用font和center元素,请用css实现
- 斜体样式禁用i元素,标题用h1...h6,要强调的词、短语和句子,请用em实现
- 加粗字体样式禁用b元素,标题用h1...h6,要强调的词、短语和句子,请用em实现
- 下划线样式禁用u元素,标题用h1...h6,要强调的词、短语和句子,请用strong实现
- 如果将p一行行的有顺序的排列,就该考虑是不是应该用有序列表了(ol)
- 如果将p一行行的排列,就该考虑是不是应该用无序列表了(ul)
- 如果列表嵌套深度大于5层的话,应该考虑用h1...h6这样的元素来进行转换。尤其是屏幕阅读器的用户
- 列表嵌套别超过5层
- 避免使用脱离文章上下文无法理解的文字链接(比如最常用的“详细”的文字)
- 如果一个链接包含一个图片和文字,并且alt中的内容和文字匹配(相同),那么alt的属性应该为空
- 避免使用小于16*16的图片作为链接
- 避免把链接密密麻麻的放在一起(指的是
- 确保不同的链接地址用不同的链接文字(也就是说最好避免重复的锚(链接)文字)
- 确保相同的链接地址用相同的链接文字(如果多个链接都指向http://www.qq.com,那么这些链接都应该使用相同的锚(链接)文字。如果有的是“腾讯”,有的是“腾讯网”,有的是“腾讯网首页”,这样就不合适了,况且对SEO也不合适)
- 避免文字链接少于四个字(在中文网站中这一点很难避免)
- 内部的锚点目标要有tabindex="-1"。这是由于当内部链接被激活时,IE可以移动焦点
- 如果锚点目标是a或者表单等可以获得焦点的元素,如果使用tabindex="1",在使用tab键切换的时候就会被跳过
- 最安全的tabindex属性是0
文章点评