--- title: 'ARIA: img ロール' slug: Web/Accessibility/ARIA/Roles/Role_Img tags: - ARIA - ARIA Role - Accessibility translation_of: Web/Accessibility/ARIA/Roles/Role_Img ---
ARIA の img
ロールは、単一の画像とみなすべきページコンテンツ内の複数の要素を識別するために使用できます。 これらの要素は、画像、コードスニペット、テキスト、絵文字、または視覚的に情報を伝達するために組み合わせることができる他のコンテンツであってもよい。
<div role="img" aria-label="全体的な画像の説明"> <img src="graphic1.png" alt=""> <img src="graphic2.png"> </div>
role="img"
を使用すると、単一の画像(画像、動画、音声、コードスニペット、絵文字、その他のコンテンツを含む)として消費されるべきコンテンツの集合を識別できます。
支援技術へのコンテキストを伝えるために個々の画像要素の代替テキストを数えるべきではありません。 ほとんどのスクリーンリーダーは、role="img"
を持つ要素をブラックボックスのように見て、内部の個々の要素にはアクセスしません。 したがって、周囲のテキストのいずれか、または aria-label
属性を使用して画像の包括的な全体説明的な代替テキストを提供します。 画像が欠ける場合は、検索エンジンまたはサイトユーザーのためのオプションの alt
属性を使用してページに書きます。
<div role="img" aria-label="全体的な画像の説明"> <img src="graphic1.png" alt=""> <img src="graphic2.png"> </div>
ページに表示される画像にキャプションまたはラベルを追加する場合は、次の方法を使用できます。
aria-labelledby
。aria-describedby
。例えば、
<div role="img" aria-labelledby="image-1"> ... <p id="image-1">画像のグループを説明するテキスト。</p> </div>
ページに埋め込み SVG 画像を使用している場合は、外側の <svg>
要素で role="img"
を設定し、ラベルを付けることをお勧めします。 これにより、スクリーンリーダーは全ての子ノードを読み出すのではなく、単一の実体とみなし、ラベルを使用して説明します。
<svg role="img" aria-label="SVG 画像の説明"> <!-- SVG 画像の内容 --> </svg>
場合によっては、支援技術ユーザーは、特定の方法で、特定のメディアを通して、または特定の方法で暗示された内容の意味を得ることができません。 これは画像の場合では直すのは明らかです(alt
属性を使うことができます)が、混在したコンテンツや他の特定の種類のコンテンツの場合はそれほど明白ではないので、role="img"
が有効になります。
例えば、テキストに絵文字を使用した場合、その意味は目の見えるユーザーにとっては明白かもしれませんが、スクリーンリーダーを使用している人は、絵文字はテキスト表現を全く持たないか、代替テキストが紛らわしく、使用されているコンテキストと一致しない可能性があります。 例えば、次のコードです。
<div role="img" aria-label="その猫はとても面白い"> <p> 🐈 😂 </p> </div>
🐈 😂 の絵文字の実体参照は「猫」と「涙が出るほど嬉しい顔」で読み上げられますが、これは必ずしも意味をなしません — 暗黙の意味はおそらく「その猫はとても面白い」で、それを aria-label
で role="img"
と一緒に指定します。
これはブラウザーやスクリーンリーダーの組み合わせによっては正常に動作するように見えますが、その中にはラベルを2度読んでしまうものもあります。 慎重に使用し、十分にテストしてください。
これが適している別の例は、伝説的な「ちゃぶ台返し」のような ASCII 絵文字の組み合わせを使用する場合です。
<div role="img" aria-label="ちゃぶ台返し"> <p> (╯°□°)╯︵ ┻━┻ </p> </div>
仕様 | 状態 |
---|---|
{{SpecName("ARIA","#img","img")}} | {{Spec2('ARIA')}} |
TBD