发布于2026-07-09 阅读(0)
扫一扫,手机访问
说到侧边栏的语义化,很多开发者容易陷入“位置决定论”的误区——以为只要放在页面左边或右边,用 或者 都没什么区别。但关键不在于“放哪”,而在于“是什么”。 表示内容与主文相关但可独立存在,比如广告、延伸阅读、作者简介; 则专指导航用途,比如分类目录、快捷入口。两者常配合使用,但绝不能混用或替代。

,什么该放 如果侧边栏里主要是跳转链接(比如“分类目录”“快捷入口”“用户中心”),本质上就是导航行为,必须用 包裹,并加上 aria-label 说明用途。例如:
,结果导航部分失去语义;或者全用 ,让读屏软件无法识别导航意图 可在 内,但别反着来当侧边栏同时有导航和辅助内容时,推荐外层用 统一语义归属,内部再按功能拆分:
,并确保每个链接是 ,不建议用 模拟按钮 包裹,并配上 标题
或
,不要用 堆砌
标题层级必须连贯,不能从 跳到
页面大纲不能断层。假设主内容用了 (文章标题)和 (小节标题),那么侧边栏里的模块标题就应该从 开始:
- 错例:
—— 破坏整页语义结构
- 对例:
- 可以用浏览器开发者工具的“可访问性树”视图验证标题是否逐级递进
别忘了无障碍支持:高亮当前项要用 aria-current="page"
纯靠 CSS 的 .active 类容易不同步,尤其刷新或回退时。更可靠的做法是服务端或构建时注入 aria-current 属性:
- HTML 示例:
博客首页
- CSS 响应:
a[aria-current="page"] { background: #007bff; color: white; }
- 这对屏幕阅读器用户至关重要——它会朗读“博客首页,当前页面”,而不仅仅是视觉变化