Chrome 自带 Accessibility Inspector 是验证语义化角色最直接的入口,通过 Cmd+Shift+P 或 Ctrl+Shift+P 输入“Accessibility”打开,嵌在 Elements 面板右侧,实时显示选中元素的 Computed Role、Name 和 States;Role 为 generic 表示对屏幕阅读器不可见,需用原生 button 或添加 role="button"、tabindex="0" 和 aria-label;aria-hidden、display: none 等会使其退出可访问性树,右键“Inspect Accessibility Properties”将不生效;Name 和 States 必须准确同步,否则影响无障碍体验。

Chrome DevTools 里直接打开 Accessibility Inspector
不用装插件、不跑脚本,Chrome 自带的 Accessibility Inspector 就是验证语义化角色最直接的入口。按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Windows),输入 “Accessibility”,选中 “Show Accessibility” 面板即可打开。它不是独立窗口,而是嵌在 Elements 面板右侧的一个标签页,选中任意元素后立刻显示其在可访问性树中的计算结果。
重点看 Computed Role 这一列是否符合预期
比如一个视觉上像按钮的 这个右键菜单项只对「可访问性树中存在」的元素可用。如果元素被 Role 对了只是第一步。Name 为空或含糊(比如 “click me”、“button1”)会让屏幕阅读器用户完全不知道作用;States(如 可访问性树不是静态快照,它是实时计算的。任何 DOM 变更、属性更新、样式切换都可能影响 Role/Name/States 的最终值——所以得在交互发生后重新 inspect。generic,那它对屏幕阅读器就是“不可见”的按钮——即使加了点击事件也没用。正确做法是:优先用原生 ,或至少加 role="button" 并确保可聚焦(tabindex="0")、有名称(aria-label 或文本内容)。常见陷阱包括:role 和 tabindex,Computed Role 仍是 generic
被 CSS 设为 display: none 或 JS 移除,直接从可访问性树中消失,Role 列为空 多余加 role="checkbox",反而可能干扰浏览器默认行为为什么右键“Inspect Accessibility Properties”有时不生效
aria-hidden="true"、display: none、visibility: hidden 或 opacity: 0(且无交互属性)隐藏,右键就不会出现该选项。此时需先检查元素是否真的进入了可访问性树:
aria-hidden 标记display 是否为 none,或 visibility 是否为 hidden
Computed Name 和 States 同步更新才算真正可用
disabled、expanded)不同步则会导致操作反馈错乱。例如:aria-expanded 属性 → States 列不会变
没加 alt 或 aria-label → Name 列为空,屏幕阅读器跳过该图 的 option 元素没有文本内容,仅靠 value 属性 → Name 不会被读出
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











