可访问性硬性检查点包括:1.所有必须有有效alt属性;2.表单控件必须显式绑定;3.标题层级不得跳级;4.页面必须含等语义化地标元素。

评审必须覆盖哪些可访问性硬性检查点
可访问性不是“建议项”,而是上线前必须拦截的合规红线。人工评审容易漏掉细节,所以得先明确哪些点绝对不能过——这些是自动化工具能抓、人眼必须核的底线。
-
alt属性:所有<img>必须有alt,空字符串alt=""只允许用于纯装饰图;alt="图标"或alt="图片"这类无效值直接拒收 -
label绑定:每个<input>、<textarea></textarea>、<select></select>必须显式关联<label></label>(用for/id,或包裹写法),禁用placeholder替代label - 标题层级:
<h1></h1>到<h6></h6>不能跳级,比如<h1></h1>后直接<h3></h3>,否则破坏屏幕阅读器导航流 - 地标元素缺失:页面至少含一个
<main></main>,主导航必须用<nav></nav>而非<div role="navigation">;<code><header></header>和<footer></footer>不能缺如何把可访问性检查嵌入 PR 流程而不拖慢开发
靠开发者自觉补
aria-label不现实,得让检查变成“不通过就卡住”的环节。关键不是加更多步骤,而是把验证塞进已有流程里,且反馈要快、定位要准。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件下载如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- CI 中集成
axe-coreCLI,在构建时扫描 HTML 模板文件(如src/index.html或 SSR 输出片段),命中 WCAG AA 级错误直接失败 - Pre-commit 钩子跑
htmlhint,配置规则强制alt-require、input-requires-label、attr-no-duplication,保存即报错 - PR 描述模板里加固定字段:
Accessibility check: ✅ manual keyboard nav + NVDA test on /login,没填就自动打回 - 禁止在 PR 里出现
role="button"这类 ARIA 替代写法——除非附带说明“原生<button></button>无法满足 XX 动态状态需求”,并提供aria-pressed/aria-disabled完整配套
评审人最容易忽略但后果严重的三个场景
很多可访问性问题不会在 Chrome 里“看起来不对”,却会让键盘用户卡死、屏幕阅读器读错、甚至触发法律风险。以下三点必须逐行盯:
<div onclick="submitForm()">:表面能点,实则无键盘支持、无焦点样式、无 <code>role和tabindex,必须替换成<button></button>或补全 ARIA + 键盘事件(Enter/Space)<table> 仅用于布局:没有 <code><th>、缺失 <code>scope或headers属性,表格数据对屏幕阅读器就是乱码;非数据表一律禁用<table> <li>动态内容更新(如搜索结果加载):没用 <code>aria-live="polite"告知屏幕阅读器,用户根本不知道内容已变;aria-live区域不能写死为空,得确保 JS 确实往里面注入了新文本- 每次评审必须做三件事:关掉鼠标只用 Tab 键走一遍所有交互控件;打开 VoiceOver/NVDA 听读关键页面(登录页、表单页、列表页);用 DevTools 的 Accessibility 面板检查
computed role和name是否符合预期 - 重点关注“看不见的交互”:下拉菜单展开后,焦点是否自动移入?关闭后是否回到触发按钮?分页切换时,焦点是否落到新内容区顶部?这些逻辑错误 Lighthouse 完全不报
- 团队需共享一份最小化手动检查清单(PDF 或 Notion),每人每次评审只执行 5 分钟内能完成的 4–5 项动作,避免“等有空再看”变成“从不看”
为什么光靠 Lighthouse 报告不够
Lighthouse 的 Accessibility 审计只能发现约 30% 的真实问题。它扫不到键盘焦点是否被 trap 在模态框里,判不出
alt描述是否准确,也测不了 VoiceOver 下表单标签是否被正确朗读。人工走查不可替代,但得有重点。alt少写一个字,而是<main></main>标签缺失导致整个页面被屏幕阅读器跳过,或是tabindex="0"随手加在<div>上却没处理键盘事件——这种问题代码里看着正常,运行时却让残障用户彻底失去操作路径。</div> - CI 中集成










