コンテンツにスキップ

色以外の情報伝達手段の確保

このガイドラインが達成されないとどうなるか

Section titled “このガイドラインが達成されないとどうなるか”

結果的に、必要な情報を得られず、誤操作や混乱の原因になります。

具体例:フォーム入力での困りごと

Cさんは色覚特性があり、赤と緑の区別が困難です。 フォームの必須項目が赤色のアスタリスクのみで示されているため、どの項目が必須なのか分かりません。 送信後にエラーが出ても、エラー箇所が赤枠で示されているだけでは、どこを修正すべきか判断できませんでした。

以下のデモで色のみの情報伝達と、色以外の手段を併用した場合の違いを確認してください。

悪い例: 色のみで情報を伝えている

<form>
  <div class="form-group">
    <label>名前 <span class="required-bad">*</span></label>
    <input type="text" />
  </div>
  <div class="form-group error-bad">
    <label>メールアドレス <span class="required-bad">*</span></label>
    <input type="email" value="invalid" />
  </div>
  <div class="status-bad">
    <span class="success"></span> 完了
    <span class="error"></span> エラー
    <span class="pending"></span> 処理中
  </div>
</form>

良い例: 色以外の手段も併用している

<form>
  <div class="form-group">
    <label>名前 <span class="required-good">*(必須)</span></label>
    <input type="text" />
  </div>
  <div class="form-group error-good">
    <label>メールアドレス <span class="required-good">*(必須)</span></label>
    <input type="email" value="invalid" aria-invalid="true" aria-describedby="email-error" />
    <span id="email-error" class="error-message">⚠ 有効なメールアドレスを入力してください</span>
  </div>
  <div class="status-good">
    <span class="success">✓ 完了</span>
    <span class="error">✕ エラー</span>
    <span class="pending">◐ 処理中</span>
  </div>
</form>

最低限、すぐに取り組めること

Section titled “最低限、すぐに取り組めること”
  • 機能要件に「色のみに依存しない情報伝達」を明記する
  • ステータス表示やエラー表示の仕様に、色以外の表現方法を含める
  • 必須項目には「*(必須)」などのテキストを併記する
  • エラー状態にはアイコンとテキストを併用する
  • グラフやチャートには凡例やラベルを付ける
  • リンクには下線を付けるか、アイコンを併用する

ステータス表示の良い例

<div class="status-list">
  <div class="status success">
    <span class="icon"></span>
    <span class="label">完了</span>
  </div>
  <div class="status error">
    <span class="icon"></span>
    <span class="label">エラー</span>
  </div>
  <div class="status warning">
    <span class="icon">!</span>
    <span class="label">警告</span>
  </div>
  <div class="status info">
    <span class="icon">i</span>
    <span class="label">情報</span>
  </div>
</div>
  • フォームのバリデーションエラーにはテキストメッセージを表示する
  • aria-invalid属性とエラーメッセージを組み合わせる
  • リンクにはtext-decoration: underlineを維持する
  • グレースケール表示で情報が区別できるか確認する
  • 色覚シミュレーションツールで確認する
  • テキストやアイコンのみで情報が伝わるか確認する
  • 色覚特性のあるユーザーからのフィードバックを収集する
  • 問題が見つかった箇所を改善する

グラフやチャートで色のみで区別している

Section titled “グラフやチャートで色のみで区別している”
  • 直接ラベルを付ける
  • パターン(斜線、ドットなど)を併用する
  • 凡例に数値を含める
グラフの改善例
<!-- 悪い例:色のみで区別 -->
<div class="legend">
<span style="color: red"></span> カテゴリA
<span style="color: green"></span> カテゴリB
</div>
<!-- 良い例:パターンと数値を併用 -->
<div class="legend">
<span style="background: repeating-linear-gradient(45deg, red, red 2px, white 2px, white 4px)"></span> カテゴリA (45%)
<span style="background: repeating-linear-gradient(90deg, green, green 2px, white 2px, white 4px)"></span> カテゴリB (55%)
</div>

通常のテキストとリンクを色のみで区別していると、リンクを見逃す可能性があります。

<p class="bad-link">
  詳細は<a href="#">こちら</a>をご覧ください。
</p>
<p class="good-link">
  詳細は<a href="#">こちら</a>をご覧ください。
</p>
種類特徴注意が必要な色の組み合わせ
P型(1型)色覚赤が見えにくい赤と緑、赤と茶色
D型(2型)色覚緑が見えにくい赤と緑、緑と茶色
T型(3型)色覚青が見えにくい青と黄色
CSSでグレースケール表示にする方法
/* 開発時の確認用 */
body {
filter: grayscale(100%);
}
  • Chrome DevTools:RenderingからEmulate vision deficienciesを選択
  • Firefox:Accessibility InspectorからSimulateを選択
  • Figma:Visionプラグイン