メインランドマークを別のランドマークに含めることはできません
修正方法
main ランドマークが他のランドマークに含まれていないことを確認します。
すべてのコンテンツが HTML5 ランドマーク要素および/または ARIA ランドマーク領域により指定されたランドマーク領域に含まれていることを確認します。
すべてのコンテンツが移動可能な領域に含まれるよう、HTML5 と ARIA ランドマークの両方を使うことがベストプラクティスです。HTML5 では、<header>
, <nav>
, <main>
, そして <footer>
のような要素を使用するべきです。これらに対応する ARIA は、記述順に role="banner"
, role="navigation"
, role="main"
, そして role="contentinfo"
です。HTML5 と ARIA マークアップの両方を使うことで、使われているスクリーン・リーダーの技術に関わらず、web ページはより堅牢で機能的になります。
追加されると、スクリーン・リーダーのユーザーは、ARIA ランドマークまたは HTML 要素に基づいてセクションに移動できます。スクリーン・リーダーのユーザーにのみ役に立つ代用ですが、 contentinfo
ランドマークはスキップリンクの単純な代替を提供します。目の見えるユーザー、またはスクリーンを拡大するユーザーはこの追加からはあまり利益を得られないため、contentinfo
ランドマークはスキップリンクを完全に置き換えることはできません。
例
最小限の重要なランドマークのみにした、単純化された web ページは次のようになるかもしれません:
<header role="banner">
<p>Put company logo, etc. here.</p>
</header>
<nav role="navigation">
<ul>
<li>Put navigation here</li>
</ul>
</nav>
<main role="main">
<p>Put main content here.</p>
</main>
<footer role="contentinfo">
<p>Put copyright, etc. here.</p>
</footer>
領域やロールに対するこのマークアップは冗長ですが、これは移行期間であり、そして上記のマークアップは最も堅牢です。
なぜ重要なのか
コンテンツがいくつかの高レベルなセクションにわけられていると、スクリーン・リーダーのユーザーにとって web ページを移動することがはるかに簡単になります。これらのセクション外のコンテンツは見つけるのが難しく、目的が明確でないかもしれません。
歴史的に、HTML からはヘッダー、ナビゲーション、メインコンテンツ、そしてフッターなどのページのセクションを指定する機能といった、いくつかの重要なセマンティックマーカーが不足していました。HTML5 要素および ARIA ランドマークの両方を同じ要素に使うことはベストプラクティスと考えられていますが、ブラウザーサポートが増えるにつれ、将来的には HTML 領域を優先するでしょう。
ルールの説明
main ランドマークが他のランドマークに含まれていないことを確認することがベストプラクティスです。すべてのコンテンツはヘッダー (role="banner"
)、コンテンツ (role="main"
)、そしてフッター (role="contentinfo"
) などの明確な領域に含まれているべきです。
仕組みについて (簡単に言うと)
ページのすべてのコンテンツがランドマーク領域に含まれていることを確認します。