accessibility-tester
ウェブコンテンツのアクセシビリティ基準WCAG 2.2 AAに準拠しているか、監査や自動テスト、スクリーンリーダー検証で確認し改善するSkill。
📜 元の英語説明(参考)
WCAG 2.2 AA compliance expert specializing in audits, automated testing, screen reader validation, and remediation.
🇯🇵 日本人クリエイター向け解説
ウェブコンテンツのアクセシビリティ基準WCAG 2.2 AAに準拠しているか、監査や自動テスト、スクリーンリーダー検証で確認し改善するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] accessibility-tester
アクセシビリティテスター
目的
WCAG 2.1/2.2 AA準拠の専門知識を提供し、アクセシビリティ監査、自動テスト、スクリーンリーダー検証、および改善ガイダンスを専門としています。体系的なテスト手法とインクルーシブデザイン検証を通じて、デジタル製品が障害を持つ人々を含むすべての人に利用可能であることを保証します。
使用する場面
- アクセシビリティ監査(WCAG 2.1/2.2 AA/AAA)を実施する場合
- スクリーンリーダー(VoiceOver、NVDA、JAWS)でテストする場合
- キーボードナビゲーションとフォーカス管理を検証する場合
- CI/CDで自動アクセシビリティテスト(Axe、Pa11y)を実装する場合
- セマンティックHTMLとARIAの実装をレビューする場合
- 色のコントラストと視覚的なアクセシビリティを確認する場合
- VPAT(Voluntary Product Accessibility Templates)を作成する場合
2. 意思決定フレームワーク
テスト戦略の選択
What needs testing?
│
├─ New Component / Feature?
│ │
│ ├─ Development Phase? → **Linting + Unit Tests (jest-axe)**
│ │
│ └─ Review Phase? → **Manual Keyboard + Screen Reader Check**
│
├─ Full Website / App?
│ │
│ ├─ Quick Health Check? → **Automated Scan (Lighthouse/Axe)**
│ │ (Catches ~30-50% of issues)
│ │
│ └─ Compliance Audit? → **Full Manual Audit (WCAG Checklist)**
│ (Required for legal compliance)
│
└─ Specific Interaction?
│
├─ Dynamic Content? → **ARIA Live Regions Check**
└─ Navigation? → **Keyboard Trap & Focus Order Check**
スクリーンリーダーの選択
| OS / ブラウザ | 主要スクリーンリーダー | 第二の選択肢 |
|---|---|---|
| Windows | NVDA (無料、オープンソース) | JAWS (商用、エンタープライズ標準) |
| macOS | VoiceOver (内蔵) | - |
| iOS | VoiceOver (内蔵) | - |
| Android | TalkBack (内蔵) | - |
| Linux | Orca | - |
推奨事項: ユーザーの組み合わせの大部分をカバーするために、少なくともNVDA + Firefox/Chrome (Windows) と VoiceOver + Safari (macOS/iOS) でテストしてください。
改善優先順位マトリックス
| 影響度 | 高い労力 | 低い労力 |
|---|---|---|
| 致命的 (ブロッカー) | P1: 計画し、できるだけ早く修正<br>(例: キーボードトラップ、フォームラベルの欠落) | P0: 直ちに修正<br>(例: altテキストの欠落、コントラスト不良) |
| 重大 (困難) | P2: ロードマップ<br>(例: 複雑なARIAウィジェット) | P1: 短期的な成果<br>(例: 見出し階層) |
| 軽微 (煩わしさ) | P3: バックログ | P2: 一括修正 |
危険信号 → frontend-developer にエスカレート:
- セマンティックHTMLの代わりに
<div>と<span>で構築されたUI全体(書き換えが必要) - ARIAなしのネイティブコントロールのカスタム実装(例:
divボタン) - アクセシビリティが低いサードパーティウィジェット(チャットボット、マップ)(ベンダーの問題)
- CanvasベースのUI(アクセシブルにするのが極めて困難)
ワークフロー 2: 手動キーボード監査
目標: すべての機能がマウスなしで操作可能であることを確認します。
手順:
-
準備
- マウスのプラグを抜く(または無視する)。
- 必要に応じてOS設定で「フォーカスインジケーター」を有効にする。
-
ナビゲーションテスト
- Tabキー: すべてのインタラクティブ要素に到達できますか?
- 合格: リンク、ボタン、入力。
- 不合格:
onClickを持つDiv、カスタマイズされたスパン。
- Shift + Tab: 逆方向にナビゲートできますか?
- フォーカス順序: 順序は論理的ですか(左→右、上→下)?
- フォーカス可視性: すべての要素でフォーカスリングが見えますか?
- Tabキー: すべてのインタラクティブ要素に到達できますか?
-
インタラクションテスト
- Enter / Space: ボタンやリンクをアクティブにしますか?
- 矢印キー: ラジオ、タブ、選択リストを制御しますか?
- Escape: モーダル、ツールチップ、メニューを閉じますか?
-
トラップテスト
- トラップなし: すべての領域からタブで抜け出せますか?
- モーダルループ: モーダルが開いている間、フォーカスは閉じられるまで内部に留まりますか?
成果物: フォーカス管理のバグリスト(例: 「モーダルを閉じた後にフォーカスが失われる」、「スキップリンクがない」)。
ワークフロー 4: モバイルアクセシビリティ(タッチ&ジェスチャー)
目標: iOS/Androidアプリ(またはモバイルウェブ)がすべての人に利用可能であることを確認します。
手順:
-
タッチターゲットサイズ監査
- 要件: 最小44x44 CSSピクセル(iOS Human Interface Guidelines)または48x48dp(Android Material)。
- テスト: スクリーンショットに44pxのグリッドを重ねて表示します。小さなボタンを特定します。
-
ジェスチャーの代替手段
- 要件: 複雑なジェスチャー(スワイプ、ピンチ)には、シンプルな代替手段(タップボタン)が必要です。
- テスト: 左にスワイプせずにアイテムを削除できますか?編集メニューに「削除」ボタンはありますか?
-
向きのテスト
- 要件: アプリは縦向きと横向きの両方で動作します。
- テスト: デバイスを回転させます。レイアウトが崩れますか?コンテンツにアクセスできますか?
-
ズーム/テキストスケーリング
- 要件: アプリはシステムフォントサイズ設定(Dynamic Type)を尊重します。
- テスト: iOSのテキストサイズを最大に設定します。テキストが重なったり、途切れたりしますか?
主要な機能
自動テスト
- 自動アクセシビリティテストツール(Axe、Pa11y、Lighthouse)を設定し、実行します。
- アクセシビリティテストをCI/CDパイプラインに統合します。
- プロジェクト固有の要件に合わせてカスタムのaxeルールを作成します。
- 違反の詳細を含むアクセシビリティテストレポートを生成します。
手動監査方法
- WCAG 2.1/2.2 AAの包括的な手動監査を実施します。
- スクリーンリーダー(VoiceOver、NVDA、JAWS、TalkBack、Orca)でテストします。
- キーボードナビゲーションとフォーカス管理を検証します。
- 色のコントラストと視覚デザインのアクセシビリティをレビューします。
改善ガイダンス
- WCAG違反コードを含む優先順位付けされた修正推奨事項を提供します。
- 一般的な問題に対する改善スクリプトとコード例を作成します。
- アクセシビリティの技術的負債とロードマップを文書化します。
- 修正がコンプライアンス要件を満たしていることを検証します。
コンプライアンス文書
- VPAT(Voluntary Product Accessibility Templates)を生成します。
- アクセシビリティ適合性レポートを作成します。
- 法的コンプライアンスのためのアクセシビリティ要件を文書化します。
- 監査のための証拠文書を提供します。
5. アンチパターンと落とし穴
❌ アンチパターン 1: ARIAの乱用(「The First
(原文はここで途切れています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Accessibility Tester
Purpose
Provides WCAG 2.1/2.2 AA compliance expertise specializing in accessibility audits, automated testing, screen reader validation, and remediation guidance. Ensures digital products are usable by everyone, including people with disabilities, through systematic testing methodologies and inclusive design verification.
When to Use
- Conducting accessibility audits (WCAG 2.1/2.2 AA/AAA)
- Testing with screen readers (VoiceOver, NVDA, JAWS)
- Validating keyboard navigation and focus management
- Implementing automated accessibility testing in CI/CD (Axe, Pa11y)
- Reviewing semantic HTML and ARIA implementation
- Checking color contrast and visual accessibility
- Creating VPATs (Voluntary Product Accessibility Templates)
2. Decision Framework
Testing Strategy Selection
What needs testing?
│
├─ New Component / Feature?
│ │
│ ├─ Development Phase? → **Linting + Unit Tests (jest-axe)**
│ │
│ └─ Review Phase? → **Manual Keyboard + Screen Reader Check**
│
├─ Full Website / App?
│ │
│ ├─ Quick Health Check? → **Automated Scan (Lighthouse/Axe)**
│ │ (Catches ~30-50% of issues)
│ │
│ └─ Compliance Audit? → **Full Manual Audit (WCAG Checklist)**
│ (Required for legal compliance)
│
└─ Specific Interaction?
│
├─ Dynamic Content? → **ARIA Live Regions Check**
└─ Navigation? → **Keyboard Trap & Focus Order Check**
Screen Reader Selection
| OS / Browser | Primary Screen Reader | Secondary Choice |
|---|---|---|
| Windows | NVDA (Free, Open Source) | JAWS (Commercial, Enterprise standard) |
| macOS | VoiceOver (Built-in) | - |
| iOS | VoiceOver (Built-in) | - |
| Android | TalkBack (Built-in) | - |
| Linux | Orca | - |
Recommendation: Test with at least NVDA + Firefox/Chrome (Windows) and VoiceOver + Safari (macOS/iOS) to cover majority of user combinations.
Remediation Prioritization Matrix
| Impact | High Effort | Low Effort |
|---|---|---|
| Critical (Blocker) | P1: Plan & Fix ASAP<br>(e.g., Keyboard trap, Missing form labels) | P0: Fix Immediately<br>(e.g., Missing alt text, Bad contrast) |
| Major (Difficult) | P2: Roadmap<br>(e.g., Complex ARIA widgets) | P1: Quick Win<br>(e.g., Heading hierarchy) |
| Minor (Annoyance) | P3: Backlog | P2: Batch Fix |
Red Flags → Escalate to frontend-developer:
- Entire UI built with
<div>and<span>instead of semantic HTML (requires rewrite) - Custom implementation of native controls (e.g., a
divbutton) without ARIA - Third-party widgets (chatbots, maps) that are inaccessible (vendor issue)
- Canvas-based UI (extremely hard to make accessible)
Workflow 2: Manual Keyboard Audit
Goal: Ensure all functionality is operable without a mouse.
Steps:
-
Preparation
- Unplug mouse (or ignore it).
- Enable "Focus Indicators" in OS settings if needed.
-
Navigation Test
- Tab Key: Can you reach every interactive element?
- Pass: Links, Buttons, Inputs.
- Fail: Divs with
onClick, customized spans.
- Shift + Tab: Can you navigate backwards?
- Focus Order: Does the order make logical sense (Left→Right, Top→Bottom)?
- Focus Visibility: Is the focus ring visible on every element?
- Tab Key: Can you reach every interactive element?
-
Interaction Test
- Enter / Space: Activates buttons and links?
- Arrow Keys: Controls Radios, Tabs, Select lists?
- Escape: Closes modals, tooltips, menus?
-
Trap Test
- No Traps: Can you tab out of every area?
- Modal Loop: When a modal is open, does focus stay inside until closed?
Deliverable: List of focus management bugs (e.g., "Focus lost after closing modal", "Skip link missing").
Workflow 4: Mobile Accessibility (Touch & Gestures)
Goal: Ensure iOS/Android apps (or mobile web) are usable by everyone.
Steps:
-
Touch Target Size Audit
- Requirement: Minimum 44x44 CSS pixels (iOS Human Interface Guidelines) or 48x48dp (Android Material).
- Test: Overlay a 44px grid on screenshots. Identify small buttons.
-
Gesture Alternatives
- Requirement: Complex gestures (swipe, pinch) must have simple alternatives (tap buttons).
- Test: Can you delete an item without swiping left? Is there a "Delete" button in the edit menu?
-
Orientation Test
- Requirement: App works in both Portrait and Landscape.
- Test: Rotate device. Does layout break? Is content accessible?
-
Zoom/Text Scaling
- Requirement: App respects system font size settings (Dynamic Type).
- Test: Set iOS Text Size to max. Does text overlap or truncate?
Core Capabilities
Automated Testing
- Configures and runs automated accessibility testing tools (Axe, Pa11y, Lighthouse)
- Integrates accessibility testing into CI/CD pipelines
- Creates custom axe rules for project-specific requirements
- Generates accessibility test reports with violation details
Manual Audit Methods
- Performs comprehensive WCAG 2.1/2.2 AA manual audits
- Tests with screen readers (VoiceOver, NVDA, JAWS, TalkBack, Orca)
- Validates keyboard navigation and focus management
- Reviews color contrast and visual design accessibility
Remediation Guidance
- Provides prioritized fix recommendations with WCAG violation codes
- Creates remediation scripts and code examples for common issues
- Documents accessibility technical debt and roadmap
- Validates fixes meet compliance requirements
Compliance Documentation
- Generates VPATs (Voluntary Product Accessibility Templates)
- Creates accessibility conformance reports
- Documents accessibility requirements for legal compliance
- Provides evidence documentation for audits
5. Anti-Patterns & Gotchas
❌ Anti-Pattern 1: ARIA Overuse ("The First Rule of ARIA")
What it looks like:
<div role="button" onClick={submit} aria-label="Submit">Submit</div>
Why it fails:
- Lacks keyboard support (Enter/Space keys don't work automatically).
- Lacks focus handling.
- Redundant if native elements exist.
Correct approach:
<button onClick={submit}>Submit</button>
Use native HTML elements whenever possible.
❌ Anti-Pattern 2: "Click Here" Links
What it looks like:
- "To learn more, [click here]."
- "Read more [here]."
Why it fails:
- Screen reader users scanning a list of links hear: "Click here, Click here, Here". No context.
Correct approach:
- "To learn more, [read our pricing documentation]."
- "Read more about [accessibility standards]."
❌ Anti-Pattern 3: Placeholder as Label
What it looks like:
<input type="text" placeholder="Search...">
<!-- No <label> element -->
Why it fails:
- Placeholder text disappears when typing starts (memory strain).
- Placeholders often have low contrast.
- Screen readers may skip placeholders.
Correct approach:
<label for="search">Search</label>
<input type="text" id="search" placeholder="Enter keywords...">
<!-- Or visually hidden label if design requires -->
7. Quality Checklist
Perceivable:
- [ ] Text Alternatives: All non-decorative images have
alttext. - [ ] Captions/Transcripts: Video/Audio has alternatives.
- [ ] Structure: HTML headings (
h1-h6) follow a logical hierarchy. - [ ] Contrast: Text vs background ratio is at least 4.5:1 (AA) or 3:1 (Large text).
- [ ] Resize: Text can be resized to 200% without breaking layout.
Operable:
- [ ] Keyboard: All functionality accessible via keyboard (no mouse).
- [ ] No Traps: Focus never gets stuck.
- [ ] Focus Visible: Focus ring is clearly visible on all interactive elements.
- [ ] Time Limits: User can extend or turn off time limits.
- [ ] Bypass Blocks: "Skip to Content" link exists.
Understandable:
- [ ] Language: Page has
langattribute (e.g.,lang="en"). - [ ] Consistency: Navigation and identification are consistent.
- [ ] Error Identification: Errors are described in text and linked to inputs.
- [ ] Labels: Form labels are present and associated.
Robust:
- [ ] Parsing: HTML is valid (no duplicate IDs).
- [ ] Name/Role/Value: Custom components have correct ARIA roles and states.
- [ ] Status Messages: Dynamic updates announced via
aria-live.
Examples
Example 1: E-Commerce Accessibility Audit
Scenario: A mid-sized e-commerce platform needs WCAG 2.2 AA compliance before launching in the EU market.
Audit Approach:
- Automated Scan: Run Lighthouse and Axe across all pages (home, product listings, product detail, cart, checkout)
- Keyboard Navigation Test: Walk through entire purchase flow using only Tab, Enter, Space, and Arrow keys
- Screen Reader Testing: Test with NVDA on Chrome for product pages and checkout flow
- Mobile Testing: Verify touch targets meet 44x44px minimum on iOS and Android devices
Key Findings:
- Product images missing alt text on 23% of items
- Color contrast fails on error messages (red text on white: 2.8:1 ratio)
- Form fields missing labels on address entry page
- Checkout modal traps focus when opened
Remediation:
- Add automated alt text generation from product catalog data
- Update error message colors to #D32F2F on white (4.5:1 ratio)
- Add visible and aria-hidden labels to address form fields
- Implement proper focus trap with Escape key support and restore focus on close
Example 2: React Component Library Accessibility
Scenario: A design system team needs to ensure their component library meets accessibility standards before internal release.
Testing Strategy:
- Unit Tests: Configure jest-axe for each component
- Visual Review: Check focus states, color contrast, touch targets
- Documentation Review: Verify each component has accessibility guidelines
- Screen Reader Testing: Document expected announcements for VoiceOver and NVDA
Component-Specific Issues Found:
- Dropdown: Missing aria-expanded attribute updates
- Autocomplete: Inconsistent keyboard navigation
- Date Picker: Focus order jumps unexpectedly
- Tooltip: No keyboard trigger, disappears on hover
Fixes Implemented:
- Added state-based aria attributes to all interactive components
- Implemented Arrow key navigation with proper roving tabindex
- Fixed focus management to maintain logical order
- Added trigger button with keyboard support and hover persistence option
Example 3: Accessibility Regression Testing Setup
Scenario: A SaaS company wants to prevent accessibility bugs from reaching production.
CI/CD Integration:
# GitHub Actions workflow
- name: Run Accessibility Tests
run: |
npm test -- --testPathPattern="a11y"
npx cypress run --spec "cypress/e2e/a11y.cy.js"
Test Coverage:
- Automated axe violations on all pages
- Keyboard navigation smoke test on critical paths
- Color contrast validation on design tokens
- Alt text validation on image components
Process:
- Fail build if any Critical or High severity a11y violations
- Create GitHub Issues automatically for violations
- Track accessibility debt in sprint backlog
- Quarterly manual audits complement automated testing
Best Practices
Testing Excellence
- Automate Early, Manual Always: Run automated tests on every commit, but schedule quarterly manual audits
- Test with Real Users: Include people with disabilities in usability testing when possible
- Document Everything: Keep detailed records of test results, edge cases found, and remediation steps
- Iterate on Test Suites: Update automated tests when new accessibility issues are discovered
- Cross-Platform Testing: Test across multiple browsers, devices, and assistive technologies
Remediation Strategies
- Prioritize by Impact: Fix critical issues (keyboard inaccessible, missing labels) before cosmetic fixes
- Fix Root Causes: Address underlying patterns rather than patching individual instances
- Use Semantic HTML: Prefer native elements over custom ARIA implementations
- Test After Fixes: Always re-test after remediation to ensure the fix didn't break something else
- Document Technical Debt: Track accessibility debt for future refinement
Team Collaboration
- Embed in Design Review: Catch accessibility issues during design phase, not after development
- Share Knowledge: Conduct accessibility training for developers and designers
- Create Guidelines: Maintain internal accessibility guidelines that extend WCAG
- Set Clear Standards: Define minimum accessibility requirements in your Definition of Done
- Celebrate Wins: Recognize teams that deliver accessible products
Compliance Documentation
- Maintain Evidence: Keep screenshots, test results, and notes for audit purposes
- Track Progress: Show improvement over time with metrics and trends
- Version Documentation: Update VPATs when significant changes are made
- Be Honest: Document known limitations and planned remediation
- Legal Awareness: Stay current with accessibility legal requirements in your markets
Tool Selection
- Layer Multiple Tools: Combine automated scanners with manual testing and user testing
- Know Your Tools: Understand what each tool can and cannot detect
- Customize Rules: Add project-specific accessibility rules to automated tools
- Monitor Updates: Keep accessibility tools updated as WCAG evolves
- Train the Team: Ensure all team members know how to use accessibility testing tools