html结构需兼顾语义、可访问性与性能:必须唯一且包裹全部主要内容;导航须用带aria-label的nav;关键css须内联于head且≤10kb;废弃html呈现属性,样式全交由css控制。

没有“完美”的HTML结构,只有符合当前语义需求、可访问性要求和渲染性能约束的结构。 所有试图套用模板、忽略上下文或硬塞标签的做法,都会在Lighthouse评分、屏幕阅读器体验或SEO抓取中暴露问题。
为什么必须是的直接子元素
浏览器和辅助技术靠定位页面“真正要读的内容”。如果写成<header><main></main></header>,相当于把导航栏声明为正文一部分——屏幕阅读器会跳过标题直奔“首页”链接,Lighthouse直接报document-missing-main错误。
-
<main></main>只能出现一次,第二个会被完全忽略,HTML验证器标红
- 允许的父容器只有
或无语义的<div>(仅用于CSS布局,不能带class或id)
<li>所有用户可见内容(包括文章、产品列表、表单)必须严格落在<code><main></main>内,<nav></nav>、<header></header>、<footer></footer>都得并列放在下