aria-label と aria-labelledby の使い方まとめ|section など使える要素をすべて網羅

aria-label と aria-labelledby の使い方まとめ|section など使える要素をすべて網羅

2025.11.17

はじめに

Webサイトをアクセシブル(誰でも使いやすい状態)にするために重要なのが、aria-labelaria-labelledby の使い方です。
特に <section><nav> などの “ランドマーク要素” に適切なラベルを付けることは、スクリーンリーダー利用者にとって「このブロックは何の役割なのか」を理解する大きな助けになります。

この記事では、HTMLでよく使う要素をすべて網羅しながら、
aria-label と aria-labelledby の使い分け、書き方、具体例 をまとめて解説します。


aria-label と aria-labelledby の違い

まずは2つの使い分けを明確にしておきます。

aria-label(ラベルをその場で直接書く)

  • 要素に 読み上げ用の名前 を直接つける
  • 視覚的には表示されない
  • その名前はコード内に直接書くため、変更時にコード修正が必要
<section aria-label="お問い合わせセクション">

aria-labelledby(別の要素をラベルとして参照する)※推奨

  • ほとんどの場合こちらが推奨
  • 多くは見出し(h2・h3)をラベルとして参照する
  • 視覚的にも表示されるため、読み上げと見た目が一致してわかりやすい
<section aria-labelledby="contact-title">
  <h2 id="contact-title">お問い合わせ</h2>

aria-label を使うケース

次のような制約があるときに aria-label を使います。

  • デザイン上、見出しを置けない
  • ボタンやアイコンに補足説明が必要
  • グラフィカルUIに名前を付けたい
  • 視覚的にはシンプルにしたいが、読み上げでは意味を伝えたい

aria-labelledby を使うケース(推奨)

  • セクションの見出しがある
  • 既存のテキストをラベルにしたい
  • 読み上げ内容と目視のタイトルを一致させたい

ほぼ全部の セクション構造(section / nav / form / aside / article)で推奨 です。


ランドマーク要素ごとの正しい使い方まとめ

headerタグ

通常はページ全体の先頭を示すため、ariaは不要。
複数存在する場合(例:article内のheader)には名前を付けてもよい。

<header aria-label="サイト共通ヘッダー"></header>

navタグ

サイト内のナビゲーションを表すため、必ず名前を付けるのが推奨。

<nav aria-label="グローバルナビゲーション"></nav>

複数ある場合(フッターナビ、SNSナビなど)にも効果的。


mainタグ

1ページに1つだけ。通常ラベル不要。
ただし特殊なケースでは付けても良い。

<main aria-label="メインコンテンツエリア"></main>

sectionタグ

見出しがあるときは aria-labelledby が最適解!

<section aria-labelledby="about-title">
  <h2 id="about-title">私たちについて</h2>
</section>

見出しがない時だけ aria-label
迷ったら 見出しを付ければOK

<section aria-label="サービス概要">

articleタグ

独立した内容なら、やはり見出し参照が推奨。

<article aria-labelledby="news-title-1">
  <h3 id="news-title-1">最新のお知らせ</h3>

asideタグ

補足情報ブロックなので、名前付けがとても有効。

<aside aria-label="関連記事"></aside>

formタグ

フォームの目的名を付けるとアクセシビリティが向上。

<form aria-labelledby="contact-form-title">
  <h2 id="contact-form-title">お問い合わせフォーム</h2>
</form>

footerタグ

ページ全体のフッターは名前不要。
複数ある場合(カードのフッターなど)は付けても良い。

<footer aria-label="カードの補足情報"></footer>

aria-label / aria-labelledby の使い分け 早見表

使う場所 aria-label aria-labelledby 推奨
section △(見出しなし) ◎(見出し参照) labelledby
nav どちらでもOK
form labelledby
article labelledby
aside 目的に応じて
header 不要な場合も多い
footer 不要な場合も多い

実践例:A型サービス紹介ページの正しい構造

実際の制作現場でよくある構造を例にします。

<section id="a-type-intro" aria-labelledby="a-type-intro-title">
  <h2 id="a-type-intro-title">就労継続支援A型とは</h2>
  <p>一般企業での就労が難しい方に働く機会を提供する福祉サービスです。</p>
</section>

あなたのように Web制作現場で複数のページ構成を持つサイトでは、
全セクションに適切な aria を付けるだけでアクセシビリティが一気に向上 します。


まとめ

  • aria-label は 直接ラベルを付ける
  • aria-labelledby は 見出しをラベルとして参照する(推奨)
  • section / nav / form / article / aside には積極的に使える
  • 見出しのあるセクションでは aria-labelledby が“正解”
  • 迷ったら「見出し+aria-labelledby」を基本にする

アクセシビリティは「入れておいた方が SEO 的にも評価されやすい」傾向があります。

タグ:

#aria-label #aria-labelledby #アクセシビリティ #HTML #ランドマーク