link-name-present
リンクにアクセシブルな名前があります
リンクが空でないアクセシブルな名前を公開していることを確認します。
適用範囲:アクセシビリティツリーに含まれる<a href>、<area href>、およびrole属性がlinkに解決される要素(既知のロールを指す最初のトークンを大文字と小文字を区別せずに照合)に適用されます。hrefのない<a>はリンクではないため、対象になりません。明示的なロールが、link以外の既知のロール、linkを継承するDPUBロール、none、presentationのいずれかである<a href>/<area href>もリンクではないため、対象になりません(ACT c487ae、Inapplicable Example 1)。ElementInternalsによってlinkロールを与えられたカスタム要素(this.attachInternals().role)も、別のロールを示すrole属性がなければ、そのロールを持つネイティブ要素と同じように扱われます。
期待される結果:要素が空でないアクセシブルな名前を持っています。まずプログラムによる名前(aria-labelledby、aria-label、関連付けられた<label>、title)を採用し、それがなければ要素自身のサブツリーのテキストにフォールバックします。その際、各子孫要素自身の名前(<img alt>、aria-label、title)も数に入れます。よくある<a><img alt="..."></a>形式のロゴリンクは、この仕組みで名前を得ます。名前をコンテンツから算出しない既知のロールが明示されている場合(roleのフォールバックのリストのうち、最初の既知のトークン)、コンテンツへのフォールバックは行いません。既知のトークンを持たないrole属性は、暗黙のロールにフォールバックします。
検出結果が報告する内容:
refs.accessibleName:プログラムによる名前を探した結果で、present、value、mechanism(名前の元になる属性や要素。ない場合はnone)、flags(ソースから名前が得られなかった理由についての注記)です。探索しなかった場合はnullです。
これらのdata.detailsのフィールドは、検出結果を読み解き、再現するのに役立ちます。reasonCodeと、出力スキーマで安定と明記された一部のフィールドを除き、安定した契約ではありません。マイナーリリースで名前が変わったり、なくなったりすることがあるため、これらに依存した実装はしないでください。
例
<a href="/x">Read more</a>
リンクのテキスト内容がアクセシブルな名前になっています。
<a href="/x"></a>
テキスト内容もaria-labelもaria-labelledbyもありません。
確認方法
このルールが判断できない場合はcantTellを報告し、判断を人に委ねます。ルールが投げかける各質問を、理由コードごとに、答えるための手順とともにここに示します。検出結果にも同じ手順がhowToCheckとして、スキャンの言語で含まれます。出力スキーマを参照してください。
name_closedContent
- レポートに示されたリンクを見つけ、画面に表示されているテキストまたはアイコンを控えてください。
- ブラウザーの開発者ツールでアクセシビリティペインを開き、スクリプトからは読めない内容からブラウザーが求めた、要素のアクセシブルな名前を読んでください。
- スクリーンリーダーで要素に移動し、読み上げられる名前を聞いてください。
満たす場合:アクセシビリティツリーに、内容から得たリンクの名前が表示され、スクリーンリーダーがそれを読み上げます。
満たさない場合:内容から名前が得られず、リンクにはアクセシビリティツリー上の名前がないため、WCAG 2.4.4と4.1.2を満たしません。
name_contentTooDeep
- レポートに示されたリンクを見つけ、画面に表示されているテキストを控えてください。
- ブラウザーの開発者ツールでアクセシビリティペインを開き、入れ子になった内容全体からブラウザーが求めた、要素のアクセシブルな名前を読んでください。
- スクリーンリーダーで要素に移動し、読み上げられる名前を聞いてください。
満たす場合:アクセシビリティツリーに、入れ子の内容から得たリンクの名前が表示され、スクリーンリーダーがそれを読み上げます。
満たさない場合:内容から名前が得られず、リンクにはアクセシビリティツリー上の名前がないため、WCAG 2.4.4と4.1.2を満たしません。
name_internals
- レポートに示されたリンクを調べ、カスタム要素であることとそのロールを控えてください。
- ブラウザーの開発者ツールでアクセシビリティペインを開き、要素のアクセシブルな名前を読んでください。
- スクリーンリーダーで要素に移動し、読み上げられる名前を聞いてください。
満たす場合:アクセシビリティツリーにリンクの名前が表示され(internalsで設定されたものでも、それ以外でもかまいません)、スクリーンリーダーがそれを読み上げます。
満たさない場合:リンクにはアクセシビリティツリー上の名前がなく、スクリーンリーダーはロールしか読み上げないため、WCAG 2.4.4と4.1.2を満たしません。