Skip to content

画像やアイコンに適切な代替テキストを提供する

画像やアイコンを使うときは、スクリーンリーダー利用者のために適切な代替テキストを提供する必要があります。ただし、すべての画像に代替テキストが必要というわけではありません。このドキュメントでは、いつ・どのように代替テキストを付けるべきかを説明します。

代替テキストを提供すべきとき

画像やアイコンが情報を伝える、または機能を表す場合は、必ず意味のある代替テキストを付けましょう。画像やアイコンしかない場面では、代替テキストが視覚情報を補う唯一の手段になるため、テキストがないとユーザー体験が大きく損なわれます。

❌ 誤った例:意味のあるアイコンに代替テキストがない

次のように代替テキストを空にすると、スクリーンリーダー利用者はこのボタンが何の機能なのか分かりません。

html
<button>
  <img src="search-icon.svg" alt="" />
</button>

✅ 正しい例:意味のあるアイコンに代替テキストを付ける

html
<button>
  <img src="search-icon.svg" alt="検索" />
</button>

代替テキストを付けなくてよいとき

1. 装飾目的の画像

画像が単なる装飾で、視覚的効果だけを目的としているなら、空の代替テキスト(alt="")を使いましょう。

❌ 誤った例:装飾画像に不要な代替テキスト

スクリーンリーダーがこのテキストを読み上げ、不要な情報となってしまいます。

html
<img src="divider.png" alt="区切り線" />

✅ 正しい例:装飾画像には空のalt属性

html
<img src="divider.png" alt="" />

2. 画像の周辺に説明テキストがある場合

画像の近くに十分な説明があるなら、画像側は空の代替テキストを使いましょう。

❌ 誤った例:重複する代替テキスト

次のように周囲に説明があるのに、同じ内容を代替テキストとしても提供すると、スクリーンリーダーでは「新製品スマートフォン 新製品スマートフォン」のように重複して読み上げ、混乱の原因になります。

html
<figure>
  <img src="product.jpg" alt="신제품 스마트폰" />
  <figcaption>新製品スマートフォン</figcaption>
</figure>

✅ 正しい例:キャプションがある画像では省略

html
<figure>
  <img src="product.jpg" alt="" />
  <figcaption>新製品スマートフォン</figcaption>
</figure>

3. アイコンがテキストと一緒に使われる場合

アイコンがテキストと一緒にボタンやリンクで使われるときは、空の代替テキストを使いましょう。

❌ 誤った例:不要な重複情報

スクリーンリーダーで「削除 アイコン 削除」と重複して読まれてしまい、かえってわかりにくくなります。

html
<button>
  <img src="trash-icon.svg" alt="削除アイコン" />
  削除
</button>

✅ 正しい例:テキストがあるアイコンでは省略

html
<button>
  <img src="trash-icon.svg" alt="" />
  削除
</button>

効果的な代替テキストを書く

良い代替テキストは短く、明確で、画像の目的に合っている必要があります。以下の原則を参考に、状況に合わせて記述しましょう。

1. 明確かつ具体的に書く

代替テキストは、その画像が伝える意味を正確に説明するべきです。あいまいな言葉や抽象的な表現は、ユーザーが画像から得るべき情報を理解しづらくします。

区分説明
❌ 悪い例"アイコン"アイコンの用途や機能に関する情報がありません。
✅ 良い例"検索"アイコンが何を意味するかを明確に伝えます。
❌ 悪い例"グラフ"このグラフが何を示すのか分かりません。
✅ 良い例"2023年の売上グラフ"グラフがどのデータを示すかを具体的に説明します。

2. 不要な語を省く

代替テキストはスクリーンリーダーが読むためのものなので、「アイコン」「ボタン」のような語はたいてい冗長です。スクリーンリーダーは、画像を含む要素の役割(ボタンなど)を既に理解しているため、代替テキストでは情報だけを簡潔に伝えるのが望ましいです。

区分説明
✅ 良い例"検索"
❌ 悪い例"検索アイコン"スクリーンリーダーは「検索、ボタン」と読むため、「アイコン」は重複して不要です。
✅ 良い例"閉じる"
❌ 悪い例"閉じるボタン"ボタンという役割は既に明らかなので、テキストでは省略したほうがすっきりします。

3. 画像の目的と文脈を考慮する

同じ画像でも、使われる文脈によって適切な代替テキストは変わり得ます。次のコードで「矢印」という説明は、見た目を述べているだけで、ユーザーにどんな操作が可能かは伝えません。

「前のページへ移動」のような代替テキストは、機能を正確に説明し、ユーザーの期待と実際の動作を一致させます。

html
<!-- ❌ 誤った例:文脈を考慮しない代替テキスト -->
<img src="arrow.png" alt="矢印" />
<img src="arrow.png" alt="矢印" />

<!-- ✅ 正しい例:文脈に合った代替テキスト -->
<img src="arrow.png" alt="前のページへ移動" />
<img src="arrow.png" alt="次のページへ移動" />