mcpField
Q
qe-accessibility-testing

qe-accessibility-testing

github.com/proffesor-for-testing测试与质量51985 次安装今天更新
代码仓库

关于 qe-accessibility-testing

面向开发与测试团队的无障碍测试技能,结合自动化检查、键盘操作和屏幕阅读器验证。内容围绕 POUR 原则及 WCAG 2.2,强调自动化测试需配合人工测试。

主要功能

  1. 01按 POUR 原则检查
  2. 02键盘导航测试
  3. 03屏幕阅读器验证
  4. 04颜色对比度检查
  5. 05使用 axe-core 自动化测试
  6. 06覆盖 WCAG 2.2 要求

适用场景

  1. 01开发新功能时检查无障碍问题
  2. 02发布前验证键盘与屏幕阅读器支持
  3. 03开展 ADA、Section 508 或欧盟法规审计
  4. 04在 CI/CD 中自动检查无障碍问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill qe-accessibility-testing

安装后在 Claude Code 中输入/qe-accessibility-testing确认已加载。

详细介绍

无障碍测试

<default_to_action> 测试无障碍功能或确保符合规范时:

  1. 应用 POUR 原则:可感知、可操作、可理解、健壮
  2. 使用仅键盘导航进行测试(Tab、Enter、Escape)
  3. 使用屏幕阅读器进行验证(VoiceOver、NVDA、JAWS)
  4. 检查色彩对比度(文本为 4.5:1,大号文本为 3:1)
  5. 使用 axe-core 自动化测试,并集成到 CI/CD 流水线中

无障碍快速检查清单:

  • 所有图像都有替代文本(装饰性图像使用 alt="")
  • 所有表单字段都有标签
  • 颜色绝不是唯一的指示方式
  • 所有交互元素都有可见的焦点
  • 键盘导航全程可用

关键成功因素:

  • 自动化测试可发现 30-50% 的问题
  • 必须使用真实辅助技术进行手动测试
  • 测试时应包含残障用户 </default_to_action>

快速参考卡

适用场景
  • 法律合规(ADA、Section 508、欧盟指令)
  • 新功能开发
  • 发布前验证
  • 无障碍审计
WCAG 2.2 等级
等级要求目标
A基本无障碍法律最低要求
AA标准(大多数组织)行业标准
AAA增强型特殊用途网站
POUR 原则
原则含义关键测试
Perceivable能感知内容替代文本、对比度、字幕
Operable能操作 UI键盘、避免引发癫痫、导航
Understandable能理解内容清晰标签、行为可预测、错误提示
Robust兼容辅助技术有效 HTML、ARIA
色彩对比度要求
内容AA 比率AAA 比率
普通文本4.5:17:1
大号文本(18pt+)3:14.5:1
UI 组件3:1-

键盘导航测试

// Test all interactive elements reachable via keyboard
test('all interactive elements keyboard accessible', async ({ page }) => {
  await page.goto('/');

  const focusableElements = await page.$$('button, a, input, select, textarea, [tabindex]');

  for (const element of focusableElements) {
    await element.focus();
    const isFocused = await element.evaluate(el => document.activeElement === el);
    expect(isFocused).toBe(true);
  }
});

// Verify visible focus indicator
test('focus indicator visible', async ({ page }) => {
  await page.goto('/');
  await page.keyboard.press('Tab');

  const focusedElement = await page.locator(':focus');
  const outline = await focusedElement.evaluate(el =>
    getComputedStyle(el).outline
  );

  expect(outline).not.toBe('none');
});

使用 axe-core 进行自动化测试

import { test, expect } from '@playwright/test';
import AxeBuilder from '@axe-core/playwright';

test('page has no accessibility violations', async ({ page }) => {
  await page.goto('/');

  const results = await new AxeBuilder({ page })
    .withTags(['wcag2a', 'wcag2aa', 'wcag22aa'])
    .analyze();

  expect(results.violations).toEqual([]);
});

// CI/CD integration
test('checkout flow accessible', async ({ page }) => {
  await page.goto('/checkout');

  const results = await new AxeBuilder({ page })
    .include('#checkout-form')
    .disableRules(['color-contrast']) // Fix in next sprint
    .analyze();

  expect(results.violations.filter(v =>
    v.impact === 'critical' || v.impact === 'serious'
  )).toHaveLength(0);
});

屏幕阅读器测试清单

## VoiceOver (macOS) Testing
- [ ] Page title announced on load
- [ ] Headings hierarchy correct (h1 → h2 → h3)
- [ ] Landmarks present (nav, main, footer)
- [ ] Images have descriptive alt text
- [ ] Form labels read correctly
- [ ] Error messages announced
- [ ] Dynamic content updates announced (aria-live)

Agent 驱动的无障碍测试

// Comprehensive a11y validation
await Task("Accessibility Validation", {
  url: 'https://example.com/checkout',
  standard: 'WCAG2.2',
  level: 'AA',
  checks: ['keyboard', 'screen-reader', 'color-contrast'],
  includeScreenReaderSimulation: true
}, "qe-visual-tester");

// Fleet coordination for comprehensive testing
const a11yFleet = await FleetManager.coordinate({
  strategy: 'comprehensive-accessibility',
  agents: [
    'qe-visual-tester',     // Visual & keyboard checks
    'qe-test-generator',    // Generate a11y tests
    'qe-quality-gate'       // Enforce compliance
  ],
  topology: 'parallel'
});

Agent 协作提示

记忆命名空间
aqe/accessibility/
├── wcag-results/*       - WCAG audit results
├── screen-reader/*      - Screen reader test logs
├── remediation/*        - Fix recommendations
└── compliance/*         - Compliance reports
Fleet 协作
const a11yFleet = await FleetManager.coordinate({
  strategy: 'accessibility-testing',
  agents: [
    'qe-visual-tester',   // axe-core, keyboard, focus
    'qe-test-generator',  // Generate a11y test cases
    'qe-quality-gate'     // Block non-compliant builds
  ],
  topology: 'parallel'
});

相关技能


请记住

全球有 10 亿残障人士。无法访问的软件将 15% 的人类排除在外。 法律要求:ADA、Section 508、欧盟指令 2016/2102。13 万亿美元的购买力。诉讼数量增加 250% 以上。

自动化测试只能发现 30-50% 的问题。 还需结合手动键盘测试、屏幕阅读器测试,以及与残障人士进行真实用户测试。

使用 Agent: Agent 可自动检查 WCAG 2.2 合规性、模拟屏幕阅读器并验证焦点管理。使用 Agent 在 CI/CD 中落实无障碍标准,并在产品上线前发现违规问题。

评论

支持 Markdown