Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Automating Web Accessibility Testing with AI Ag...
Search
South
September 06, 2025
Technology
2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Automating Web Accessibility Testing with AI Agents
South
September 06, 2025
More Decks by South
See All by South
TSConfig Solution Style & subpath imports to switch types on a per-file basis
maminami373
2
330
JSConf JP 2022 introduce React Query
maminami373
2
7.4k
Front-end rearchitect SPA
maminami373
0
550
JSConf jp 2021 kaonavi front-end development in the monolithic service
maminami373
1
260
単体テストゼロからテスト文化を醸成させた話 / Fostering the testing culture
maminami373
0
2.5k
Other Decks in Technology
See All in Technology
Agile and AI Redmine Japan 2026
hiranabe
4
500
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
110
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
230
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
140
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
210
Deep Data Security 機能解説
oracle4engineer
PRO
2
230
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
10
2.6k
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
1
360
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
330
Lightning近況報告
kozy4324
0
230
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
280
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
Leo the Paperboy
mayatellez
7
1.9k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
Evolving SEO for Evolving Search Engines
ryanjones
0
220
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
280
Navigating Weather and Climate Data
rabernat
0
240
Building AI with AI
inesmontani
PRO
1
1.1k
Transcript
AIエージェントによるWebアクセ シビリティ試験の自動化 〜Gaudiyが実践するAI活用開発〜 フロントエンドカンファレンス北海道2025 | 株式会社Gaudiy kotori
自己紹介 • kotori ( @maminami_minami) • 株式会社Gaudiy Enabling Team •
札幌出身! • 趣味: 酒・アニメ・声優・お絵描き
について
גࣜձࣾ(BVEJZ@ձࣾઆ໌ࢿྉ$PNQBOZ%FDL4QFBLFS%FDLIUUQTTQFBLFSEFDLDPNHBVEJZDPNQBOZEFDL
גࣜձࣾ(BVEJZ@ձࣾઆ໌ࢿྉ$PNQBOZ%FDL4QFBLFS%FDLIUUQTTQFBLFSEFDLDPNHBVEJZDPNQBOZEFDL
גࣜձࣾ(BVEJZ@ձࣾઆ໌ࢿྉ$PNQBOZ%FDL4QFBLFS%FDLIUUQTTQFBLFSEFDLDPNHBVEJZDPNQBOZEFDL
גࣜձࣾ(BVEJZ@ձࣾઆ໌ࢿྉ$PNQBOZ%FDL4QFBLFS%FDLIUUQTTQFBLFSEFDLDPNHBVEJZDPNQBOZEFDL
גࣜձࣾ(BVEJZ@ձࣾઆ໌ࢿྉ$PNQBOZ%FDL4QFBLFS%FDLIUUQTTQFBLFSEFDLDPNHBVEJZDPNQBOZEFDL
גࣜձࣾ(BVEJZ@ձࣾઆ໌ࢿྉ$PNQBOZ%FDL4QFBLFS%FDLIUUQTTQFBLFSEFDLDPNHBVEJZDPNQBOZEFDL
גࣜձࣾ(BVEJZ@ձࣾઆ໌ࢿྉ$PNQBOZ%FDL4QFBLFS%FDLIUUQTTQFBLFSEFDLDPNHBVEJZDPNQBOZEFDL
גࣜձࣾ(BVEJZ@ձࣾઆ໌ࢿྉ$PNQBOZ%FDL4QFBLFS%FDLIUUQTTQFBLFSEFDLDPNHBVEJZDPNQBOZEFDL Design System
全社的なAI活用の推進 • 週次の全社MTGで職種を横断した活用事例の共有 • 40,000円/月 まで経費で任意のAIツールを利用可能 (2025年9月時 点) • Claude
Teamプラン Premiumシート • 先日TeamプランでもClaude Codeが利用可能に🔥 • プロダクト開発に携わるエンジニアのほとんどが利用
話すこと
話すこと🙆 • AIエージェントを活用したa11y試験の自動化手法 • Custom MCPサーバー開発 話さないこと🙅 • アクセシビリティの基礎知識や詳細な実装方法 •
個別のWCAGガイドライン解説
経緯: a11y対応が早急に必要に⚠ ※一部のコミュニティ・機能
早く・正確に・楽したい!🤫
アプローチ • AI以外の主要なツール • eslint-plugin-jsx-a11y • Storybook Test runner +
axe-playwright • @storybook/addon-a11y • axe DevTools • 自動化 with AI エージェント • a11y試験 • レポート作成
AI以外のアプローチ
eslint-plugin-jsx-a11y • JSXのa11y問題を静的に特定 • polymorphicPropName settings • <Typography as=‘h1’> ->
<h1> • components settings • <Image> -> <img>
eslint-plugin-jsx-a11y • label-has-associated-control rule • controlComponents option • コントロールコンポーネントとして認識 •
label を必須に
Storybook Test runner + axe-playwright • Storybook Test runner •
.stories.tsx ファイルをテストファイルとみなす • Story のレンダリングと Play function を実行しチェック • axe-playwright • Playwright + axe-core を組み合わせたa11yテストライブラリ • WebアプリのWCAGコンプライアンスをチェック
Storybook Test runner + axe-playwright
Storybook Coverage • .stories.tsx ファイルを起点とした、Component の coverage を収集・CIでチェック • 新規に
Component を追加した際は必ず Storybook 上で確認で きることを担保 • 必ずしも Component と Story が1対1で存在する必要はなく、先 祖の Component の Story から確認可能であればパス
Storybook Coverage • .stories.tsx ファイルを起点とした、Component の coverage を収集・CIでチェック • 新規に
Component を追加した際は必ず Storybook 上で確認で きることを担保 • 必ずしも Component と Story が1対1で存在する必要はなく、先 祖の Component の Story から確認可能であればパス a11yチェックで広範囲をカバー 詳細: https://zenn.dev/gaudiy_blog/articles/97e924e39d02ae#storybook-coverage
axe DevTools • Chrome拡張機能版のアクセシビリティ検証ツール • 手動でのa11yチェックを効率化 • DOM変更後の状態でスキャン可能 • インタラクティブな要素の状態確認
axe DevTools
AIを利用したアプローチ
最初の試み:Claude Desktop • Playwright MCP • 単体でa11yチェックする機能はない • axe-core等のスクリプトをPlaywright経由で注入する必要… •
a11yチェック MCP • WCAGベースでチェックできるものは野良のツールのみ • 一応はチェック可能だが複数の課題あり (後述
Claude Desktop + a11yチェック MCP
Claude Desktop + a11yチェック MCP いい感じに見えるが…
Claude Desktop + 野良MCPの課題😇 • コンテキスト制限: 上限に達すると会話の継続不可 • インタラクション未対応・特定のDOMの状態でのテスト不可 •
ログイン未対応 • ビューポート指定不可・PCのみ
課題全てをクリアしたい!
Claude Code Custom MCP Server
構成 • Claude Code: a11yテストの実行と結果の分析 • Custom MCP🛠 • Playwright:
マルチブラウザ対応, PC/モバイル ビューポート • axe-core: WCAG基準自動検証 • カスタム評価モジュール • Playwright MCP: a11y問題点の分析
Features • a11yチェック対象管理ファイル • 最適化されたパフォーマンス • 統一されたレポートフォーマット • 動的UI・認証対応 •
評価モジュール実装
a11yチェック対象管理ファイル AIにJSONで管理させ、プロンプトではページ名だけ伝える
最適化されたパフォーマンス • コンテキスト節約 • axe-coreの生データを返すと肥大化 • 冗長なHTML・セレクタ等を削除 • 並列化 •
デスクトップ/モバイル 並列実行
統一されたレポートフォーマット
評価モジュール実装 • 各WCAG項目に特化した評価ロジックを実装 • axe-core だけでの評価には課題 • 誤検出 (False Positive)
の多さ • e.g. 「色だけで情報を伝えてはいけない」-> axe-coreは色の使用自体を違反 と判定しがち • 文脈を考慮しない • N/A判定 • 実際のユーザー操作をシミュレートした上で判定 • e.g. キーボード操作などによるフォーカストラップのテスト
評価モジュール実装 - 例 • 2.2.1 タイミング調整可能 • 課題: 時間制限機能の存在自体を検出できない •
解決: セッションタイムアウト、カウントダウン、自動リダイレクトを動的に検出 • 効果: 時間制限がないページを自動的にN/A判定 • 3.3.3 エラー修正の提案 • 課題: エラーメッセージの質を判定できない • 解決: わざと誤入力→エラー内容を分析→修正提案の有無を判定 • 効果: 「メールアドレスが不正です」vs「@を含む形式で入力」を区別 • 4.1.3 ステータスメッセージ • 課題: 動的な状態変化の通知を検証できない • 解決: ライブリージョンを監視→アクション実行→通知発生を確認 • 効果: 「カートに追加しました」等の通知を自動検証
評価モジュール実装サイクル a11yテスト実施 AIに誤検知の原因を解析させる エラー誤検知 AIに実装を改善させる 精度向上
axe-coreのみでは検知できない問題を 高精度で特定👏
小ネタ TodoWriteでpromptを強制再確認させる
まとめ
まとめ • 一般最適化されたa11yチェックツールではWCAGの項目全てを正 しく確認するのは難しい • 日本語やテスト対象のアプリケーションのコンテキストに寄り添った チェックロジックをAIに実装させる • 全てをAIに委ねることは難しいので人の目による確認も怠らない •
最後は気合い💪
宣伝
余熱NIGHT from FEC北海道&東京2025 • 日時: 2025年9月30日(火) 19:00〜 • 会場: Datadog
Japan Tokyo オフィス • 参加費: 無料 • LT登壇者を募集中!! • 感想・現地レポ • 深掘り or 横展開 #FEC余熱NIGHT
余熱NIGHT from FEC北海道&東京2025 スポンサーLT by Han 小規模&短期間でユーザーに OMO体験 を届けるためのAI駆動開発 #FEC余熱NIGHT
We are hiring!🔥