<svg> imgロールを持つ要素には代替テキストが必要です
修正方法
以下の方法の1つまたは組み合わせを使用して、HTMLにマークアップとして追加されるすべてのSVG要素にアクセス可能な名前が付けられていることを確認します。
<title> 属性の使用
例:
<svg role="img" title="A brown circle">
<circle
cx="30"
cy="30"
r="10"
fill="brown"
></circle>
</svg>
SVG <title> 要素の使用
<title> 要素は、SVGのコンテナ要素やグラフィック要素のアクセス可能な短いテキストの説明を提供します。
例:
<svg role="img">
<title>A descriptive title for the SVG element</title>
<path d="...." />
</svg>
`aria-label` 属性の使用
例:
<svg xmlns="https://www.w3.org/2000/svg">
<circle role="img" cx="50" cy="50" r="40" stroke="black" fill="red" aria-label="A red circle with black border">
</circle>
</svg>
`aria-labelledby` 属性の使用
例:
<div id="first">First</div>
<div id="name">Name</div>
<svg role="img" aria-labelledby="first name">
<path d="...." />
</svg>
なぜ重要なのか
成功基準1.1.1 の目的は、代替テキストを使用することで、非テキストコンテンツ (SVG画像を含む) によって伝えられる情報をアクセス可能にすることです。代替テキストは、ユーザーのニーズに合わせてあらゆる感覚様式 (視覚、聴覚、触覚など) を通じてレンダリングできるため、情報をアクセス可能にする主な方法です。代替テキストを提供することで、さまざまなユーザーエージェントがさまざまな方法で情報をレンダリングできるようになります。たとえば、画像を見ることができない人のために、合成音声を使用して代替テキストを読み上げることができます。音声ファイルを聞くことができない人のために、代替テキストを表示して読むことができます。将来、テキストの代替案は情報を手話や同じ言語のより簡単な形にも容易に翻訳できるようになります。
ルールの説明
<img>
、graphics-document、またはgraphics-symbolロールを持つSVG要素に、アクセス可能な代替テキストがあることを確認します。
仕組みについて (簡単に言うと)
このルールのアルゴリズムは次を返します:
-
要素にコードの子要素がある場合は True
<title>
<svg id="target"><title>Time II: Party</title></svg>
-
子要素に別の要素にネストされたテキストがある場合は True
<title>
<svg id="target"><title><g>Time II: Party</g></title></svg>
-
要素に子要素がない場合は False
<title>
<svg id="target"></svg>
-
False 場合は子が空の場合はFalse。
<title>
<svg id="target"><title></title></svg>
-
False 場合は孫の場合はfalse。
<title>
<svg id="target"><circle><title>Time II: Party</title></circle></svg>
-
False 場合は子要素に空白のみが含まれる場合はfalse。
<title>
<svg id="target"><title> \t\r\n </title></svg>
-
False 場合はタイトルが複数あり、最初のタイトルが空の場合はFalse。
<svg id="target"><title></title><title>Time II: Party</title></svg>