identical-links-same-purpose

同じアクセシブルな名前のリンクは同じリンク先に移動することが推奨されます

manualWCAG 2.4.9 (AAA)確度:low重大度:minoroperable

同じアクセシブルな名前を共有しながら、複数の異なるリンク先に解決されるリンクのグループを、同じ目的を果たしているかどうかの手動レビューの対象として報告します。

適用範囲:空でない同じアクセシブルな名前(前後の空白の除去、空白の圧縮、大文字と小文字の統一を行ったもの)を共有する、2つ以上のa[href]要素、またはrole属性がlinkに解決される要素(実在するロールの最初のトークンで、大文字と小文字は区別しません)の組に適用されます(ACT b20e66と同じ)。名前をほかのどのリンクとも共有しないリンクには、比較する対象がありません。ElementInternalsによってlinkロールを与えられたカスタム要素(this.attachInternals().role)も、別のロールを示すrole属性がなければ、そのロールを持つネイティブ要素と同じように扱われます。

期待される結果:1つのページ内で、同じアクセシブルな名前を共有するリンクは同じ目的を果たすことが想定されます(つまり同じリンク先に解決される。フラグメントも含めた、解決後の完全なURLで比較します)。テキストが同じでリンク先が異なるリンクは実際のサイトではよくあり、意図的な場合も多いため(例:記事カードごとに繰り返される「Read more」リンク)、このルールは明確な失敗ではなくtype: 'manual'(上限はcantTellで、failにはならない)として作られています。意図を推測する代わりに、名前とリンク先の実際の不一致を人の判断に委ねるためです。

検出結果が報告する内容:

  • name:リンクが共有しているアクセシブルな名前で、前後の空白を除き、空白をまとめ、小文字にしたものです。
  • href:このリンクの移動先の完全なURLです。
  • distinctDestinationCount:この名前を持つリンクの移動先となる、異なるURLの数で、2以上です。

これらのdata.detailsのフィールドは、検出結果を読み解き、再現するのに役立ちます。reasonCodeと、出力スキーマで安定と明記された一部のフィールドを除き、安定した契約ではありません。マイナーリリースで名前が変わったり、なくなったりすることがあるため、これらに依存した実装はしないでください。

例

pass
<a href="/contact">Contact us</a>
<a href="/contact">Contact us</a>

「Contact us」という名前の2つのリンクは、どちらも同じページに移動します。

can't tell
<a href="/articles/1">Read more</a>
<a href="/articles/2">Read more</a>

2つのリンクがアクセシブルな名前「Read more」を共有していますが、異なるリンク先に解決されます。

n/a
<a href="/articles/1">Read more: Quarterly results</a>
<a href="/articles/2">Read more: Product launch</a>

各リンクのアクセシブルな名前が異なるため、リンク先を比較すべき同名のグループがありません。

確認方法

このルールが判断できない場合はcantTellを報告し、判断を人に委ねます。ルールが投げかける各質問を、理由コードごとに、答えるための手順とともにここに示します。検出結果にも同じ手順がhowToCheckとして、スキャンの言語で含まれます。出力スキーマを参照してください。

SAME_NAME_DIFFERENT_DESTINATION

  1. レポートに示された名前を持つすべてのリンクを見つけ(スクリーンリーダーのリンク一覧が役立ちます)、それぞれのリンク先を控えてください。
  2. 各リンクを開き、移動先のページを比べてください。
  3. それらのページが同じ目的を果たす(トラッキング用のパラメーターが付いた同じページ、または同等のページ)か、異なる目的を果たすかを判断してください。
  4. 種類の異なるページにつながる場合は、リンクの完全なテキストを表示する設定など、リンク名をより具体的にする方法がページにあるか確認してください。キーボードでオンにでき、オンにするとすべてのリンク名が行き先を示す場合にだけ、それを認めます。

満たす場合:この名前のリンクはすべて同じページまたは同じ目的のページにつながるか、キーボードでオンにできる設定で各リンク名が行き先を示すようになります。

満たさない場合:「続きを読む」など同じ名前のリンクが目的の異なるページにつながり、名前で区別できるようにする手段がページにないため、WCAG 2.4.9を満たしません(ACT b20e66)。

ソースコードを見る