标记验证,发现错误

时间:2016-11-01 11:22:02

标签: php html wordpress validation w3c-validation

我最近尝试验证网页,每次运行验证程序时都会输出相同的错误,尽管页面结构似乎是合法的。

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
...

源码应该有问题,但我无法弄清楚.. link to markup validation results

1 个答案:

答案 0 :(得分:1)

基于查看文档包含的实际错误,提出了一些建议:

使用https://validator.w3.org/nu/

上的当前W3C HTML Checker

使用https://validator.w3.org/nu/而不是https://validator.w3.org/检查您的文档。

https://validator.w3.org/是用Perl编写的,并使用SGML和DTD来执行验证,因此它可以执行的检查类型非常有限(例如,它无法对属性值进行精确的数据类型/微观条件检查) 。如果您的文档使用了现代文档类型(<!DOCTYPE html>,即“HTML5”文档类型声明),则只需将文档移至https://validator.w3.org/nu/进行检查即可。

https://validator.w3.org/nu/会针对the current HTML spec又名 HTML5)检查您的文档,并包含https://validator.w3.org/无法执行的多种类型的检查。

检查https://validator.w3.org/nu/?doc=http://demo.amiron.eu/equilibrium/会提出两点:

始终使用<!DOCTYPE html>

启动您的文档

http://demo.amiron.eu/equilibrium/处的文档目前根本没有document type declaration。这是一个彻头彻尾的错误,因为缺少doctype会导致浏览器出现意外行为。如果您使用<!DOCTYPE html>之外的任何文档类型,那么在浏览器中导致意外行为的方式更容易导致部分文档类型错误。

始终在文档中包含<meta charset="utf-8">

http://demo.amiron.eu/equilibrium/的字符编码未在文档所服务的HTTP标头中声明,也未在文档本身中声明。 Web上的文档应使用UTF-8进行编码,并确保浏览器和其他工具始终明确其编码,文档应始终包含<meta charset="utf-8">元素。