要約
出版物のセクションを明確にすると、ユーザーがコンテンツを読み進めたり、内容を理解し易くなります。
テクニック
-
コンテンツの主要なセクションには
section
要素を使用します。[[WCAG-1.3.1]] -
各セクションに見出しを付けます。 [[WCAG-1.3.1]]
-
主要なランドマークに役割とアクセシブルな名前を追加します。 [[WCAG-1.3.1]]
-
副題(サブタイトル)には見出し要素を使用しないでください。[[WCAG-1.3.1]]
-
サイドバーなどの補助的な素材には
aside
要素を使用します。[[WCAG-1.3.1]]
例
よくある質問
- すべてのセクションをランドマーク(目印)にする必要がありますか?
-
いいえ、ランドマークは代替の目次として機能することを意図したものではありません。ランドマークはフラットなリストとしてユーザーに表示されるため、出版物の構造が失われ、出版物内を移動するための効果的な手段にはなりません。
一般的には、作品の主要なセクション (章など) と、ユーザーがすぐにアクセスしたい重要な前書きおよび参照セクションを識別するためにのみ用いるのをお勧めします。ランドマークが多すぎると、ユーザーにとっての有用性が低下します。
セクションをランドマークにしないようにするには、セクションにロールやアクセシブルな名前を追加しないでください (つまり、
section
要素にはrole
、aria-labelledby
、aria-label
、title
属性を付けないでください)。 - 補助的なコンテンツには
section
要素を使用する必要がありますか? -
いいえ、サイドバーやミニ記事などの自己完結型の補助コンテンツは、必要に応じて
aside
とarticle
要素を使用して識別する必要があります。詳細については、 asidesおよびarticlesページを参照してください。 - パートの取り扱い方法は?
-
出版物では、レンダリング速度を向上させるために小さなコンテンツ ファイルに分割し、1つのファイルに全体を組み込めないことがよくあります。問題は、章(チャプター)を別々のファイルに分割しながら、パートを保持するにはどうすれば良いかという点です。
コンテンツをフラットにするには2つの方法がありますが、少なくともマークアップ内の元の構造階層を保持するという点では、どちらも最適ではありません。1つ目は、最初の章(チャプター)にパート見出しを組み込む方法です。
<body> <section role="doc-part" aria-labelledby="hd01"> <h1 id="hd01">Part I</h1> <section role="doc-chapter" aria-labelledby="hd02"> <h2 id="hd02">Chapter I</h2> </section> </section> </body>
後続の各章ファイルには、
h2
見出しを持つ 1 つのsection
が含まれます。このマークアップアプローチでは、そのパートには 1 つの章のみが含まれているように見えますが、一貫した見出し番号付けにより、支援技術によってユーザーを正しく誘導できます。もう一つは、パート見出しを独自のファイルに分離する方法です。
<body> <section role="doc-part" aria-labelledby="hd01"> <h1 id="hd01">Part I</h1> </section> </body>
後続する各章のファイルには、その章がパートに従属していることを示す
h2
見出しを付けます。このアプローチの利点の1つは、ユーザーエージェントがパート見出しを最初の章のコンテンツとは別にレンダリングすることです。
解説
section
要素は、主要なコンテンツのセクションをカプセル化し、出版物の構造階層を確立するために使用されます。コンテンツを明確にグループ化して識別することで、支援技術を使用して読むすべてのユーザーがより適切にナビゲートできるようになります ( FAQ も参照)。
該当する場合、role
属性をsection
に追加して、コンテンツの特定の性質を示せます。属性で使用できる値のリストについては、Digital Publishing WAI-ARIA モジュールを参照してください。
role
指定が無い場合には、ネストレベル(入れ子階層の深さ)に基づいて一般的なセクション/サブセクションの性質が導かれます。
section
に複数の子見出しは組み込めません。見出しタグを使用して副題を追加しないでください。支援技術のユーザーにはサブセクションとして表示されてしまうためです。
セクションに見出しがない場合は、section
の目的を識別させるためにaria-label
属性の付与を検討してください。
関連リンク
- MDN — <section>: 汎用セクション要素
- HTML —
section
要素 - HTML —見出しとセクション