hgroup标签在现代HTML中已彻底废弃,不推荐使用;它不影响文档大纲、不改变屏幕阅读器行为、不提升SEO,仅增加冗余和维护成本。
hgroup 标签在现代 HTML 中已彻底失效,不推荐、也不应再使用——它不会影响文档大纲,不改变屏幕阅读器行为,不提升 SEO,只增加冗余和维护成本。
hgroup 在现代浏览器里“看起来能用”但实际没用主流浏览器(Chrome、Firefox、Safari、Edge)至今仍能解析 hgroup 标签而不报错,但它已被 W3C 和 WHATWG 从 HTML5.2 规范中正式移除。这意味着:
<hgroup><h1>A</h1><h2>B</h2></hgroup> 中的 <h2> 依然会被视为独立二级标题,出现在 Lighthouse 的结构化数据报告或 axe 的可访问性检查中hgroup 的语义意图,仍会分别朗读 <h1> 和 <h2>
html-validate、eslint-plugin-jsx-a11y)默认触发警告,提示 “hgroup is deprecated”hgroup 不是标准 React 元素类型,需手动扩展 JSX.IntrinsicElements,否则编译报错hgroup 的真实可行方案别试图“修复” hgroup,直接换掉。根据你要解决的具体问题选:
<h1> + <p class="subtitle">,纯 CSS 控制样式,语义干净,大纲清晰<header> 包裹 <h1>、<p>、<time> 等,<header> 是规范支持的语义容器aria-hidden="true"(仅当它纯属装饰性文本时),或用 aria-labelledby 显式绑定到主标题<h2>–<h6>,改用 <div> 或 <p>,搜索引擎不会将其识别为标题层级hgroup
极少数情况需容忍它存在,但前提是明确知道代价:
立即学习“前端免费学习笔记(深入)”;
hgroup 的模板hgroup,且无权限修改后端除此之外,所有新项目、重构项目、组件库、SSR 模板,都该直接删掉 hgroup —— 它不是“还能凑合”,而是“写了等于白写,还埋雷”。
真正容易被忽略的是:即使你今天在 Chrome DevTools 里看到 hgroup 没报错、DOM 渲染正常,它也早已不是语义节点。它的存在本身,就是对可访问性和长期维护性的轻微腐蚀。