html页面不渲染或兼容性异常,八成源于doctype和根元素声明错误:必须顶格写(无空格/bom/注释),需符合bcp 47标准,且仅有一个根元素。

DOCTYPE 和根元素是否正确声明
HTML 页面不渲染或兼容性异常,八成从这里开始。没有 或写成 <code>(大小写混用)会导致 IE 进入怪异模式;<code> 缺失或 lang 值为空,会影响屏幕阅读器和 SEO 识别。
- 必须使用小写
,不能省略、不能加空格或注释 -
标签必须有且仅有一个,且是文档最外层容器 -
lang属性值需符合 BCP 47 标准,中文推荐zh-CN或zh-Hans,避免写成zh或cn - 检查是否意外嵌套了第二个
(常见于 SSR 模板拼接错误)
head 内关键元信息是否完整且合规
SEO 掉量、移动端缩放失效、字符乱码,往往就差这三四行。W3C 验证器报 charset 错误,90% 是因为 <meta charset="utf-8"> 不在 前三行内,或被 JS 动态插入。
Google索引API工具。用于提交URL以供Google索引。支持两种模式:“auto-index”(获取sitemap,与缓存对比差异并提交...)
-
<meta charset="utf-8">必须是中第一个<meta>,且不能带引号以外的空格(如charset = "utf-8"无效) -
<meta name="viewport" content="width=device-width, initial-scale=1">缺失会导致移动端页面横向滚动,user-scalable=no已不推荐,除非明确业务需要 -
<title></title>必须存在,长度建议 ≤55 字符;<meta name="description">非强制但强推荐,长度 ≤150 字符 - 避免重复
<meta http-equiv="X-UA-Compatible" content="IE=edge">—— 现代项目已无需兼容 IE
语义化标签与可访问性基础是否落地
不是“用了 <header></header> 就算语义化”,而是结构是否真实反映内容层级。Chrome DevTools 的 Accessibility 面板里显示 “No landmark” 或 “Missing label”,基本就是语义和可访问性双崩。
- 每个页面应有且仅有一个
<main></main>,<header></header>/<footer></footer>可多组,但<nav></nav>应只包裹导航链接 -
<img>必须有alt:纯装饰图写alt="",重要内容描述需准确(如alt="红色苹果图标,代表新鲜水果分类") -
<input>、<textarea></textarea>等表单控件必须关联<label></label>(用for+id,或包裹方式),否则屏幕阅读器无法读出提示 - 标题层级不能跳级:
<h1></h1>→<h2></h2>→<h3></h3>,禁止<h1></h1>后直接<h3></h3>
内联脚本/样式与资源引用是否安全可控
线上突然白屏或控制台报 Uncaught SyntaxError: Unexpected token ',大概率是 HTML 里塞了未转义的 JS 字符串,或 <code><script></script> 放错位置导致阻塞解析。
-
<script></script>标签禁止出现在里且无defer或async—— 会阻塞 DOM 构建 - 禁止用
document.write(),现代浏览器已标记为高危操作 -
style属性内联写法(如<div style="color:red">)应严格限制,仅用于动态样式;静态样式一律走 CSS 文件 <li>外部资源路径需校验:CSS 的 <code>rel="stylesheet"不能漏,JS 的type="module"或type="text/javascript"要匹配实际内容类型
真正卡住上线的,往往不是某条规则没打钩,而是几处看似微小的组合问题:比如
lang 错了 + charset 位置偏移 + 图片缺 alt,会让 Lighthouse 可访问性得分掉到 30 以下,且无法通过自动化修复。人工过一遍 和首屏语义结构,比跑十遍 lint 更有效。










