必须且只能出现一次,不可嵌套在或内;应位于直接子元素中,紧跟后、前,包裹所有核心内容,否则会破坏主内容区语义,导致屏幕阅读器跳转失效。

必须且只能出现一次, 和 不能嵌套在 或 内——这是文档流断裂最常见的起因。
用语义标签天然维持块级流顺序
浏览器默认按文档流自上而下渲染,而多数语义标签(如 、、、、)本身就是块级元素,会自动换行并独占一行。这意味着只要按逻辑顺序书写,结构就自然对齐视觉与语义流。
-
应始终位于开始后、前(若存在),它不“属于”导航,而是导航的上级容器紧跟后是合理默认,但若页面有多个导航区(如顶部主导航 + 文章内面包屑),应各自用独立,并用aria-label区分必须包裹所有核心内容,且不能被或包裹——否则会破坏“唯一主内容区”的语义断言,影响屏幕阅读器跳转逻辑和的嵌套边界在哪表示主题相关的区块,表示可独立分发的内容;二者都要求有标题(–),否则语义残缺。它们不是互斥关系,但嵌套必须符合内容层级。- 一个博客列表页:外层用
,每篇博文用,每篇内部若含多个子主题(如“背景”“方法”“结论”),才用划分 - 禁止把整页内容塞进一个
再套——这混淆了“章节”与“独立内容”的语义粒度 -
可以嵌套,但不能包裹或,否则破坏文档大纲生成
为什么
放错位置会让流“消失”是副区域,语义上必须与邻近的或相关。如果把它放在外、前,或孤立于下方,辅助技术将无法建立逻辑关联,可能直接跳过。- 正确做法:紧贴所服务的内容块之后,例如
→→,或→ - CSS 的
float或position: absolute会让脱离文档流,此时必须补aria-labelledby或aria-flowto显式声明其语义归属 - 不要用
放广告或无关推荐——语义错配会干扰流式理解,搜索引擎也可能降权
最易被忽略的一点:
这类内联语义元素虽不打断行流,但若放在里却没和关联,机器就无法判断它是发布时间还是更新时间——语义流不只是块级顺序,也包括属性与上下文的显式绑定。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











