标记验证,发现错误

Markup Validation, Errors found

我最近尝试验证一个网页,每次我 运行 验证器输出相同的错误,尽管页面的结构看起来是合法的。

<!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

根据查看文档中包含的实际错误,提出一些建议:

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

使用当前的 W3C HTML 检查器

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

https://validator.w3.org/ 是用 Perl 编写的,使用 SGML 和 DTD 来执行验证,因此检查的种类非常有限可以做到(例如,它不能对属性值进行精确的 datatype/microsyntax 检查)。如果您的文档使用现代文档类型(<!DOCTYPE html>,“HTML5”文档类型声明),它只是将文档交给 https://validator.w3.org/nu/ 进行检查。

https://validator.w3.org/nu/ 根据 当前 HTML 规范 检查您的文档(aka HTML5 ),并包括许多 https://validator.w3.org/ 无法执行的检查类型。

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

始终以 <!DOCTYPE html>

开头您的文档

http://demo.amiron.eu/equilibrium/ currently doesn’t have any document type declaration 处的文档。这是一个彻头彻尾的错误,因为缺少文档类型会导致浏览器出现意外行为。如果您使用 <!DOCTYPE html> 以外的任何文档类型,则更容易以导致浏览器出现意外行为的方式使部分文档类型出错。

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

http://demo.amiron.eu/equilibrium/ 的字符编码未在与文档一起提供的 HTTP headers 中声明,也未在文档本身中声明。 Web 上的文档应以 UTF-8 编码,并确保浏览器和其他工具始终清楚其编码,文档应始终包含 <meta charset="utf-8"> 元素。