mcpField
T
testing-strategy

testing-strategy

github.com/community-accessテスト・品質431215 回インストール1 日前に更新
リポジトリ

testing-strategy について

アクセシビリティテストの方針を決めるスキルです。自動テストと手動テストの使い分け、スクリーンリーダーとブラウザーの組み合わせ、受け入れ基準の作成を扱い、回帰テストのパターンやテストツールも紹介します。

主な機能

  1. 01自動テストと手動テストの範囲指針
  2. 02スクリーンリーダーとブラウザーの一覧
  3. 03テストの判断フロー
  4. 04CI のアクセシビリティゲート
  5. 05受け入れ基準のテンプレート
  6. 06テストツールの一覧

活用シーン

  1. 01新規コンポーネントのテスト計画
  2. 02支援技術のテスト環境選定
  3. 03CI へのアクセシビリティ検査追加
  4. 04アクセシビリティ受け入れ基準の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/community-access/accessibility-agents --skill testing-strategy

インストール後、Claude Code で/testing-strategyを入力して読み込まれたか確認します。

詳細

テスト戦略スキル

アクセシビリティテストの意思決定フレームワークです。自動ツールと手動テストのどちらを使うか、どのスクリーンリーダーとブラウザーの組み合わせをテストするか、アクセシビリティの受け入れ基準をどう記述するかを説明します。


自動テストと手動テストのカバー範囲

自動ツールで検出できること(約30~40%)手動テストが必要なこと(約60~70%)
画像の代替テキストの欠落代替テキストの品質と正確さ
フォームラベルの欠落ラベルの明瞭さと有用性
色のコントラスト比(計算値)コンテキストにおける色のコントラスト(グラデーション、画像)
lang 属性の欠落言語の正しい識別
ID の重複論理的な読み上げ順序
カスタムウィジェットの ARIA ロールの欠落インタラクションパターンに適した ARIA ロール
見出し階層の違反見出しテキストの意味の明確さ
空のリンクとボタンリンク/ボタンのテキストの説明性
テーブルヘッダーの欠落テーブルのキャプションとヘッダーの関連付けの品質
ARIA の構文エラースクリーンリーダーの読み上げが正しいか

ブラウザーとスクリーンリーダーの互換性マトリックス

主なテストの組み合わせ(必須)
スクリーンリーダーブラウザーOS優先度
NVDAFirefoxWindowsテスト必須
NVDAChromeWindowsテスト必須
JAWSChromeWindowsテスト必須
VoiceOverSafarimacOSテスト必須
VoiceOverSafariiOSテスト必須
TalkBackChromeAndroidテスト推奨
二次的な組み合わせ(できればテスト)
スクリーンリーダーブラウザーOS
ナレーターEdgeWindows
JAWSEdgeWindows

テストの判断ツリー

Is it a new component or page?
├── Yes → Full test coverage (automated + manual)
│   ├── Run axe-core / Lighthouse scan
│   ├── Keyboard-only navigation test
│   ├── Screen reader announcement test (NVDA + VoiceOver minimum)
│   └── Visual check at 200% zoom
└── No → What changed?
    ├── Colors/styling → Contrast check + visual review
    ├── Interactive behavior → Keyboard + screen reader test
    ├── Content/text → Screen reader announcement check
    ├── Layout/order → Reading order + focus order test
    └── Dependencies updated → Regression scan (axe-core)

回帰テストのパターン

CI パイプラインのアクセシビリティゲート
  1. axe-core スキャン:すべての PR で実行します。新たに発生した重大または深刻な違反があれば失敗させます。
  2. ベースライン管理:既知の問題を .a11y-baseline.json に保存します。新規の問題だけを失敗対象とします。
  3. Lighthouse スコアのしきい値:アクセシビリティスコアの最低値(例:90)を設定します。スコアが低下した場合は失敗させます。
  4. ビジュアル回帰:200%ズームでスクリーンショットを撮影します。フォーカスインジケーターとレイアウトの変更を比較します。
回帰の防止
  • 既存のコンポーネントテストにアクセシビリティのアサーションを追加します(testing-accessibility.instructions.md を参照)
  • E2E テストスイートにキーボードナビゲーションを含めます
  • アクセシビリティスコアの推移を継続的に記録します(合格/不合格だけにしません)

受け入れ基準のテンプレート

ユーザーストーリー向け
Given [context],
When [action by keyboard/mouse/screen reader],
Then [accessible outcome]:

- [ ] Component has an accessible name (via label, aria-label, or aria-labelledby)
- [ ] Component has the correct ARIA role
- [ ] Component is reachable and operable by keyboard (Tab, Enter, Space, Escape, Arrows as appropriate)
- [ ] Focus is visible when the component receives focus
- [ ] State changes are announced to screen readers (aria-expanded, aria-selected, aria-checked, etc.)
- [ ] Error messages are associated with their inputs (aria-describedby or aria-errormessage)
- [ ] Content is readable at 200% zoom without horizontal scrolling
- [ ] Color is not the only means of conveying information

主なテストツール

ツール種類最適な用途
axe-core / @axe-core/cli自動CI/CD への統合、幅広い違反のスキャン
Lighthouse自動パフォーマンスとアクセシビリティを組み合わせたスコア
WAVE半自動アクセシビリティ機能/問題の視覚的なオーバーレイ
Accessibility Insights半自動FastPass(自動)と Assessment(手動ガイド)
pa11y自動CI/CD、HTML CodeSniffer のルール
jest-axe単体テストjest でのコンポーネント単位の axe スキャン
cypress-axeE2E テストCypress でのページ単位の axe スキャン
playwright + @axe-core/playwrightE2E テストPlaywright でのページ単位の axe スキャン

スクリーンリーダーテストのクイックリファレンス

NVDA(Windows)
キー操作
Insert + Spaceフォーカスモード/ブラウズモードの切り替え
Tab次のフォーカス可能な要素に移動
H次の見出し
D次のランドマーク
F次のフォームフィールド
T次のテーブル
Insert + F7要素リスト(リンク、見出し、ランドマーク)
VoiceOver(macOS)
キー操作
VO(Ctrl+Option)+ Right次の要素に移動
VO + Space現在の要素を有効化
VO + Uローターを開く(種類で移動)
VO + Cmd + H次の見出し

コメント