HTML 教程 / 查找错误并验证 HTML 文档
HTML 验证有助于找到标记错误,这些错误浏览器可能会默默修复,例如格式错误的属性、意外的关闭标签或重复的 ID。在修正报告的问题后,您应始终在浏览器中检查页面的内容和实际交互。
保存页面并首先进行检查
保存当前的 HTML 文件并在浏览器中打开它。检查标题、段落、链接、图片和表单是否出现在您预期的位置。页面可见并不证明其标记是有效的:浏览器可以修正某些错误并显示一个与您计划的结构不同的结果。
运行 Nu HTML Checker
Nu HTML 检查器 可以检查公共 URL、上传的文件或插入的标记。对于本地或未发布的文档,请使用文件上传或直接输入。不要将包含密码或个人数据的源文件上传到公共验证服务。目前验证的标签和属性规则将在 HTML 语法 中介绍。
- 保存 HTML 文件的最新版本。
- 选择合适的输入方法并开始检查。
- 阅读每条消息,并检查报告的部分以及周围的开闭标签。
- 修正文件,保存它,然后重新启动检查。
如果显示多个错误,请从报告的第一个错误开始。单个格式错误的属性可能会导致多个后续错误。检测到错误的行不一定是引起错误的那一行;例如,未闭合的引号可能导致下一个标签显示为无效。确保上传已保存的修订版本,而不是多次验证旧文件。
例如,这段代码重复了一个 id:
<label for="email">电子邮件</label>
<input id="email" name="email" type="email">
<label for="email">确认电子邮件</label>
<input id="email" name="email_check" type="email">
将第二个字段的 ID 更改为 email-check,并更新标签的 for 属性以匹配。然后检查重复 ID 的错误是否消失,并确保每个标签都将焦点指向自己的字段。缺少结束标签并不总是错误:根据 HTML 规则,一些元素,包括在特定上下文中的 li,可以省略其结束标签。
使用 Nu HTML Checker 26.11.2 的本地命令行工具对完整示例进行静态检查后,Duplicate ID “email”. 对错误文档进行了报告,而对修正后的文档没有报告错误。分别比较标签的交互;额外的诊断可能会随检查器的更新或文件内容而有所不同。
将有错误的文档与其修正版本进行比较
以下验证练习故意重复使用一个 ID。将其保存为 invalid.html,并使用 Nu HTML Checker 的文本输入或文件上传模式进行检查。这是一个失败的测试用例,而不是可以直接使用的代码。
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>文件验证练习</title>
</head>
<body>
<h1>标签验证练习</h1>
<form method="get">
<p><label for="email">电子邮件</label>
<input id="email" name="email" type="email"></p>
<p><label for="email">确认电子邮件</label>
<input id="email" name="email_check" type="email"></p>
<button type="submit">检查输入的值</button>
</form>
</body>
</html>
找到关于 email ID 被重复使用的诊断信息。浏览器仍然可以显示两个字段,但重复的 ID 阻止了每个标签与其字段的唯一对应。修正后的文档更改了第二个字段及其标签目标为 email-check。
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>文件验证练习</title>
</head>
<body>
<h1>标签验证练习</h1>
<form method="get">
<p><label for="email">电子邮件</label>
<input id="email" name="email" type="email"></p>
<p><label for="email-check">确认电子邮件</label>
<input id="email-check" name="email_check" type="email"></p>
<button type="submit">检查输入的值</button>
</form>
</body>
</html>
- 将更正保存为 valid.html,并验证最新保存的文件,而不是之前的副本。
- 点击每个标签并比较哪个输入字段获得焦点。如果您更改了 ID,而没有更新
for属性,则映射将保持错误。 - 在诊断修复后,总是测试目标、内容和键盘使用情况。分别保存语法和可用性测试结果。
| 问题 | 首先检查 | 更正原则 |
|---|---|---|
| 重复的 ID | id / for |
使 ID 唯一并更新每个引用 |
| 缺少引号 | 报告的行和前一个属性 | 在更改下一个标签之前查找未完成的值 |
| 空的 action 属性值 | form action="" |
如果当前文档是目标,则省略 action 属性 |
不要将故意失败的示例与文章本身的格式错误混淆。代码块可以显示会产生错误的字符串;验证文档是从此示例创建的独立文档。
验证只是一种检查方式
一个语法检查器不能保证链接指向正确的文章,替代文本正确描述图像,或者服务器正确处理表单。请打开链接,用键盘使用页面,并检查窄显示窗口。对于缺失的媒体,检查路径、服务器响应和支持的格式以及标记。在 创建一个小型多页网站 中,同时使用语法检查和实际导航测试。
请明确区分检查对象:文件上传会检查文件,而 URL 检查会检查服务器实际返回的文档。在 WordPress 上,主题会包裹文章主体,因此检查文章正文片段和检查完整发布页面可能会产生不同的结果。将文章中的问题与由主题或插件引入的问题区分开来。




