以前总认为网页验证更多是虚荣的成分,但做一遍下来,感觉还是很有必要,不严谨甚至错误的地方比比皆是。下面是验证地址
(BTW 本页验证就不过,昨天都好了,可是下午的一个改动又改回到一个旧版本,这次改动很乱,老是换电脑换地方,很多代码都是重复改了两遍以上,)
http://validator.w3.org/check?uri=完整地址
http://www.htmlhelp.com/cgi-bin/validate.cgi?url=完整地址
二者大同小异,常见错误如下:
文档DOCtype类型没有定义或者不正确
个人感觉既然验证就 xhtml 1.0 好了,web设计绝大部分内容都能解决,就是嵌入多媒体麻烦了点。注意 DOCtype 声明中引号部分的大小写不能改变。
“-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
大小写混用
如果没什么问题的话,请不要使用大写,而且绝对不能混用(命名用小写,调用却用大写?)
页面编码问题
it contained one or more bytes that I cannot interpret as gb2312
现在是UTF-8的世界,gb2312在很多时候都会被警告。gb2312的页面甚至不能包含繁体中文,虽然可以显示,但验证会报告错误。另外,feed 验证时,gb2312也会被 Warning。
不完整标签
unclosed start-tag requires SHORTTAG YES.
xhtml 所有元素都必须结束。单标签也需要斜线结束,如
html head title body 包括结束都不能少!
属性值没有加引号
an attribute value specification must be an attribute value literal
比如
需要写成
使用了不存在的属性
there is no attribute “target”.
比如xhtml中链接a没有 target属性,form没有name属性,img 没有 align属性等等。
换成
最后用javascript遍历一遍替换为 target即可。(参看本页源代码最后面的 changelinkstyle.js)
form不加name,用 document.forms[0]或者id或者this.form来操作。
换成
换成
当然,你可以写到样式表中而不用inline书写。
javascript书写问题
下面结构”一个都不能少!”
另外,类似 document.write(”
“) 这样的代码最好加上反斜线
document.write(”
“)
地址串中&(Ampersands)问题
书写URL时必须把 & 转换成 & 普通内容可以直接书写。类似问题还有 > < 如果不是html代码(是网页内容)的话,请改成
>
<
greater than 大于
less than 小于
使用了不存在的标签
element “font” undefined.
比如 font就不再存在。embed 等
块元素(block)被行内元素(inline)包裹
body的根元素都必须是 h1-7,p,div 等块元素。另外,行内元素包含块元素也会报错。
图片必须有 alt(alternate)替换文字或者 longdesc(long description)长文字说明
实在没有就 alt=”" 但不能不写。
就想起来这么多了,大家有什么错误也可以报过来,一起分析分析。
完整错误信息说明在:
http://validator.w3.org/docs/errors.html
Feed 验证问题
这是feed验证地址。
http://feedvalidator.org/check.cgi?url=完整feed地址
非UTF-8和ISO的编码都会受到警告!atom现在是1.0,0.3已经推荐不使用(Deprecated )了。RDF(rss1)已经两年都不更新了,估计以后就挂了。常见错误主要是格式问题,主要是日期格式不同。Atom多了个 lastUpdated,这个blog根本就没有进库,需要处理。
http://www.atomenabled.org/developers/syndication/atom-format-spec.php
http://feedvalidator.org/docs/rss2.html
必须写在第一行!!!
更多资料:
生成更多验证的链接
大量验证,参考链接
Leave a reply