HTML 规则
注意
HTML Validate 规则参考 html-validate:recommended,但是由于需要整理的内容非常多,在开发过程中,仍以实际的 HTML Validate 检查为准。本章内容仅供参考
HTML语法与概念
与HTML语法和概念相关的规则。
| 规则 | 描述 | |
|---|---|---|
| ✔️ | attr-delimiter | 禁止在属性键和值之间存在空格 |
| ✔️ | attr-spacing | 要求属性之间用空格分隔 |
| ✔️ | close-attr | 禁止结束标签包含属性 |
| ✔️ | close-order | 要求元素以正确的顺序关闭 |
| ✔️ | element-name | 禁止使用无效的元素名称 |
| ✔️ | form-dup-name | 要求表单控件具有唯一的名称 |
| ✔️ | map-dup-name | 要求 <map name> 是唯一的 |
| ✔️ | map-id-name | 要求 <map> 元素上的 name 和 id 匹配 |
| ✔️ | no-dup-attr | 禁止重复的属性 |
| ✔️ | no-dup-class | 禁止重复的类 |
| ✔️ | no-raw-characters | 禁止使用未转义的特殊字符 |
| ✔️ | no-redundant-for | 禁止使用冗余的 label for 属性 |
| ✔️ | script-type | 要求 <script> 元素具有有效的类型 |
| ✔️ | unrecognized-char-ref | 禁止无法识别的字符引用 |
| ✔️ | valid-autocomplete | 要求 autocomplete 属性有效 |
| ✔️ | valid-id | 要求 id 是一个有效的标识符 |
内容模型
| 规则 | 描述 | |
|---|---|---|
| ✔️ | attribute-allowed-values | 验证允许的属性值 |
| ✔️ | attribute-misuse | 要求属性在正确的上下文中使用 |
| ✔️ | element-permitted-content | 验证允许的内容 |
| ✔️ | element-permitted-occurrences | 验证允许的元素出现次数 |
| ✔️ | element-permitted-order | 验证所需的元素顺序 |
| ✔️ | element-permitted-parent | 验证允许的父元素 |
| ✔️ | element-required-ancestor | 验证所需的祖先元素 |
| ✔️ | element-required-attributes | 确保设置了必需的属性 |
| ✔️ | element-required-content | 确保存在必需的元素 |
| ✔️ | input-attributes | 验证输入属性的使用 |
| ✔️ | no-multiple-main | 禁止多个 <main> |
| ✔️ | script-element | 要求 <script> 有结束标签 |
| ✔️ | void-content | 禁止空元素包含内容 |
已弃用
与使用已弃用或过时功能相关的规则。
| 规则 | 描述 | |
|---|---|---|
| ✔️ | deprecated | 禁止使用已弃用的元素 |
| ✔️ | deprecated-rule | 禁止使用已弃用的规则 |
| ✔️ | no-conditional-comment | 禁止使用条件注释 |
| ✔️ | no-deprecated-attr | 禁止使用已弃用的属性 |
可访问性
| 规则 | 描述 | |
|---|---|---|
| ✔️ | area-alt | 要求 <area> 元素提供替代文本 |
| ✔️ | aria-hidden-body | 禁止在 <body> 上设置 aria-hidden |
| ✔️ | aria-label-misuse | 禁止误用 aria-label |
| ✔️ | empty-heading | 要求标题具有文本内容 |
| ✔️ | empty-title | 要求 title 具有文本内容 |
| ✔️ | hidden-focusable | 禁止对可聚焦元素使用 aria-hidden |
| 📃 | input-missing-label | 要求输入框有标签 |
| ✔️ | meta-refresh | 要求 meta refresh 的延迟时间为 0 秒 |
| ✔️ | multiple-labeled-controls | 禁止标签与多个控件关联 |
| ✔️ | no-abstract-role | 禁止使用抽象的 WAI-ARIA 角色 |
| ✔️ | no-autoplay | 禁止媒体元素自动播放 |
| ✔️ | no-implicit-button-type | 禁止隐式的按钮类型 |
| ✔️ | no-redundant-aria-label | 禁止 aria-label 和 label 具有相同的文本内容 |
| ✔️ | no-redundant-role | 禁止使用冗余的角色 |
| ✔️ | prefer-native-element | 倾向于使用原生 HTML 元素而不是角色 |
| ✔️ | tel-non-breaking | 要求电话号码中使用非换行字符 |
| ✔️ | text-content | 要求元素具有有效的文本内容 |
| ✔️ | unique-landmark | 要求地标具有唯一的名称 |
| ✔️ | wcag/h30 | WCAG H30: 提供链接文本 |
| ✔️ | wcag/h32 | WCAG H32: 提供提交按钮 |
| ✔️ | wcag/h36 | WCAG H36: 要求用作提交按钮的图像提供替代文本 |
| ✔️ | wcag/h37 | WCAG H37: 在 img 元素上使用 alt 属性 |
| ✔️ | wcag/h63 | WCAG H63: 使用 scope 属性关联表头单元格和数据单元格 |
| ✔️ | wcag/h67 | WCAG H67: 在 img 元素上使用空 alt 文本且无 title 属性 |
| ✔️ | wcag/h71 | WCAG H71: 为表单控件组提供描述 |
安全
| 规则 | 描述 | |
|---|---|---|
| 📃 | require-sri | 要求资源具有 SRI (子资源完整性) |
SEO
| 规则 | 描述 | |
|---|---|---|
| ✔️ | long-title | 要求 title 文本不能过长 |
风格
| 规则 | 描述 | |
|---|---|---|
| ✔️ | attr-case | 要求属性名称使用特定的大小写 |
| ✔️ | attr-quotes | 要求属性使用引号 |
| ✔️ | attribute-boolean-style | 要求布尔属性使用特定样式 |
| ✔️ | attribute-empty-style | 要求空属性使用特定样式 |
| ✔️ | doctype-style | 要求 DOCTYPE 使用特定的大小写 |
| ✔️ | element-case | 要求元素名称使用特定的大小写 |
| ✔️ | no-implicit-close | 要求具有可选结束标签的元素被显式关闭 |
| ✔️ | no-implicit-input-type | 禁止隐式的输入类型 |
| ✔️ | no-inline-style | 禁止内联样式 |
| ✔️ | no-self-closing | 禁止自闭合元素 |
| ✔️ | no-trailing-whitespace | 禁止尾部空白 |
| ✔️ | prefer-button | 倾向于使用 <button> 而不是 <input> 作为按钮 |
| ✔️ | prefer-tbody | 倾向于将 <tr> 包裹在 <tbody> 内 |
| ✔️ | void-style | 要求空元素使用特定的闭合样式 |
文档
这些规则用于完整的文档。
| 规则 | 描述 | |
|---|---|---|
| ✔️ | doctype-html | 要求使用 "html" 文档类型 |
| 📃 | heading-level | 要求标题从 h1 开始并逐级递增 |
| 📃 | missing-doctype | 要求文档具有文档类型 |
| ✔️ | no-dup-id | 禁止重复的 ID |
| 📃 | no-missing-references | 要求所有元素引用都存在 |
| ✔️ | no-utf8-bom | 禁止文档包含 UTF-8 BOM |
未分类
| 规则 | 描述 | |
|---|---|---|
| ✔️ | no-unused-disable | 禁止未使用的禁用指令 |