在很多人印象里,Web 标准是互联网的地基:HTML 由 W3C 与 WHATWG 制定规范,浏览器负责实现,开发者负责遵守。但最近一份针对全球最流行域名的“合规体检”,却让这套叙事显得相当讽刺——据 Solidot 报道,在最广泛使用的 5000 个 Web 域名中,只有 2.6% 的网站完全符合规范。
一次针对头部网站的“标记审计”
这项调查来自法国独立开发者 Théo Ducreux 创建的 ValidateHTML 项目。他选取了全球使用最广泛的 5000 个域名——既有 Google、YouTube、Akamai 这样的巨头,也包括 gstatic、Ezviz7 这类不直接面向公众的站点——逐一校验其首页的 HTML 与 CSS。
结果并不体面:
- 5000 个域名中只有 2656 个存在人类可读的主页,其余大多只是流量重定向站点;
- 近九成网站未提供符合 W3C 和 WHATWG 规范的 HTML;
- 全部站点合计存在 100,305 处 HTML 规范违反,外加 18,863 处 CSS 错误;
- 只有 12.8% 的网站拥有完全有效的 HTML,完全符合规范的仅占 2.6%;
- 超过三分之一的网站未通过无障碍检查。
换句话说,即便是全球流量最高的那批网站,也几乎没有谁能交出一份“规范满分”的答卷。
为什么没人再在意“规范”了
这份报告与其说是揭露了个别开发者的粗心,不如说是揭示了整个行业生态的变迁。
其一,浏览器的容错式解析改变了游戏规则。 HTML5 时代,规范本身就定义了错误处理算法,浏览器几乎能渲染任何畸形的标记。于是“符合规范”从一种功能性要求,降级成了道德层面的自我要求——反正浏览器会兜底。
其二,抽象层让开发者离 HTML 越来越远。 如今大多数前端代码是 JSX、Vue 模板或各类组件,最终的 HTML 由工具链生成。开发者手写语义化标签的机会越来越少,很多人甚至从未审视过构建产物长什么样。
其三,交付节奏与性能取舍挤压了校验环节。 字节级优化、A/B 实验脚本、第三方追踪代码的动态注入,让首页 HTML 变成一个不断拼装的“施工现场”,结构一致性根本无从谈起。
其四,校验工具本身被边缘化了。 W3C 校验器曾是上线前的标配检查,而如今的 CI 流水线里,单元测试、覆盖率、性能预算一应俱全,唯独标记校验鲜有人配置。
真正的代价是无障碍与“事实标准”的转移
不规范不等于“页面打不开”,它的代价更隐蔽。
最直接的是无障碍问题。屏幕阅读器重度依赖语义化结构,超三分之一网站未通过无障碍检查,与标记不规范有直接的关联——对视障用户而言,这不是技术洁癖,而是真实的可及性障碍。
其次是脆弱性与安全。畸形标记在不同浏览器引擎下的纠错行为可能存在差异,许多跨浏览器兼容问题的根源正在于此;历史上,结构突变类 XSS(mXSS)漏洞也常常寄生在不规范的标记之上。
更深一层的影响在于权力转移。当几乎所有网站都依赖浏览器的容错逻辑来“将就着”渲染时,“事实标准”实际上已经从 W3C/WHATWG 的规范文档,转移到了 Blink、WebKit、Gecko 解析器的具体行为上。Chrome 一家的容错实现,在某种程度上就成了全球 Web 的规范——这对一个标榜开放、多元的平台生态而言,并不是好消息。
简短点评
Web 标准的价值从来不是让验证器少报几个错,而是一份公共契约:任何人都可以按照公开规范编写页面,并确信它在所有浏览器中都被正确渲染。这份契约正是 Web 区别于封闭客户端生态的根本所在。当 97% 以上的头部网站都不完全符合规范时,受损的不是某一次渲染,而是契约本身的可信度。
对开发者而言,补救其实并不昂贵:把 Nu Html Checker 加回 CI 流水线,让 Lighthouse 的无障碍审计保持不降级,构建时对产物 HTML 做一次校验。被浏览器宽容的,不等于正确的——这份 5000 域名的体检报告,值得每一个还在写 Web 的人看一眼。