リージョンとランドマークに名前 (name) を付けるために、aria-labelledby を使用する

達成方法に関する重要な情報

この達成方法 (参考) の使用法と、この達成方法が WCAG 2.1 達成基準 (規定) とどのように関係するのかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用 (対象) のセクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法の存在は、その技術があらゆる状況で WCAG 2.1 を満たすコンテンツを作成するために使用できることを意味するものではない。

適用 (対象)

Accessible Rich Internet Applications (WAI-ARIA) をサポートするウェブコンテンツ技術。

これは達成基準 1.3.1: 情報及び関係性 (十分) に関する達成方法である。

解説

この達成方法の目的は、支援技術によって読み取ることができるページの領域に対して名前を提供することである。aria-labelledby 属性は、領域又はランドマークとしてマークアップされたページ内のセクションと、そのセクションを分類するページ内のテキストを関連付ける方法を提供する。

ランドマークロール (又はランドマーク) は、ページのセクションをプログラムで識別できるようにする。ランドマークは、支援技術 (AT) 利用者がページに順応するのを支援し、様々なページのセクションにより簡単にナビゲートするのに役立つ。

aria-describedby のように、aria-labelledby は、スペース区切りのリストを使用して、ページの他の領域を指すための複数の ID を受け入れることができる。また、この集合を定義するものは ID に限定されている。

事例

例 1: ページ上のテキストをもつランドマークを識別する

以下は、complementary ランドマークに aria-labelledby を使用した一例である。この文書内の見出しがついている領域は、見出しの id 値を含む aria-labelledby プロパティによってマークすることができる。

<div role="complementary" aria-labelledby="hdr1">
  <h1 id="hdr1">
    Top News Stories
    ...
  </h1>
</div>

例 2: アプリケーションランドマークの識別

次のコード断片は、静的な文を含む application ランドマークである。タイプ application の領域ランドマークがあり、かつ静的な説明テキストが利用可能であるため、application ランドマークには、そのアプリケーションと静的テキストを関連付けるための aria-describedby による参照を含めている。

<div role="application" aria-labelledby="p123" aria-describedby="info">
  <h1 id="p123">Calendar<h1>
  <p id="info">
    This calendar shows the game schedule for the Boston Red Sox.
  </p>
<div role="grid">
  ...
</div>

参考リソース

この参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。

検証

手順

  1. 属性 role=region 又はランドマークロールを持ち、aria-labelledby 属性も存在している各要素を調べる。
  2. aria-labelledby 属性値が、ページ上の要素の id であることを確認する。
  3. その id を持つ要素のテキストが、ページのセクションを正確にラベル付けしていることを確認する。

期待される結果

  • #2 及び #3 の結果が真である。