landmark-no-duplicate-main
ページにmainランドマークを複数置いてはいけません
ページ内の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と、出力スキーマで安定と明記された一部のフィールドを除き、安定した契約ではありません。マイナーリリースで名前が変わったり、なくなったりすることがあるため、これらに依存した実装はしないでください。
例
<body><main>Only one</main></body>
mainランドマークは1つだけです。
<body><main>First</main><main>Second</main></body>
2つの<main>要素が、どちらもmainランドマークとして支援技術に公開されています。
確認方法
このルールが判断できない場合はcantTellを報告し、判断を人に委ねます。ルールが投げかける各質問を、理由コードごとに、答えるための手順とともにここに示します。検出結果にも同じ手順がhowToCheckとして、スキャンの言語で含まれます。出力スキーマを参照してください。
LANDMARK_DUPLICATE_MAIN
- スクリーンリーダーのランドマーク一覧またはアクセシビリティペインを開き、mainランドマークの数を数えてください。
- レポートに示されたそれぞれについて、どれがページの主要コンテンツを含んでいるかを判断してください。
- ほかのmainが、現在のビューでないときに(hidden属性で)隠されていることを確認してください。
満たす場合:支援技術が検出するmainランドマークは、ページの主要コンテンツを囲む1つだけです。
満たさない場合:複数のmainが公開されているため、利用者はどれが主要コンテンツかを判別できません。これはWAI-ARIAのmainロールと、表示されるmainは1つというHTMLの規則に関するベストプラクティスを満たしていません。