全局可用性必须通过可测量的HTML结构指标落地,如语义标签覆盖率、aria属性缺失率、tabindex异常节点数、lang声明一致性等;需用axe-core扫描DOM并聚合统计违规频次,定向抓取onclick无role/tabindex、img缺alt、lang不合规等高危模式,动态内容须等框架就绪后扫描。

直接说结论:全局可用性不是靠加个 global class 或写个“全站通用”注释就能体现的,它必须通过可测量、可追踪、可回溯的 HTML 结构行为来落地——比如语义标签覆盖率、aria- 属性缺失率、tabindex 异常节点数、lang 声明一致性等硬指标。
怎么把“全局可用性”变成可量化的 HTML 指标
可用性不能停留在“看着像能用”,得拆成浏览器能解析、辅助技术能读取、键盘能遍历的具体行为。常见误判是把“没报错”当成“可用”,但 div 套 div 再加 onclick 的按钮,即使功能正常,对屏幕阅读器就是不可见的。
- 核心指标必须包含:
role与元素默认语义是否冲突(如)、aria-hidden="true"是否误用于焦点元素、alt为空但非装饰性图片 - 工具链要能自动提取:用
axe-core扫描 DOM 后导出 JSON,再用 JS 聚合统计违规类型频次,而非人工点开 DevTools 逐条核对 - 不要只看 WCAG 条款编号(如 1.1.1),要映射到具体 HTML 特征:比如“非文本内容需有替代文本” → 统计所有
中alt为空或缺失的数量占比
HTML 结构层如何暴露可用性问题
大屏上最该亮红灯的,不是某个图表加载慢,而是整个页面里有 37 个 可视化库默认不处理键盘导航和屏幕阅读器支持, 真正难的不是写检测脚本,而是让开发习惯在写第一个 tabindex="0" —— 这类结构缺陷在视觉稿里完全看不见,但会直接卡住键盘用户操作流。
document.querySelectorAll 定向抓取高风险模式:'[onclick]:not([role]):not([tabindex])'、'img:not([alt]):not([aria-hidden="true"])'、'[lang]:not([lang^="zh"]):not([lang^="en"])'
.btn 不等于按钮),必须依赖原生标签或显式 role; 永远不等于
document.body.innerHTML 里还全是占位符,测了也白测ECharts 图表里的可用性盲区
echarts.init() 创建的 canvas 是个黑盒,除非你主动注入 ARIA 层。很多人以为“图表能显示”就算达标,但色觉障碍用户看不到渐变色差,键盘用户点不到图例切换按钮,这些都算可用性故障。
aria-label,且描述要含数据维度(如 aria-label="2024年各季度碳排放量柱状图,单位:万吨")renderer: 'canvas' 时的 SVG 模式(renderer: 'svg'),SVG 元素天然支持 focusable 和 title,比 canvas 更易做语义增强 替代 div + click,否则 tab 键根本跳不过去
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











