アクセシビリティについての取り組み
WCAG 2.2 AAA に向けてアクセシビリティとは
アクセシビリティとは、年齢や障害の有無、利用環境の違いに関わらず、誰もが情報やサービスを支障なく利用できることです。たとえば「画面が見えなくても読み上げで内容がわかる」「マウスが使えなくてもキーボードだけで操作できる」「明るい屋外でも文字がはっきり読める」── こうした配慮は障害のある方だけでなく、高齢の方や一時的にケガをしている方を含む、すべての利用者の使いやすさにつながります。
方針
relay Design System は WCAG 2.2 Level AA を目指す設計です。下の表で、各達成基準を「デザインシステムが担保する項目」と「プロダクト側で実装が必要な項目」に切り分けて把握できます。
- 本デザインシステムは WAIC「ウェブアクセシビリティ方針 策定ガイドライン」 に沿って対応を進めます。
-
達成目標レベルは以下の通りです。
- 本体サイト — レベル AA に準拠を目指します。
- 自治体様の特設ページ — レベル AAA の一部達成を目指します(1.4.6 高度なコントラスト、2.3.2 3 回の閃光、など)。
試験について
試験は WAIC「JIS X 8341-3:2016 試験実施ガイドライン」 に従って行います。下表は各達成基準への対応内容と、デザインシステム側での担保状況を示します。
デザインシステム(DS)担保 列: ✓ = コンポーネント / トークンで担保 ・ △ = デザインシステムが下地を提供(プロダクトが正しく使う)・ — = プロダクト側 / コンテンツ次第。
Perceivable (知覚可能)
1.x — 全 29 基準
達成基準
レベル
DS 担保
具体的な対応内容
1.1.1 非テキストコンテンツ
A
—
画像に
alt、装飾は alt=""、アイコンボタンに aria-label、グラフ・図に内容説明
1.2.1 音声のみ・映像のみ(収録済)
A
—
音声のみに書き起こし、映像のみに音声解説またはテキスト説明
1.2.2 キャプション(収録済)
A
—
収録済み動画に同期字幕(セリフ+話者+効果音)
1.2.3 音声解説/メディア代替(収録済)
A
—
動画の視覚情報を音声解説、または全文テキスト代替を提供
1.2.4 キャプション(ライブ)
AA
—
ライブ配信にリアルタイム字幕
1.2.5 音声解説(収録済)
AA
—
収録済み動画に音声解説トラックを追加
1.2.6 手話(収録済)
AAA
—
収録済み動画に手話通訳(ワイプ等)を提供
1.2.7 拡張音声解説(収録済)
AAA
—
通常の音声解説で不足する場合、再生を止めて拡張音声解説
1.2.8 メディアに対する代替(収録済)
AAA
—
視覚情報も含む全文書き起こしを用意
1.2.9 音声のみ(ライブ)
AAA
—
ライブ音声に同時文字起こし(キャプション)
1.3.1 情報及び関係性
A
△
見出し・リスト・表を適切な HTML セマンティクスで表現
1.3.2 意味のある順序
A
△
DOM 順序=読み上げ順序を保つ
1.3.3 感覚的特徴
A
—
形・位置・色・音だけに依存しない説明
1.3.4 表示の向き
AA
—
縦横どちらの向きでも利用可能(固定しない)
1.3.5 入力目的の特定
AA
△
入力欄に
autocomplete 属性
1.3.6 目的の特定
AAA
△
UI 部品の目的を ARIA ランドマーク /
role で判別可能に
1.4.1 色の使用
A
△
エラー・リンク・必須を色だけで示さない
1.4.2 音声の制御
A
—
3 秒超の自動再生音声に停止・音量手段
1.4.3 最低限のコントラスト
AA
✓
通常テキスト 4.5:1、大きい文字(24px / 太字 18.66px)3:1
1.4.4 テキストのサイズ変更
AA
△
ブラウザ 200% 拡大で情報・機能が失われない(
rem 等を使用)
1.4.5 文字画像
AA
✓
文字は画像でなくテキストで表現(ロゴ等の例外を除く)
1.4.6 高度なコントラスト
AAA
✓
通常テキスト 7:1(
text-fg-high / text-fg-middle)、大きい文字 4.5:1
1.4.7 小さな背景音
AAA
—
収録済み音声の背景音は前景より 20dB 以上小さく、または無し
1.4.8 視覚的提示
AAA
△
段落幅・行間 1.5・両端揃え無し・配色変更・200% 対応
1.4.9 文字画像(例外なし)
AAA
—
ロゴ以外はテキストを画像化しない(例外なし)
1.4.10 リフロー
AA
△
幅 320px 相当(400% 拡大)で二次元スクロールなし
1.4.11 非テキストのコントラスト
AA
△
UI 部品・図形を背景と 3:1 以上
1.4.12 テキストの間隔
AA
△
行間 1.5 倍・段落間 2 倍・文字間 0.12em・単語間 0.16em に調整しても破綻しない
1.4.13 ホバー/フォーカスで表示
AA
—
ツールチップ等は消去可能・ホバー維持可能・離脱まで表示継続
Operable (操作可能)
2.x — 全 34 基準(2.2 で 5 基準追加)
達成基準
レベル
DS 担保
具体的な対応内容
2.1.1 キーボード
A
✓
全機能をキーボードのみで操作可能
2.1.2 キーボードトラップなし
A
✓
フォーカスが特定要素から抜け出せる(モーダルは Esc 等)
2.1.3 キーボード(例外なし)
AAA
✓
タイミング依存もなくキーボードで全操作
2.1.4 文字キーショートカット
A
—
単一文字ショートカットは無効化 / 修飾キー併用 / フォーカス時のみ
2.2.1 タイミング調整可能
A
—
制限時間をオフ / 10 倍延長 / 事前警告で延長可
2.2.2 一時停止・停止・非表示
A
—
自動の動き・点滅・自動更新を止める手段
2.2.3 タイミング非依存
AAA
—
利用にタイミングを要求しない
2.2.4 割り込み
AAA
—
通知・割り込みを延期 / 抑止できる
2.2.5 再認証
AAA
—
セッション切れ後の再認証でデータを失わない
2.2.6 タイムアウト
AAA
—
データ損失を伴うタイムアウトの 20 秒以上前に警告
2.3.1 3 回の閃光、又は閾値以下
A
✓
1 秒に 3 回以上の閃光を含めない
2.3.2 3 回の閃光
AAA
✓
どのコンテンツにも閃光を含めない
2.3.3 インタラクションによるアニメーション
AAA
△
prefers-reduced-motion でモーションを無効化
2.4.1 ブロックスキップ
A
—
「本文へスキップ」リンクを冒頭に配置
2.4.2 ページタイトル
A
—
各ページに固有で説明的な
<title>
2.4.3 フォーカス順序
A
△
Tab 順序が意味と操作可能性を保つ(
tabindex 正値を避ける)
2.4.4 リンクの目的(コンテキスト内)
A
△
リンク文言+周辺文脈で目的が分かる
2.4.5 複数の手段
AA
—
ナビ / 検索 / サイトマップ等 2 つ以上の導線
2.4.6 見出し及びラベル
AA
△
セクション見出し・フォームラベルを明確に
2.4.7 フォーカスの可視化
AA
✓
フォーカス時に視覚的な focus ring(
--shadow-focus-ring)
2.4.8 現在位置
AAA
—
パンくず・
aria-current="page" で現在位置を提示
2.4.9 リンクの目的(リンクのみ)
AAA
△
リンク文言単独で目的が分かる(「こちら」を避ける)
2.4.10 セクション見出し
AAA
△
各セクションに見出しを付与
2.4.11 フォーカスの非遮蔽(最低限)
AA
—
フォーカス中の要素が固定ヘッダー等に完全には隠れない
2.4.12 フォーカスの非遮蔽(高度)
AAA
—
フォーカス中の要素が全く隠れない
2.4.13 フォーカスの外観
AAA
△
フォーカスリングが十分な面積+3:1 のコントラスト(
--shadow-focus-ring)
2.5.1 ポインタジェスチャ
A
—
マルチポイント / 軌跡ジェスチャに単一ポインタ代替
2.5.2 ポインタのキャンセル
A
✓
click(mouseup) で発火し誤操作をキャンセル可能
2.5.3 名前のラベル
A
△
視覚ラベルの文言をアクセシブル名に含める
2.5.4 動きによる起動
A
—
デバイスの動き起動に UI 代替+無効化
2.5.5 ターゲットのサイズ(高度)
AAA
△
ポインタ対象 44×44px 以上(
lg サイズを使う)
2.5.6 入力メカニズムの共存
AAA
✓
キーボード / マウス / タッチを併用可能
2.5.7 ドラッグ動作
AA
—
ドラッグ操作に単一ポインタ(タップ等)の代替を用意
2.5.8 ターゲットのサイズ(最低限)
AA
△
ポインタ対象 24×24px 以上(ボタン / 入力系は最小 sm でも 32px。checkbox / radio / switch の sm はラベル併用か間隔で確保)
Understandable (理解可能)
3.x — 全 21 基準(2.2 で 4 基準追加)
達成基準
レベル
DS 担保
具体的な対応内容
3.1.1 ページの言語
A
—
<html lang="ja"> を設定
3.1.2 一部分の言語
AA
—
異なる言語部分に
lang 属性
3.1.3 一般的でない用語
AAA
—
専門用語に
<abbr> / <dfn> や用語集
3.1.4 略語
AAA
—
略語に
<abbr title> や略語集
3.1.5 読解レベル
AAA
—
難解な文章に要約・図解を併記
3.1.6 発音
AAA
—
多義語・固有名詞に
<ruby> / 発音表記
3.2.1 フォーカス時
A
✓
フォーカスしただけで文脈を変えない
3.2.2 入力時
A
✓
入力・選択で勝手に送信 / 遷移しない
3.2.3 一貫したナビゲーション
AA
—
繰り返すナビを同じ相対順序で配置
3.2.4 一貫した識別性
AA
△
同機能を同じラベル・アイコンで識別
3.2.5 要求による変化
AAA
△
文脈変化はユーザーの明示操作でのみ
3.2.6 一貫したヘルプ
A
—
ヘルプ(問い合わせ・チャット等)を各ページで同じ相対順序に配置
3.3.1 エラーの特定
A
△
エラー項目をテキストで特定(
aria-invalid / aria-describedby)
3.3.2 ラベル又は説明文
A
△
入力欄にラベル・説明(placeholder のみは不可)
3.3.3 エラー修正の提案
AA
△
具体的な修正候補を提示
3.3.4 エラー回避(法的・金融・データ)
AA
—
重要操作に確認 / 取消 / 送信前検証
3.3.5 ヘルプ
AAA
△
文脈に応じたヘルプを提供
3.3.6 誤り防止(すべて)
AAA
—
すべての送信に確認 / 取消 / 検証
3.3.7 冗長な入力
A
—
同一プロセスで既出情報の再入力を求めない(自動入力・選択可)
3.3.8 アクセシブルな認証(最低限)
AA
—
認知機能テスト(パズル等)に頼らない認証(コピペ・パスキー許可)
3.3.9 アクセシブルな認証(高度)
AAA
—
認知機能テストを一切課さない認証
Robust (堅牢)
4.x — 全 2 基準(4.1.1 は 2.2 で廃止)
達成基準
レベル
DS 担保
具体的な対応内容
4.1.2 名前・役割・値
A
✓
UI 部品の名前・役割・状態をプログラム的に提供(ネイティブ要素+ARIA)
4.1.3 ステータスメッセージ
AA
△
動的メッセージを
role="status" / aria-live で通知