mcpField
Q
qe-accessibility-testing

qe-accessibility-testing

github.com/proffesor-for-testingテスト・品質51985 回インストール今日更新
リポジトリ

qe-accessibility-testing について

自動チェックにキーボード操作とスクリーンリーダーの検証を組み合わせる、開発・テストチーム向けのアクセシビリティテストスキルです。POUR原則とWCAG 2.2を軸に、自動テストだけでなく手動テストも重視します。

主な機能

  1. 01POUR原則に基づくチェック
  2. 02キーボード操作のテスト
  3. 03スクリーンリーダーの検証
  4. 04色コントラストの確認
  5. 05axe-coreによる自動テスト
  6. 06WCAG 2.2への対応

活用シーン

  1. 01新機能開発時のアクセシビリティ確認
  2. 02リリース前のキーボード・スクリーンリーダー対応検証
  3. 03ADA、Section 508、EU指令の監査
  4. 04CI/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 パイプラインに統合します

A11y クイックチェックリスト:

  • すべての画像に代替テキストがある(装飾目的の場合は alt="")
  • すべてのフォームフィールドにラベルがある
  • 色だけを唯一の識別手段にしない
  • すべてのインタラクティブ要素でフォーカスが見える
  • キーボードナビゲーションが全体を通じて機能する

重要な成功要因:

  • 自動テストで問題の 30~50%を検出できます
  • 実際の支援技術を使った手動テストが必要です
  • テストに障害のあるユーザーを含めます </default_to_action>

クイックリファレンスカード

使用する場面
  • 法令への準拠(ADA、Section 508、EU 指令)
  • 新機能の開発
  • リリース前の検証
  • アクセシビリティ監査
WCAG 2.2 の適合レベル
レベル要件目標
A基本的なアクセシビリティ法的な最低基準
AA標準(ほとんどの組織)業界標準
AAA強化専門分野向けサイト
POUR の原則
原則意味主なテスト
知覚可能コンテンツを知覚できる代替テキスト、コントラスト、字幕
操作可能UI を操作できるキーボード、発作の防止、ナビゲーション
理解可能内容を理解できる明確なラベル、予測可能性、エラー
堅牢支援技術で動作する有効な 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)

エージェント主導のアクセシビリティ

// 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'
});

エージェント連携のヒント

メモリ名前空間
aqe/accessibility/
├── wcag-results/*       - WCAG audit results
├── screen-reader/*      - Screen reader test logs
├── remediation/*        - Fix recommendations
└── compliance/*         - Compliance reports
フリート連携
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、EU 指令 2016/2102。13 兆ドルの購買力。訴訟は 250%以上増加しています。

自動テストで検出できる問題は 30~50%にすぎません。 手動でのキーボードテスト、スクリーンリーダーテスト、および障害のある人々による実ユーザーテストを組み合わせてください。

エージェントを活用する場合: エージェントは WCAG 2.2 の準拠チェック、スクリーンリーダーのシミュレーション、フォーカス管理の検証を自動化します。CI/CD でアクセシビリティ標準を適用し、本番環境への反映前に違反を検出するためにエージェントを活用してください。

コメント