SuperAPI AI 工具集

a11y-debugging

测试与质量

查看项目

更新于 10-15 21:09

技能介绍

用途:借助 Chrome DevTools MCP 对网页做无障碍(a11y)调试与审计,参考 web.dev 指南,覆盖语义化 HTML、ARIA 标签、焦点、键盘导航等测试场景。

核心概念:无障碍树比 DOM 更接近辅助技术的“所见”,使用 take_snapshot 可获取页面无障碍树,作为语义结构的可靠依据。视觉隐藏元素(如 opacity:0)与 display:none 或 aria-hidden="true" 对屏幕阅读器的行为不同。查阅 web.dev 文档时,可在 URL 后加 .md.txt 获取干净 Markdown 版本。

主要工作流:

  1. Lighthouse 自动审计:mode 设为 "navigation",设置 outputDirPath 保存 JSON 报告,检查 0-1 分值与 audits.failed,用 jq 或 Node 单行命令筛选失败项而非通读全文。
  2. 浏览器问题与审计:list_console_messages 搭配 types:["issue"] 与 includePreservedMessages:true,捕获加载期问题。
  3. 语义与结构:take_snapshot 检查标题层级是否跳跃,take_screenshot 对比视觉顺序与 DOM 逻辑顺序。
  4. 标签、表单与文本替代:确认交互元素有可访问名称,用 evaluate_script 查找缺少 label、aria-label 的输入,并检查图片 alt。
  5. 焦点与键盘导航:用 press_key 按 Tab/Shift+Tab,再用 take_snapshot 确认焦点移动;模态框打开时焦点应移入并被困住。
  6. 点击目标与视觉:web.dev 建议点击目标至少 48x48 像素且间距充足,用 evaluate_script 读取元素尺寸。
  7. 颜色对比:先用 list_console_messages 的 "issue" 查找低对比问题,必要时用脚本近似计算对比度。
  8. 全局页面检查:验证 html lang、title、viewport 及 prefers-reduced-motion。

限制:对比度脚本算法简化,不处理透明度、渐变或背景图,生产级审计建议注入 axe-core;无法用脚本判断时可用截图做视觉评估。缺失事实暂未提供。