landmark-one-main

ページにはmainランドマークを置くことが推奨されます

manual確度:medium重大度:minoroperable

ページにmainランドマーク(role="main"または<main>)が1つ以上あることを確認します。

適用範囲:<body>要素を持つすべてのHTML文書に常に適用されます。「ページにmainランドマークがあるか」はページ全体に関わる問題なので、bypass-blocks-presentと同じく文書を直接評価します。モーダルダイアログが開いている間は適用されません。そのときページの残りの部分はinertになるため、スキャンが見るのはページではなくダイアログです。ElementInternalsによってランドマークロールを与えられたカスタム要素(this.attachInternals().role)は、別のロールを示すrole属性がなければ、そのロールを持つネイティブ要素と同じくランドマークです。

期待される結果:支援技術に公開されたmainランドマーク(role="main"または<main>)が、ページに1つ以上あります。1つもないページでは、支援技術のユーザーが主要なコンテンツへ直接移動するためのランドマークがありません。

例

pass
<body>
<main>Primary content</main>
</body>

<main>ランドマークが存在します。

can't tell
<body>
<header>Site</header>
<p>Primary content, no landmark.</p>
</body>

ページのどこにも<main>もrole="main"もありません。

確認方法

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

LANDMARK_MAIN_MISSING

  1. スクリーンリーダーのランドマーク一覧またはアクセシビリティペインを開き、mainランドマークを探してください。
  2. ページの主要コンテンツを見つけ、そのコンテナーにmain要素またはrole="main"があるか調べてください。
  3. コンテンツがiframeの中にある場合は、代わりにフレーム内の文書にmainがあるか確認してください。

満たす場合:mainランドマークが存在し、ページの主要コンテンツを囲んでいます。

満たさない場合:mainランドマークが公開されていないため、利用者は主要コンテンツへ直接移動できません。これはWAI-ARIAのmainロールに関するベストプラクティスを満たしていません(ARIA11)。

ソースコードを見る