ランドマーク領域
はじめに
ARIAランドマークロールは、ウェブページの構成と構造を識別する強力な方法を提供します。 ページのセクションを分類し、ラベルを付けることで、レイアウトを通じて視覚的に伝えられる構造情報をプログラムで表現できるようにします。 スクリーンリーダーは、ページの重要なセクションへのキーボードナビゲーションを提供するために、ランドマークロールを活用します。 ランドマーク領域は、"スキップリンク"のターゲットとして、また、キーボードナビゲーションの強化にブラウザ拡張機能で使用することもできます。
このセクションでは、支援技術の利用者がページのレイアウトの意味を容易に理解するために、どのようにHTMLセクショニング要素とARIAランドマークロールを使用するかを説明します。
HTMLセクショニング要素
いくつかのHTMLセクショニング要素は、自動的にARIAランドマーク領域を作成します。 よって、支援技術の利用者にページの論理的なビューを提供するためには、HTMLセクショニング要素を使用する際の効果を理解することが重要です。 [[HTML-ARIA]]には、HTML要素のロールマッピングに関する詳細な情報が含まれています。
HTML要素 | デフォルトランドマークロール |
---|---|
aside |
complementary |
footer |
contentinfo (body 要素のコンテキスト内の場合) |
header |
banner (body 要素のコンテキスト内の場合) |
main |
main |
nav |
navigation |
section |
region (aria-labelledby またはaria-label を使用してアクセシブルな名前がある場合) |
ランドマークデザインの一般的な原則
ページ上のすべての知覚可能なコンテンツをランドマーク領域のいずれかに含め、各ランドマーク領域にセマンティックに意味のある役割を与えることは、支援技術の利用者が自分たちのニーズに関連する情報を見逃さないようにする最も効果的な方法の一つです。
ステップ1: 論理構造を特定する
- ページを知覚可能なコンテンツの領域に分割します。通常、デザイナーは整列と間隔を使用して視覚的にその領域を示します。
- 必要に応じて、領域は論理的なサブ領域にさらに定義できます。
- サブ領域の例として、ポータルアプリケーションのポートレットがあります。
ステップ2: 各領域にランドマークロールを割り当てる
- 領域内のコンテンツの種類に基づいてランドマークロールを割り当てます。
banner
、main
、complementary
、contentinfo
ランドマークは、トップレベルのランドマークであるべきです。- ランドマークロールは、提示される情報の親子関係を識別するためにネストできます。
ステップ3: 領域にラベルを付ける
-
特定のランドマークロールがページ上で複数回使用される場合、そのランドマークの各インスタンスに一意なラベルを提供します。
複数のインスタンスに同じラベルを提供することが有益な稀な状況が一つあります: 各インスタンスのコンテンツと目的が同一である場合。
例: 大きな検索結果テーブルが、テーブルの上下に同一のページネーションコントロールを2セット持っているため、各セットは
検索結果
というラベルのナビゲーション領域にあります。 この場合、2つのインスタンスを区別するためにラベルに追加情報を追加することは、役立つよりもかえって混乱を招く可能性があります。 - ランドマークがページ上で一度しか使用されない場合、ラベルを必要としない場合があります。 以下のランドマークロールのセクションを参照してください。
- 領域が見出し要素(例:
h1-h6
)で始まる場合、aria-labelledby
属性を使用して領域のラベルとして使用できます。 - 領域がラベルを必要とし、かつ見出し要素を持たない場合、
aria-label
属性を使用してラベルを提供します。 - ラベルの一部としてランドマークロールを使用しないでください。 例えば、ラベルが「サイトナビゲーション」のナビゲーションランドマークは、スクリーンリーダーによって「サイトナビゲーションナビゲーション」として発表されます。 ラベルは単に「サイト」であるべきです。
ランドマークロール
Complementary
complementary
ランドマークは、ドキュメントの補助的なセクションで、DOM階層の同じようなレベルのメインコンテンツに補完的であるように設計されていながらも、主要なコンテンツから分離しても意味を持ち続けるようなセクションです。
complementary
ランドマークは、最上位のランドマークであるべきです(例:他のランドマークの中に含まれない)。- 補完的なコンテンツが主要なコンテンツと関連していない場合、より一般的なロールが割り当てられるべきです(例:
region
)。 - ページに複数の
complementary
ランドマークが含まれている場合、それぞれに一意のラベルを持たせるべきです(上記のステップ3を参照)。
HTMLテクニック
complementary
ランドマークを明示するには、HTMLのaside
要素を使用します。
ARIAテクニック
HTMLのaside
要素のテクニックが使用されていない場合、role="complementary"
属性を使用してcomplementary
ランドマークを明示します。
例
Contentinfo
contentinfo
ランドマークは、ウェブサイトの各ページの下部にある共通の情報を特定する方法で、通常はページの「フッター」と呼ばれ、著作権、プライバシー、アクセシビリティに関する声明へのリンクなどの情報を含みます。
- 各ページは、一つの
contentinfo
ランドマークを持ってもよいです。 contentinfo
ランドマークは、最上位のランドマークであるべきです。- ページにネストされた
document
および/またはapplication
ロールが含まれている場合(例:通常、iframe
およびframe
要素の使用を通じて)、各document
またはapplication
ロールは、一つのcontentinfo
ランドマークを持ってもよいです。 - ページに複数の
contentinfo
ランドマークが含まれている場合、それぞれに一意のラベルがあるべきです(上記のステップ3を参照)。
HTMLテクニック
- HTMLの
footer
要素は、そのコンテキストがbody
要素の場合、contentinfo
ランドマークを規定します。 -
以下の要素のいずれかの子孫である場合、HTMLの
footer
要素はcontentinfo
ランドマークとは見なされません(HTML Accessibility Mappings参照):article
aside
main
nav
section
ARIAテクニック
HTMLのfooter
要素のテクニックが使用されていない場合、contentinfo
ランドマークを明示するためにrole="contentinfo"
属性を使用するべきです。
例
Form
form
ランドマークは、アイテムとオブジェクトの集合体を含む領域を特定します。このランドマークは、他の名前付きランドマーク(例:main、search)が適切でない場合、全体としてフォームを構成します。
- フォームが検索機能に使用される場合、
form
ランドマークの代わりにsearch
ランドマークを使用します。 form
ランドマークには、フォームの目的をユーザーに理解させるためのラベルがあるべきです。form
ランドマークのラベルは、すべてのユーザーに表示されるべきです(例:h1-h6
要素)。- ページに複数の
form
ランドマークが含まれている場合、それぞれに一意のラベルがあるべきです(上記のステップ3を参照)。 -
可能な限り、HTMLドキュメント内の
form
ランドマークに含まれるコントロールは、ネイティブホストのセマンティクスを使用するべきです:button
input
select
textarea
HTMLテクニック
HTMLのform
要素は、アクセシブルな名前がある場合(例:aria-labelledby
、aria-label
またはtitle
)、form
ランドマークを明示します。
ARIAテクニック
ページの領域を識別するためにrole="form"
を使用します。各フォームフィールドを識別するために使用しないでください。
例
Main
main
ランドマークは、ページの主要なコンテンツを表します。
- 各ページには一つの
main
ランドマークがあるべきです。 main
ランドマークは、最上位のランドマークであるべきです。- ページにネストされた
document
および/またはapplication
ロールが含まれている場合(例:通常、iframe
とframe
要素の使用を通じて)、各document
またはapplication
ロールは、一つのmain
ランドマークを持ってもよいです。 - ページに複数の
main
ランドマークが含まれている場合、それぞれに一意のラベルがあるべきです(上記のステップ3を参照)。
HTMLテクニック
HTMLのmain
要素を使用して、main
ランドマークを明示します。
ARIAテクニック
HTMLのmain
要素のテクニックが使用されていない場合、role="main"
属性を使用して、main
ランドマークを明示します。
例
Region
region
ランドマークは、ユーザーがセクションにナビゲートできるほど重要なコンテンツを含む、ページの知覚可能なセクションです。
region
ランドマークにはラベルがなければなりません。- ページに
region
ランドマークが複数含まれる場合、それぞれに一意のラベルがあるべきです(上記のステップ3参照)。 - 名前付きランドマークでは適切に言い表せないコンテンツを識別するために
region
ランドマークを使用できます。
HTMLテクニック
HTMLのsection
要素は、アクセシブルな名前(例:aria-labelledby
、aria-label
、title
)がある場合、region
ランドマークを明示します。
ARIAテクニック
HTMLのsection
要素テクニックが使用されていない場合、role="region"
属性を使用してregion
ランドマークを明示してください。
例
Search
search
ランドマークは、アイテムとオブジェクトの集合体で、全体として検索機能を構成するものです。
- フォームが検索機能に使用される場合、
form
ランドマークの代わりにsearch
ランドマークを使用してください。 - ページに複数の
search
ランドマークが含まれている場合、それぞれに一意のラベルを持たせるべきです(上記のステップ3を参照してください)。
HTMLテクニック
search
ランドマークを明示するHTML要素はありません。
ARIAテクニック
role="search"
属性はsearch
ランドマークを明示します。