HTML版本号是规范快照而非软件发布,WHATWG的Living Standard为事实标准,W3C快照仅归档;浏览器支持取决于具体特性而非版本号,应查caniuse或MDN并做运行时检测。

HTML 版本号本身没有“官方发布历史”可查
HTML 不是像 Python 或 Node.js 那样按年份发 v1.0、v2.0 的独立软件。所谓 “HTML5” “HTML4.01” 实际是 W3C 或 WHATWG 不同时期的规范快照,版本号只代表文档修订时间,不反映浏览器实现程度。
这意味着:
– 你不能靠版本号判断某个标签是否能用
– 浏览器支持永远比规范滞后(或超前)
– <dialog> 在 HTML Living Standard 里早写了十年,但 Chrome 91 才稳定支持
查兼容性别看“HTML 版本”,直接查具体特性
遇到一个新标签或属性,比如 inert、popover、contenteditable 的新值,别去翻“HTML5.3 规范更新了没”,直接查它在真实浏览器里的表现:
- 打开 caniuse.com,搜
inert—— 看绿块范围,注意灰色“部分支持”常指需加前缀或有 bug - 查 MDN 页面,比如 MDN inert,底部的“Browser compatibility”表格比任何版本综述都准
- 用
if ('inert' in document.createElement('div'))做运行时检测,比硬记“HTML5 支持”靠谱得多
WHATWG HTML 和 W3C HTML 的区别在哪
现在实际只有两个“HTML”:一个是 WHATWG 维护的 HTML Living Standard(持续更新),另一个是 W3C 发布的带版本号的快照(如 HTML5.3,2023 年后已停止)。
立即学习“前端免费学习笔记(深入)”;
关键事实:
– 所有现代浏览器引擎(Blink、WebKit、Gecko)实现的,都是 WHATWG 的 Living Standard
– W3C 快照只是归档用途,不指导开发
– 你在 html.spec.whatwg.org 看到的 <select> 行为,就是 Chrome/Firefox/Safari 当前遵循的“事实标准”
哪些“HTML 版本差异”其实不用管
很多老教程列的“HTML4 vs HTML5 标签对比表”,对今天开发基本无效:
-
<font>、<center>确实被废,但没人会主动用——不是因为“HTML5 不让”,而是所有浏览器早就当垃圾处理 -
<article>、<section>是否“属于 HTML5”不重要,重要的是它们对屏幕阅读器和 SEO 的实际影响(有,但有限) - DOCTYPE 写
<!DOCTYPE html>就够,不必纠结它是“HTML5 DOCTYPE”还是“HTML Living Standard DOCTYPE”——它只是触发浏览器的标准模式,跟版本号无关
真正要花时间确认的,永远是单个特性的行为边界:比如 <input type="date"> 在 Safari 上不支持 step 属性,在 Android WebView 里点开是原生日历还是 fallback 文本框——这些细节,版本汇总表从不告诉你











