edubun
日本語

スクリーンリーダーとARIAの第一のルール

ARIAの第一のルールは、ARIAを使わないことです。button のように、その仕事をするHTMLのネイティブ要素がすでにあるなら、div にロールを付けるのではなく、その要素を使います。

スクリーンリーダーが何をもとに動くか

スクリーンリーダーは画素を読みません。ブラウザーはHTMLからアクセシビリティツリーを作ります。これはページを簡単にした写しで、大事な要素にはそれぞれロール(ボタン、リンク、見出し、チェックボックス)と名前(それを特定するテキスト)があり、状態(チェック済み、展開、無効)を持つこともあります。スクリーンリーダーはそのツリーを読み上げたり、点字ディスプレイに送ったりします。WCAG 2.2のレベルAの達成基準4.1.2「名前(name)・役割(role)及び値(value)」は、ページのすべてのコントロールがこの3つを公開することを求めています。

中にXが入った丸いボタン。目の見える利用者は何かを閉じるものだと推測しますが、スクリーンリーダーが「Close、ボタン」と言うにはロールと名前が必要です。

利用者がページを上から下まで聞くことはめったにありません。主なOSに組みこまれたスクリーンリーダーや、インストールできる無料のスクリーンリーダーでは、見出し、リンク、ランドマークの一覧を出したり、次のフォームの入力欄へ飛んだり、1行ずつ読んだりできます。だからこそ、これまでのユニットがとても大切なのです。本物の見出し、ラベルの付いた入力欄、本当にボタンであるボタン、代替テキストは、どれもそのツリーに直接入ります。html 要素の lang 属性も大切です。達成基準3.1.1「ページの言語」がこれを求めており、スクリーンリーダーはこれを使って正しい音声と発音を選びます。

ARIAが加えるもの

WAI-ARIA(Accessible Rich Internet Applications)は、アクセシビリティツリーに入るものを変える属性のセットです。role はロールを、aria-label などの属性は名前を、aria-checked や aria-expanded などは状態を設定します。ARIAが変えるのは、読み上げられる内容だけです。要素をフォーカスできるようにはせず、キーボードの動作も加えず、見た目も変えません。W3CのARIAオーサリング・プラクティス・ガイドは、これを見出しにしています。「悪いARIAよりARIAなしのほうがよい」。まちがったARIAは、スクリーンリーダーの利用者にページについてうそを伝えます。

ARIAの使い方のルール

W3Cの文書『Using ARIA』は、あちこちで引用される短いルールを示しています(2026年2月に作業を中止した草案という扱いになりましたが、ルールそのものは変わっていません)。ルール1:必要な意味と動作がすでに組みこまれたHTMLのネイティブ要素や属性を使えるなら、ARIAでほかの要素を転用せずに、それを使う。ルール2:本当に必要でない限り、ネイティブのセマンティクスを変えない。ルール3:ARIAで作った操作できるコントロールは、すべてキーボードで使えるようにする。ルール4:フォーカスを受けられる要素に role="presentation" や aria-hidden="true" を付けない。付けると、「何もないもの」にたどり着いてしまう利用者が出ます。

ARIAが本当に役立つのは、HTMLでは埋められないすき間を埋めるときです。アイコンだけが入ったボタンにはテキストがないので、名前もありません。aria-label="Close" で名前を付けられます。見えるテキストの隣にあるSVGのアイコンは飾りなので、svg に aria-hidden="true" を付けてツリーから外します。初心者に必要なのは、たいていこの2つの属性です。タブやメニューのようなウィジェット全体は、自分で考え出さずに、オーサリング・プラクティス・ガイドの対応するパターンに従いましょう。

アクセシビリティツリーブラウザーがHTMLから作る、ロール、名前、状態
WCAG 4.1.2名前(name)・役割(role)及び値(value)(A)
ARIAの第一のルールその仕事をするHTMLのネイティブ要素があれば、それを使う
aria-label要素に名前を付ける。例:アイコンだけのボタン
aria-hidden="true"飾りをツリーから外す。フォーカスできる要素には決して付けない
WCAG 3.1.1ページの言語(A):html に lang
ポイント
  • スクリーンリーダーはアクセシビリティツリーのロール、名前、状態を読みます。
  • ARIAが変えるのは読み上げる内容で、動作やフォーカスは変えません。
  • ルール1:まずネイティブのHTMLを使う。悪いARIAよりARIAなしのほうがよい。
  • aria-label はアイコンだけのボタンに名前を付け、aria-hidden は飾りを隠します。
  1. スクリーンリーダーが実際に読んでいるのは何ですか?
    • HTMLから作られたアクセシビリティツリー
    • 画面の画素
    • CSSファイル
    • サーバーのログ
  2. 4.1.2がすべてのコントロールに公開を求める3つのものは何ですか?
    • 名前、ロール、値
    • 色、大きさ、位置
    • title、alt、lang
    • id、class、style
  3. ARIAの使い方の第一のルールは何ですか?
    • その仕事をするHTMLのネイティブ要素がすでにあれば、それを使う
    • すべての要素に role を付ける
    • いつも aria-label を使う
    • アイコンをだれからも隠す
  4. span に role="button" を付けました。まだ自分で加えなければならないものは何ですか?
    • フォーカスと Enter/Space の処理
    • 何も問題はない
    • 色
    • alt 属性
  5. W3Cのオーサリング・プラクティス・ガイドにある見出しはどれですか?
    • 悪いARIAよりARIAなしのほうがよい
    • いつもARIAを使う
    • ARIAはHTMLの代わりになる
    • ARIAは見た目を整えるためのもの
  6. アイコンだけのボタンに名前を付けるARIAの属性はどれですか?
  7. aria-hidden="true" を決して付けてはいけない場所はどこですか?
    • フォーカスを受けられる要素
    • 装飾の svg
    • 背景画像
    • 区切り線
  8. html の lang 属性は、スクリーンリーダーが何をするのに役立ちますか?
    • 正しい音声と発音を選ぶ
    • 見出しを見つける
    • 代替テキストを読む
    • コントラストを変える
  9. ARIAは要素の見た目を変えますか?
    • いいえ。変えるのは読み上げる内容だけ
    • はい、いつも同じ
    • role だけは変える
    • ダークモードのときだけ変える
  10. スクリーンリーダーの利用者がページを移動するいちばんよくある方法は
    • 見出し、リンク、ランドマークの一覧
    • 上から下まですべての語を読む
    • 拡大する
    • 印刷する
このコースの出典 (9)
  • W3C, Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation first published 5 October 2023, current edition 12 December 2024 (w3.org/TR/WCAG22/, checked 2026-10-17, rechecked 2026-10-18)
  • W3C WAI, What's new in WCAG 2.2 (w3.org/WAI/standards-guidelines/wcag/new-in-22/, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree/, checked 2026-10-17)
  • W3C, Using ARIA (w3.org/TR/using-aria/, Discontinued Draft 24 February 2026, rules 1 to 4, checked 2026-10-17)
  • W3C WAI-ARIA Authoring Practices Guide, Read Me First, "No ARIA is better than bad ARIA" (w3.org/WAI/ARIA/apg/practices/read-me-first/, checked 2026-10-17)
  • MDN Web Docs, tabindex (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex, checked 2026-10-17)
  • MDN, Heading elements, accessibility notes (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements, checked 2026-10-17)
  • MDN, autocomplete attribute (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete, checked 2026-10-17)
  • Every code exercise was checked with a Playwright probe against a reference solution.

確認日: 2026-10-17