landmark-no-duplicate-main

ページにmainランドマークを複数置いてはいけません

manual確度:medium重大度:minoroperable

ページ内のmainランドマーク(role="main"または<main>)が多くても1つであることを確認します。

適用範囲:ページにmainランドマーク(明示的なrole="main"、または暗黙の<main>)が1つ以上ある場合に適用されます。ElementInternalsによってランドマークロールを与えられたカスタム要素(this.attachInternals().role)は、別のロールを示すrole属性がなければ、そのロールを持つネイティブ要素と同じくランドマークです。

期待される結果:ページ内のmainランドマークは多くても1つです。landmark-one-mainとは別の、独立した判定です(そちらのルールはmainが0個の場合も検出し、このルールは2つ以上の場合だけを検出します)。

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

  • count:ページが支援技術に公開しているmainランドマークの数です。上限は1です。

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

例

pass
<body>
<main>Only one</main>
</body>

mainランドマークは1つだけです。

can't tell
<body>
<main>First</main>
<main>Second</main>
</body>

2つの<main>要素が、どちらもmainランドマークとして支援技術に公開されています。

確認方法

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

LANDMARK_DUPLICATE_MAIN

  1. スクリーンリーダーのランドマーク一覧またはアクセシビリティペインを開き、mainランドマークの数を数えてください。
  2. レポートに示されたそれぞれについて、どれがページの主要コンテンツを含んでいるかを判断してください。
  3. ほかのmainが、現在のビューでないときに(hidden属性で)隠されていることを確認してください。

満たす場合:支援技術が検出するmainランドマークは、ページの主要コンテンツを囲む1つだけです。

満たさない場合:複数のmainが公開されているため、利用者はどれが主要コンテンツかを判別できません。これはWAI-ARIAのmainロールと、表示されるmainは1つというHTMLの規則に関するベストプラクティスを満たしていません。

関連するルール

ソースコードを見る