本文へ移動
easeweb
ご相談

修正ガイド

HTML・ARIAリファレンス

アクセシビリティに関わるHTMLとARIAの役割を、使用例と使っているガイドとともにまとめました。

HTML要素

8グループ・53項目

文書とメタデータ

3項目

<title>

タブに表示され、ページを開いたときに最初に読み上げられるページ名です。ページごとに固有にし、具体的な部分を先に書きます(「お支払い – Fern & Fold」)。

使用例
<title>Order confirmed – Fern & Fold</title>

<meta>

文字コード、ビューポート、説明文などのメタデータです。ビューポートにmaximum-scale=1やuser-scalable=noを指定しないでください。モバイルで拡大表示できなくなります。

使用例
<meta name="viewport" content="width=device-width, initial-scale=1">

セクションとランドマーク

9項目

<header>

ロゴやナビゲーションなどの導入部分です。<article>、<aside>、<main>、<nav>、<section>の中にないときだけbannerランドマークになり、その中ではその部分の見出し部分にすぎません。

使用例
<header>
  <a href="/">Fern & Fold</a>
  <nav aria-label="Main">…</nav>
</header>

<nav>

主要なナビゲーションリンクのまとまりです。1ページに複数あるときは、それぞれaria-labelで名前を付けます(「メイン」「フッター」など)。「ナビゲーション」という語はスクリーンリーダーが読むので含めません。

使用例
<nav aria-label="Main">
  <ul>…</ul>
</nav>

<main>

ページの主な内容です。1ページに1つだけ置きます(ほかは非表示にする必要があります)。スクリーンリーダーの利用者はここへ直接移動でき、スキップリンクの行き先にもなります。

使用例
<main id="content">
  <h1>Your basket</h1>
</main>

<section>

通常は見出しを持つ、テーマごとのまとまりです。名前(見出しを指すaria-labelledbyなど)を持つときだけregionランドマークになります。

使用例
<section aria-labelledby="faq">
  <h2 id="faq">Questions</h2>
</section>

<article>

投稿、コメント、商品カードなど、単独でも意味が通る独立した内容です。見出しから始めます。

使用例
<article>
  <h2>Spring opening hours</h2>
  <p>…</p>
</article>

<h1>–<h6>

レベル付きの見出しです。スクリーンリーダーの利用者は見出しを一覧にして移動するので、<h1>を1つ置き、下る方向でレベルを飛ばさず、大きさではなく構造でレベルを選びます。

使用例
<h1>Delivery</h1>
<h2>UK orders</h2>
<h2>International orders</h2>
関連
role="heading"aria-level
これを使うガイド (58)

<aside>

サイドバーなど、ページに関連するが主な内容とは別の部分です。complementaryランドマークになります。複数あるときは名前を付けます。

使用例
<aside aria-label="Related articles">…</aside>

コンテンツのグループ化

6項目

<ul>

順序のない項目のリストです。Safari と VoiceOver では、<nav>の外でlist-style: noneを指定するとリストとして扱われなくなります。項目数を伝えたい場合はrole="list"を付けます。

使用例
<ul>
  <li>Free returns</li>
  <li>Next-day delivery</li>
</ul>
関連
role="list"<li>
これを使うガイド (40)

<ol>

手順など、順序に意味があるリストです。スクリーンリーダーは項目数と現在の位置を伝えます。

使用例
<ol>
  <li>Add to basket</li>
  <li>Pay</li>
</ol>

<li>

<ol>、<ul>、<menu>の項目です。それらの直接の子でないと、リストの項目として数えられません。

使用例
<ul>
  <li><a href="/shop">Shop</a></li>
</ul>
関連
role="listitem"
これを使うガイド (38)

テキスト

7項目

<a>

別のページや場所へのリンクです。hrefがあるときだけリンクになり、TabキーとEnterキーで操作できます。リンクテキストで行き先がわかるようにします。ページ上の操作には<button>を使います。

使用例
<a href="/returns">Returns policy</a>
関連
role="link"hrefaria-current
さらに詳しく
比較:リンクかボタンか
これを使うガイド (45)

<abbr>

略語です。title属性は確実には読まれず、タッチ画面では表示されないので、初出時に本文で正式名称を書きます。

使用例
<p>Web Content Accessibility Guidelines (<abbr>WCAG</abbr>)</p>
関連
title

<ruby>

ルビ注記です。漢字の読みを示すふりがななど、文字の上や横に小さな文字を付けます。読み上げ方はスクリーンリーダーによって異なり、親文字とルビの両方を読むことがよくあります。

使用例
<ruby>漢字<rp>(</rp><rt>かんじ</rt><rp>)</rp></ruby>

<mark>

検索に一致した語など、参照のために強調表示するテキストです。多くのスクリーンリーダーは読み分けないので、強調表示だけで情報を伝えないでください。

使用例
<p>Results for <mark>notebook</mark> covers</p>

<s>

元の価格など、正しくなくなった、または関係なくなったテキストです。スクリーンリーダーは取り消し線を読まないことが多いので、必要なら「旧価格」などの言葉を添えます。

使用例
<p><s>£30</s> Now £20</p>

<del>

編集の記録として、文書から削除されたテキストです。多くのスクリーンリーダーは既定では読み分けないので、変更が重要なら言葉で伝えます。

使用例
<p>Open <del>until 6pm</del> <ins>until 8pm</ins>.</p>
関連
<ins><s>

<ins>

編集の記録として、文書に追加されたテキストです。多くのスクリーンリーダーは既定では読み分けません。

使用例
<p>Open <ins>until 8pm</ins> on Fridays.</p>
関連
<del>

画像・メディア・埋め込み

8項目

<img>

画像です。altは必須です。画像が伝える内容を書くか、装飾の画像ならalt=""にしてスクリーンリーダーに読み飛ばさせます。altがないと、ファイル名を読むスクリーンリーダーが多くあります。

使用例
<img src="mug.jpg" alt="Blue enamel mug with a white rim">

<area>

イメージマップ内のクリック領域です。hrefがあるとリンクになり、altがリンクテキストになるので必須です。

使用例
<area shape="circle" coords="120,80,30" href="/toilets" alt="Toilets">

<svg>

インラインのSVG図形です。意味のある画像にはrole="img"を付け、aria-labelか<title>で名前を付けます。装飾ならaria-hidden="true"を付けます。

使用例
<svg role="img" aria-label="Rated 4 out of 5" viewBox="0 0 80 16">…</svg>

<canvas>

スクリプトで描画する領域です。描いた内容は支援技術に伝わらないので、同じ情報を代替コンテンツか近くのテキストで提供します。

使用例
<canvas width="400" height="200">
  <p>Visitors rose from 200 in May to 450 in June.</p>
</canvas>

<video>

動画プレーヤーです。controls、<track>による字幕、音声解説か文字起こしを付けます。音声付きで自動再生しないでください。

使用例
<video src="tour.mp4" controls>
  <track kind="captions" src="tour.en.vtt" srclang="en" label="English">
</video>

<track>

<video>に字幕や音声解説を付ける仕組みで、WebVTTファイルの種類をkindで指定します。音声のある収録済み動画には、字幕が必要です(WCAG 1.2.2)。

使用例
<track kind="captions" src="tour.en.vtt" srclang="en" label="English" default>

表

4項目

<table>

データ表です。スクリーンリーダーは各セルを見出しとともに読みます。行と列のデータに使い、レイアウトには使いません。<caption>を付けます。

使用例
<table>
  <caption>Delivery prices</caption>
  …
</table>

<th>

列または行の見出しセルです。scope="col"かscope="row"で向きを明示します。複雑な表ではheadersを使います。

使用例
<th scope="col">Price</th>

<td>

データセルです。スクリーンリーダーは、<th>またはheaders属性から求めた行と列の見出しとともに読みます。

使用例
<td>£3.50</td>

フォーム

13項目

<form>

入力欄を送信するフォームです。Enterキーでの送信はこの中でだけ動きます。名前を持つときだけformランドマークになります。

使用例
<form action="/subscribe" method="post" aria-label="Newsletter">…</form>
関連
role="form"<search><button>
これを使うガイド (28)

<fieldset>

ラジオボタンの組や住所など、関連する入力欄を<legend>の問いのもとにまとめます。スクリーンリーダーは入力欄とともに<legend>を読みます。

使用例
<fieldset>
  <legend>Delivery speed</legend>
  …
</fieldset>

<legend>

<fieldset>のキャプションで、最初の子として置きます。スクリーンリーダーによってはグループ内の入力欄ごとに繰り返すので、短くします。

使用例
<legend>Payment method</legend>

<label>

入力欄の見える名前です。forと入力欄のidで結び付けるか、入力欄を囲みます。入力欄にフォーカスすると読まれ、クリックすると入力欄にフォーカスが移ります。

使用例
<label for="email">Email</label>
<input id="email" type="email" autocomplete="email">
関連
for<input>
さらに詳しく
比較:名前と説明
これを使うガイド (50)

<input>

typeで種類が決まる入力欄です(text、email、checkbox、radio、number、dateなど)。どれにもラベルが必要です。適切なtypeとautocompleteで、合ったキーボードと自動入力が使えます。

使用例
<label for="tel">Phone</label>
<input id="tel" type="tel" autocomplete="tel">
関連
role="textbox"role="searchbox"role="checkbox"role="radio"role="button"role="slider"role="spinbutton"role="combobox"<label>typeautocompletename
これを使うガイド (47)

<textarea>

複数行の入力欄です。ほかの入力欄と同じくラベルが必要です。広さが必要になる場合に備え、サイズ変更を禁止しないでください。

使用例
<label for="note">Gift message</label>
<textarea id="note" rows="4"></textarea>

<select>

選択肢から選ぶリストで、キー操作とスクリーンリーダー対応が組み込まれています。ラベルを付け、選択の変更だけで送信やページ移動をしないでください。

使用例
<label for="size">Size</label>
<select id="size" name="size">
  <option>A5</option>
</select>

<optgroup>

<select>の関連する選択肢をラベルの下にまとめます。多くのスクリーンリーダーは選択肢とともにそのラベルを読みます。

使用例
<optgroup label="Notebooks">
  <option>A5 dotted</option>
</optgroup>

<button>

ページ上で何かを実行するボタンです。標準でフォーカスでき、EnterキーとSpaceキーで動きます。フォームの中では既定で送信するので、それ以外の操作にはtype="button"を付けます。

使用例
<button type="button" aria-expanded="false">Menu</button>
関連
role="button"typearia-pressed
さらに詳しく
比較:リンクかボタンか
これを使うガイド (75)

<meter>

パスワードの強さのような、決まった範囲の中の測定値で、スクリーンリーダーは値とともに読み上げます。ラベルを付け、強さは色だけでなく文字でも示します(WCAG 1.4.1)。作業の進み具合には<progress>を使います。

使用例
<label for="disk">Storage</label>
<meter id="disk" min="0" max="10" value="7">7 of 10 GB</meter>
関連
role="meter"
さらに詳しく
比較:progressかmeterか

インタラクティブ要素

3項目

<details>

<summary>を押すと内容を開閉する折りたたみウィジェットです。キー操作とスクリーンリーダー対応が組み込まれています。同じnameのものは一度に1つだけ開きます。

使用例
<details>
  <summary>Delivery and returns</summary>
  <p>Free returns within 30 days.</p>
</details>

<summary>

<details>の常に表示されるラベルで、開閉を切り替えます。多くのブラウザーは展開状態付きのボタンのようなコントロールとして伝えますが、ロールはブラウザーによって異なります。中にほかの操作できる要素を入れないでください。

使用例
<summary>Size guide</summary>

<dialog>

ダイアログです。showModal()で開くとモーダルになり、フォーカスが中に移り、ページのほかの部分が操作できなくなり、Escキーで閉じます。見出しから名前を付けます。

使用例
<dialog aria-labelledby="del-title">
  <h2 id="del-title">Delete this list?</h2>
  …
</dialog>

HTML属性

7グループ・42項目

グローバル属性

12項目

lang

要素の内容の言語を指定し、スクリーンリーダーが正しい音声で読み、ブラウザーが正しく改行・翻訳できるようにします。ページ全体は html 要素に(WCAG 3.1.1)、別の言語の部分にはその部分に指定します(WCAG 3.1.2)。

使用例
<html lang="en">
  …
  <p>The French call it <i lang="fr">l'esprit de l'escalier</i>.</p>

dir

値 ltrrtlauto

文字の方向を指定します。アラビア語やヘブライ語など右から左に書く文字には rtl を、方向が事前に分からない利用者の投稿には auto を使います。

使用例
<p lang="ar" dir="rtl">مرحبا بكم</p>
関連
lang

title

マウスを重ねたときにツールチップとして表示される補足情報です。キーボードやタッチの利用者には表示されず、スクリーンリーダーの読み上げもまちまちなため、頼りにしません。確実に役立つのは iframe に名前を付けるときだけです。

使用例
<iframe src="/map" title="Map of our shop on Hill Street"></iframe>

hidden

値 hiddenuntil-found

要素をすべての利用者から隠します。表示されず、フォーカスもできず、スクリーンリーダーにも読まれません。until-found を指定すると、ブラウザーのページ内検索で見つかり、見つかったときに表示されます。

使用例
<div id="details-panel" hidden>Delivery takes 2 to 4 days.</div>
さらに詳しく
比較:コンテンツを隠す
これを使うガイド (33)

inert

要素とその中身すべてを操作できなくします。表示はされたままですが、フォーカス、クリック、スクリーンリーダーでの移動ができません。独自に作ったモーダルの背後のページや、表示はしているがまだ使えない内容に使います。

使用例
<main inert>…</main>
<div role="dialog" aria-modal="true" aria-labelledby="dlg-title">…</div>

tabindex

値 integer (use 0 or -1)

要素がキーボードフォーカスを受け取るかを決めます。0 はソース順でTabキーの順序に加え、-1 はTabキーの順序に入れずにスクリプトからだけフォーカスできるようにします。正の値は、その要素を他のすべてより先にするため、使いません。

使用例
<h2 id="results-title" tabindex="-1">12 results</h2>
関連
aria-activedescendant
これを使うガイド (26)

autofocus

ページやダイアログが開いたときに、その要素へフォーカスを移します。ダイアログの最初の入力欄など、利用者が操作を始めると予想できる場所だけに使います。それ以外では、スクリーンリーダー利用者がまだ聞いていない内容を飛ばしてしまいます。

使用例
<dialog>
  <label for="rename">New name</label>
  <input id="rename" autofocus>
</dialog>

accesskey

要素にキーボードショートカットを割り当てます。スクリーンリーダー、ブラウザー、OSのショートカットと衝突し、修飾キーもブラウザーごとに異なり、存在も利用者に伝わらないため、使用は避けます。

使用例
<a href="/search" accesskey="s">Search</a>

contenteditable

値 truefalseplaintext-only

要素の内容をその場で編集できるようにします。ブラウザーは編集可能なテキスト領域として伝えますが、名前はないため、aria-labelledby や aria-label でラベルを付け、複数行を入力する場合は aria-multiline も付けます。

使用例
<p id="note-label">Note</p>
<div contenteditable="true" role="textbox" aria-labelledby="note-label" aria-multiline="true"></div>

inputmode

値 nonetextdecimalnumerictelsearchemailurl

ワンタイムコードに数字キーパッドを出すなど、表示するスクリーンキーボードの種類を選びます。type="number" のような検証や増減ボタンは付きません。

使用例
<label for="code">Security code</label>
<input id="code" inputmode="numeric" autocomplete="one-time-code">

role

要素にARIAロールを与え、それが何であるかを支援技術に伝えます。変わるのは読み上げだけで、動作は変わりません。そのロールを持つHTML標準の要素があれば、そちらを使います(下のARIAロールを参照)。

使用例
<div role="status">3 results</div>

popover

値 automanualhint

要素を最前面に表示するポップオーバーにし、popovertarget を持つボタンで開きます。auto のポップオーバーはEscapeキーや外側のクリックで閉じます。フォーカスを閉じ込めず、背後も操作できるため、モーダルダイアログではありません。

使用例
<button type="button" popovertarget="help">Help</button>
<div id="help" popover>Codes are on the back of your card.</div>

文書とメタデータ

1項目

http-equiv

値 content-typedefault-stylerefreshcontent-security-policyx-ua-compatible

meta 要素をHTTPヘッダーのように働かせます。遅延付きの http-equiv="refresh" は避けます。自動で再読み込みやリダイレクトをすると、読み終える前にページが変わってしまいます(WCAG 2.2.1)。

使用例
<meta http-equiv="content-security-policy" content="default-src 'self'">
2項目

href

リンク先のURLです。href のない a 要素はリンクではなく、フォーカスもできません。href="#" や javascript: でリンクをボタンとして使うことはしません。

使用例
<a href="/returns">Returns policy</a>
使える要素
<a><area>
関連
role="link"<button>
これを使うガイド (48)

target

値 _self_blank_parent_topname

リンクを開く場所を指定します。_blank は新しいタブやウィンドウで開き、利用者が戸惑ったり戻るボタンが効かなくなったりするため、必要な場合だけ使い、リンクテキストでそのことを伝えます。

使用例
<a href="/terms.pdf" target="_blank">Terms (PDF, opens in a new tab)</a>

画像・メディア・埋め込み

8項目

alt

画像のテキストによる代替で、その文脈で画像が伝える内容を書きます(WCAG 1.1.1)。装飾だけの画像には alt="" を指定して、スクリーンリーダーに読み飛ばさせます。alt を省くと、多くのスクリーンリーダーがファイル名を読み上げます。

使用例
<img src="chart.png" alt="Sales rose 40% between April and June.">

controls

ブラウザー標準の再生コントロールを表示します。キーボードとスクリーンリーダーで操作できるため、同等にアクセシブルな独自プレーヤーを作る場合以外は残します。

使用例
<video src="tour.mp4" controls>
  <track kind="captions" src="tour.en.vtt" srclang="en" label="English">
</video>

autoplay

再生できるようになり次第、再生を始めます。3秒を超えて自動で流れる音声には一時停止や消音の手段が(WCAG 1.4.2)、動く映像には一時停止の手段が必要です(WCAG 2.2.2)。自動再生はしないのが最善です。

使用例
<video src="loop.mp4" autoplay muted loop playsinline controls></video>
使える要素
<audio><video>
関連
mutedcontrols

muted

メディアを音声なしで開始します。ブラウザーは消音した動画の自動再生を許可しますが、動きがあれば一時停止の手段は必要です。

使用例
<video src="hero.mp4" autoplay muted playsinline controls></video>
使える要素
<audio><video>
関連
autoplay

loop

メディアの再生が終わると最初から再生します。自動で始まり5秒を超えて動き続けるループ動画には、一時停止の手段が必要です(WCAG 2.2.2)。

使用例
<video src="steam.mp4" muted loop controls></video>
使える要素
<audio><video>
関連
autoplaycontrols

kind

値 subtitlescaptionsdescriptionschaptersmetadata

テキストトラックの種類です。聴覚障害のある視聴者向けに会話と効果音を書き起こしたものは captions(WCAG 1.2.2)、音声は聞こえても言葉が分からない人向け(翻訳など)は subtitles、テキストによる音声解説は descriptions にします。

使用例
<track kind="captions" src="talk.en.vtt" srclang="en" label="English">

srclang

テキストトラックの言語で、subtitles では必須です。利用者が分かる言葉で言語を示す label と組み合わせます。

使用例
<track kind="subtitles" src="talk.ja.vtt" srclang="ja" label="日本語">

default

このテキストトラックを最初から有効にします。ページの言語の字幕に付けると、利用者が設定を探さなくても字幕が表示されます。

使用例
<track kind="captions" src="talk.en.vtt" srclang="en" label="English" default>
使える要素
<track>
関連
kind

表

5項目

scope

値 colrowcolgrouprowgroup

見出しセルが列、行、またはそのグループのどれの見出しかを示し、スクリーンリーダーが各データセルとともに正しい見出しを読めるようにします。

使用例
<th scope="row">Saturday</th>

headers

このセルに対応する見出しセルの id のリストで、scope で表せない複雑な表に使います。まず表を単純にすることを検討します。

使用例
<td headers="tokyo q1">120</td>
使える要素
<td><th>
関連
scope

abbr

見出しセルのテキストの短縮形で、見出しが長いときに使います。スクリーンリーダーの対応はまちまちなので、見える見出し自体もなるべく短くします。

使用例
<th scope="col" abbr="Qty">Quantity ordered</th>
使える要素
<th>

rowspan

セルがまたがる行の数です。colspan と同様、セルを順にたどれるよう、結合は最小限にします。

使用例
<th rowspan="3" scope="rowgroup">Weekdays</th>
使える要素
<td><th>
関連
colspanaria-rowspan

フォーム

10項目

for

label 要素を、その id を持つコントロールに関連付けます。コントロールにアクセシブル名が付き、ラベルをクリックするとコントロールにフォーカスしたり切り替えたりできます。

使用例
<label for="postcode">Postcode</label>
<input id="postcode" autocomplete="postal-code">
使える要素
<label><output>
関連
aria-labelledby
これを使うガイド (39)

label

<optgroup>や<track>に名前を付けます。optgroupの名前は、多くのスクリーンリーダーが選択肢とともに読み上げます。trackの名前は字幕メニューに表示されるので、利用者が分かる言語名にします。

使用例
<optgroup label="Europe">
  <option>Lisbon</option>
</optgroup>

name

ラジオボタンをグループにまとめ、矢印キーで移動でき、スクリーンリーダーが選択肢の数を伝えるようにします。アクセシブル名ではないため、ラベルは別に必要です。

使用例
<input id="size-s" type="radio" name="size" value="s">
<label for="size-s">Small</label>
使える要素
<input><button><select><textarea><form><fieldset><output><iframe><meta><details>
関連
aria-label
これを使うガイド (40)

type

input 要素ではコントロールの種類(text、email、checkbox、date など)を決め、ロール、キーボード、検証が変わります。button 要素では submit、reset、button のどれかで、フォームを送信しないボタンには type="button" を指定します。

使用例
<button type="button" aria-expanded="false" aria-controls="filters">Filters</button>
使える要素
<input><button><ol><a>
関連
inputmode
これを使うガイド (88)

autocomplete

値 nameemailtelstreet-addresspostal-codecc-numberusernamenew-passwordcurrent-passwordone-time-codeoff…

入力欄が集める個人情報の種類を示し、ブラウザーやパスワード管理ツールが自動入力できるようにします。利用者自身に関する入力欄には対応するトークンが必要で(WCAG 1.3.5)、運動機能や記憶に障害のある人の入力の手間も減らします。

使用例
<label for="email">Email</label>
<input id="email" type="email" autocomplete="email">

placeholder

空の入力欄に表示される例示のテキストです。ラベルではありません。入力を始めると消え、コントラストが低いことも多く、読み上げも確実ではありません。説明は表示されたラベルやヒントに書きます。

使用例
<label for="search">Search recipes</label>
<input id="search" type="search" placeholder="e.g. miso soup">

required

入力欄を必須にします。ブラウザーは未入力での送信を止め、スクリーンリーダーは「必須」と読み上げます。必須であることは表示されたラベルでも示し、色や説明のない「*」だけに頼りません。

使用例
<label for="name">Full name (required)</label>
<input id="name" autocomplete="name" required>

disabled

フォームコントロールを無効にします。Tabキーの順序から外れ、操作できず、送信もされません。フォーカスできないため、利用者が気づかなかったり、無効の理由が分からなかったりします。フォーカスを残す場合は aria-disabled を使います。

使用例
<button type="submit" disabled>Place order</button>

readonly

入力欄の値を変更できなくしますが、フォーカス、読み上げ、送信はできます。disabled と違い、利用者は移動して文字を選択することもできます。

使用例
<label for="ref">Order reference</label>
<input id="ref" value="A-20931" readonly>

list

入力欄を<datalist>に結び付け、候補の表示とキー操作をブラウザーに任せます。自由な入力もできます。候補の見た目を変える必要がなければ、スクリプトで作るコンボボックスより簡単です。

使用例
<label for="city">City</label>
<input id="city" list="cities">
<datalist id="cities"><option value="Osaka"></option></datalist>

インタラクティブ要素

4項目

open

details 要素の内容を表示するか、dialog 要素を表示します。ダイアログは open を付けるのではなく showModal() で開くと、モーダルになり、フォーカスも中に移ります。

使用例
<details open>
  <summary>Delivery</summary>
  <p>Free over ¥5,000.</p>
</details>
使える要素
<details><dialog>
関連
aria-expanded

popovertarget

ボタンで、その id を持つポップオーバーを開く、閉じる、または切り替えます。ブラウザーがボタンの展開状態を伝え、閉じるときにフォーカスがポップオーバー内にあれば、開く前の位置(通常はボタン)にフォーカスを戻します。

使用例
<button type="button" popovertarget="menu">Account</button>
<div id="menu" popover>…</div>

command

値 show-modalcloserequest-closeshow-popoverhide-popovertoggle-popover--custom

スクリプトを使わずに、ボタンで<dialog>やポップオーバーを開閉します。show-modalはshowModal()と同じく、ダイアログをモーダルで開き、フォーカスを中に移して、背後のページを操作できなくします。

使用例
<button type="button" commandfor="confirm" command="show-modal">Delete</button>
使える要素
<button>
関連
commandfor<dialog>

commandfor

ボタンのコマンドで操作するダイアログやポップオーバーを、idで指定します。スクリプトがなくても、読み込まれる前でも、ボタンが動きます。

使用例
<button type="button" commandfor="confirm" command="close">Cancel</button>
使える要素
<button>
関連
commandpopovertarget

ARIAロール

6グループ・63項目

ウィジェットロール

18項目

role="checkbox"

オン、オフ、またはaria-checked="mixed"で一部オンになるチェックボックスです。aria-checked、フォーカス、Spaceキーでの切り替えが必要です。<input type="checkbox">を優先してください。

使用例
<div role="checkbox" aria-checked="false" tabindex="0">
  Email me updates
</div>

role="option"

listbox内の選択できる項目です。listbox(またはその中のgroup)に含まれている必要があり、ARIA 1.2ではaria-selectedが必須です(選択中の項目はtrue、ほかはfalse)。

使用例
<li role="option" id="opt-tokyo" aria-selected="true">Tokyo</li>

role="menuitem"

menu または menubar の中の操作です。menu、menubar、またはその中のgroupに含まれている必要があり、項目間のフォーカスは矢印キーで移動します。

使用例
<ul role="menu" aria-label="Row actions">
  <li role="menuitem" tabindex="-1">Rename</li>
</ul>

role="menuitemcheckbox"

「グリッドを表示」のように、オンとオフを切り替えられるメニュー項目です。aria-checkedが必要で、実行すると状態が切り替わり、通常メニューは開いたままです。

使用例
<li role="menuitemcheckbox" aria-checked="true" tabindex="-1">
  Show grid
</li>

role="menuitemradio"

並び順のように、一つだけ選べるメニュー項目の組の一つです。aria-checkedが必要で、組はrole="group"や区切り線でまとめます。

使用例
<li role="menuitemradio" aria-checked="true" tabindex="-1">
  Newest first
</li>

role="textbox"

自由に文字を入力する欄です。aria-multiline="true"で複数行になります。<input>や<textarea>を優先し、contenteditableの要素にはロールと名前が必要です。

使用例
<div role="textbox" contenteditable="true" aria-multiline="true"
  aria-label="Message"></div>

role="spinbutton"

上下の矢印キーで値を増減できる数値の欄です。値があるときはaria-valuenowを付けます。数量には<input type="number">を優先してください。

使用例
<div role="spinbutton" aria-label="Quantity" tabindex="0"
  aria-valuenow="1" aria-valuemin="1">1</div>

role="progressbar"

処理の進み具合を示します。名前とaria-valuenow(aria-valueminとaria-valuemaxも)を付け、進み具合が分からないときはaria-valuenowを省きます。<progress>を優先してください。

使用例
<div role="progressbar" aria-label="Upload" aria-valuenow="40"
  aria-valuemin="0" aria-valuemax="100"></div>

role="gridcell"

grid または treegrid のセルで、フォーカスを受けたり編集したりできます。grid内のrowに含まれている必要があり、セル間は矢印キーで移動します。

使用例
<div role="row">
  <div role="gridcell" tabindex="-1">Mon 3</div>
</div>

複合ウィジェットロール

9項目

role="combobox"

候補のlistbox、grid、tree、dialogを開く入力欄です。aria-expandedと、ARIA 1.2ではポップアップを指すaria-controlsが必要です。強調中の候補はaria-activedescendantで示します。

使用例
<input role="combobox" aria-expanded="false" aria-controls="cities"
  aria-autocomplete="list" aria-label="City">

role="listbox"

一つ、またはaria-multiselectableで複数を選ぶ選択肢の一覧です。名前とoptionが必要で、矢印キーで選択を動かします。合う場合は<select>を優先してください。

使用例
<ul role="listbox" aria-label="City" tabindex="0">
  <li role="option" aria-selected="true">Tokyo</li>
</ul>

role="menu"

アプリケーションのメニューのような、操作や設定の一覧です。サイトのナビゲーションリンクには使いません。スクリーンリーダーはメニュー用の動きに切り替わり、矢印キーでの操作を期待します。

使用例
<ul role="menu" aria-label="File">
  <li role="menuitem" tabindex="-1">Open</li>
</ul>

role="menubar"

デスクトップアプリのように常に表示されるメニューの列です。左右の矢印キーで項目間を移動します。menuと同じく、Webサイトのナビゲーションには使いません。

使用例
<ul role="menubar" aria-label="Editor">
  <li role="menuitem" aria-haspopup="menu" tabindex="0">File</li>
</ul>

role="radiogroup"

一組のラジオボタンを一つの名前でまとめます。名前を付けてください。HTML標準のラジオボタンなら、<fieldset>と<legend>で同じことができます。

使用例
<div role="radiogroup" aria-labelledby="ship-label">
  <div role="radio" aria-checked="true" tabindex="0">Standard</div>
</div>

role="treegrid"

メールのスレッド一覧のように、行をtreeのように開閉できるgridです。行にaria-expandedとaria-levelを付けます。

使用例
<div role="treegrid" aria-label="Inbox">
  <div role="row" aria-level="1" aria-expanded="true">…</div>
</div>

role="grid"

カレンダーや表計算のように、矢印キーでセル間を移動する表です。Tab順に入るのは一つのセルだけです。中に操作できるものがなければ、通常の表を使います。

使用例
<div role="grid" aria-label="May 2026">
  <div role="row">
    <div role="gridcell" tabindex="0">1</div>
  </div>
</div>

文書構造ロール

22項目

role="heading"

セクションの見出しで、スクリーンリーダーの利用者は見出し間を移動します。aria-levelが必要です(省略すると、ブラウザーは通常レベル2として扱います)。<h1>〜<h6>を優先してください。

使用例
<div role="heading" aria-level="2">Delivery</div>

role="list"

項目の一覧で、項目数とともに読まれます。listitemを含む必要があります。<ul>や<ol>を優先し、list-style: noneなどのCSSでSafariがリストと扱わなくなる場合だけロールを付け直します。

使用例
<ul role="list" class="plain">
  <li>Free returns</li>
</ul>

role="table"

操作できない、行と列のデータです。<table>を優先してください。このロールは他の要素で作った表のためのもので、中にrowとcellが必要です。

使用例
<div role="table" aria-label="Opening hours">
  <div role="row">…</div>
</div>

role="row"

table、grid、treegridのセルの行です。それらの中、またはその中のrowgroupに置く必要があります。<tr>を優先してください。

使用例
<div role="row">
  <div role="cell">Mon–Fri</div>
</div>

role="rowgroup"

表の見出し部分や本体のような行のまとまりです。<thead>、<tbody>、<tfoot>を優先してください。

使用例
<div role="rowgroup">
  <div role="row">…</div>
</div>
関連
role="row"

role="columnheader"

列の見出しで、その下の各セルと一緒に読まれます。<th scope="col">を優先してください。並べ替えできる表ではaria-sortを付けます。

使用例
<div role="columnheader" aria-sort="ascending">Price</div>

role="rowheader"

行の見出しで、その行の各セルと一緒に読まれます。<th scope="row">を優先してください。

使用例
<div role="row">
  <div role="rowheader">Saturday</div>
  <div role="cell">10:00–16:00</div>
</div>

role="cell"

静的な表のセルで、rowに含まれます。<td>を優先してください。CSSグリッドで組んだ表では、displayの変更で失われる表の構造をロールで補えます。

使用例
<div role="row">
  <div role="cell">Mon–Fri</div>
  <div role="cell">9:00–18:00</div>
</div>

role="img"

インラインSVG、絵文字、アイコンフォントのように、複数の部品からなることもある一つの画像です。aria-labelまたはaria-labelledbyが必要で、子要素は読まれません。

使用例
<svg role="img" aria-label="4 out of 5 stars" viewBox="0 0 80 16">
  …
</svg>

role="figure"

図、グラフ、コード例のような独立した内容で、通常キャプションが付きます。<figure>と<figcaption>を優先してください。

使用例
<div role="figure" aria-labelledby="fig-1">
  <img src="sales.png" alt="…">
  <p id="fig-1">Sales by month</p>
</div>

role="group"

関連するフォーム項目やメニュー内の区分のように、ランドマークではない関連要素のまとまりです。まとまりに意味があるなら名前を付けます。フォーム項目には<fieldset>を優先してください。

使用例
<div role="group" aria-labelledby="addr">
  <h3 id="addr">Delivery address</h3>
  …
</div>

role="toolbar"

文字の書式ボタンのような、コントロールの組です。複数あるときは名前を付けます。Tab順に入るのは一つだけで、コントロール間は矢印キーで移動します。

使用例
<div role="toolbar" aria-label="Formatting">
  <button type="button" aria-pressed="false">Bold</button>
</div>

role="separator"

セクションやメニューの区分の区切りです。<hr>を優先してください。フォーカスできる区切りはペインの大きさを変えるウィジェットになり、aria-valuenowが必要です。

使用例
<div role="separator" aria-orientation="vertical" tabindex="0"
  aria-valuenow="30" aria-label="Resize sidebar"></div>

role="tooltip"

持ち主の要素にフォーカスやポインターがあるときに出る短い説明です。ツールチップ自身はフォーカスを受けません。持ち主がaria-describedbyでこれを指し、Escapeキーで隠せるようにします。

使用例
<button type="button" aria-describedby="tip">Share</button>
<div role="tooltip" id="tip">Copy a link to this page</div>

role="note"

手順の横のヒントのように、本文を補足する注記です。

使用例
<div role="note">
  <p>Tip: keep your receipt.</p>
</div>

role="article"

投稿、コメント、商品カードのような、それだけで完結する内容です。<article>を優先してください。

使用例
<div role="article" aria-labelledby="post-1">
  <h2 id="post-1">Spring menu</h2>
</div>

role="meter"

ディスク使用量やパスワードの強さのように、決まった範囲内の値です。進み具合には使いません。aria-valuenowと名前が必要です。<meter>を優先してください。

使用例
<div role="meter" aria-label="Storage used" aria-valuenow="72"
  aria-valuemin="0" aria-valuemax="100"></div>

role="presentation"

noneの古い名前で、要素のロールを取り除き、内容は残します。フォーカス可能な要素やグローバルなARIAを持つ要素では無視されます。<img alt="">はすでにこのロールを持ちます。

使用例
<ul role="presentation">
  <li role="presentation">…</li>
</ul>
さらに詳しく
比較:意味を取り除く

role="application"

スクリーンリーダーにすべてのキーをページへ渡させ、読み上げ用のキーを止めます。ほとんどの場合は誤りです。すべてのキーを自分で処理し、読む必要のないウィジェットだけに使います。

使用例
<div role="application" aria-label="Map">
  …
</div>

ランドマークロール

8項目

role="region"

ランドマークの一覧に載せるほど重要なセクションです。名前があるときだけランドマークになります。aria-labelledbyを付けた<section>がこのロールを持ちます。

使用例
<section aria-labelledby="cart-title">
  <h2 id="cart-title">Your bag</h2>
</section>

role="form"

フォームを含む領域です。名前があるときだけランドマークになるため、見つけてほしいフォームには名前を付けます。aria-labelかaria-labelledbyを付けた<form>を優先してください。

使用例
<div role="form" aria-label="Newsletter">
  …
</div>

role="complementary"

関連リンクのように、本文を補い、それだけでも意味の通る内容です。複数あるときは名前を付けます。<aside>を優先してください。

使用例
<div role="complementary" aria-label="Related articles">
  …
</div>

ライブリージョンロール

4項目

role="status"

「保存しました」や結果の件数のような案内で、スクリーンリーダーの手が空いたときに読まれます(polite、atomic)。メッセージが届く前から、空のまま置いておきます。

使用例
<p role="status"></p>

role="alert"

読み上げ中の内容を中断してすぐに読まれる、緊急のメッセージです(aria-live="assertive")。すぐに対応が必要なメッセージだけに使い、メッセージが届く前からページに置いておきます。

使用例
<p role="alert"></p>

ウィンドウロール

2項目

role="dialog"

ページの上に開き、操作するウィンドウです。名前を付け、フォーカスを中に移し、ページを操作できなくする場合はaria-modal="true"を付けます。showModal()で開く<dialog>を優先してください。

使用例
<div role="dialog" aria-modal="true" aria-labelledby="d-title">
  <h2 id="d-title">Edit address</h2>
</div>

role="alertdialog"

「このファイルを削除しますか?」のように、応答が必要な緊急のメッセージを持つダイアログです。名前を付け、aria-describedbyで説明を結び付け、フォーカスを中に移します。

使用例
<div role="alertdialog" aria-modal="true" aria-labelledby="d-title"
  aria-describedby="d-text">
  …
</div>

ARIAのステートとプロパティ

5グループ・47項目

名前と説明

6項目

aria-label

値 string

見える文字がない要素、たとえばアイコンだけのボタンに、アクセシブル名を付けます。役割のないdivやspanではなく、操作できる要素やランドマークに使います。見える文字があるときは、音声操作で言えるよう、その文字を名前に含めます。

使用例
<button type="button" aria-label="Search">
  <svg aria-hidden="true">…</svg>
</button>
さらに詳しく
比較:名前と説明
これを使うガイド (41)

aria-labelledby

値 ID reference list

ほかの要素の文字をidで指して、その要素の名前にします。画面に見える文字と名前がずれません。aria-labelや要素自身の内容より優先され、非表示の要素も指せます。

使用例
<h2 id="billing">Billing address</h2>
<section aria-labelledby="billing">…</section>
さらに詳しく
比較:名前と説明
これを使うガイド (32)

aria-describedby

値 ID reference list

名前に説明を加える要素をidで指します。入力欄の下にあるヒントやエラーなどです。スクリーンリーダーはふつう名前と役割の後に読みますが、フォーカスしたときにしか読まないものもあるため、欠かせない情報をここだけに置かないでください。

使用例
<label for="pw">Password</label>
<input id="pw" type="password" aria-describedby="pw-hint">
<p id="pw-hint">At least 12 characters.</p>
関連
aria-descriptionaria-errormessage
さらに詳しく
比較:名前と説明 スクリーンリーダーでの結果

aria-description

ARIA 1.3 草案
値 string

説明を文字列で直接与えます。指す要素のないaria-describedbyのようなものです。見える利用者にも必要な文字は、ページに置いてaria-describedbyで指してください。

使用例
<button type="button" aria-description="Opens in a new window">Help</button>

aria-details

値 ID reference

グラフを説明する表のように、詳しく構造のある説明を持つ要素を指します。aria-describedbyと違って一続きの文として読み上げられるのではなく、対応するスクリーンリーダーでは詳細があることが伝わり、利用者がそこへ移動できます。

使用例
<img src="sales.png" alt="Sales by quarter" aria-details="sales-table">
<table id="sales-table">…</table>

aria-roledescription

値 string

読み上げられる役割の名前を、独自の言葉に置き換えます。カルーセルのグループを「スライド」と読ませる場合などです。使うのはまれにとどめ、実際の役割を持つ要素にだけ付けます。汎用的なdivやspanには付けず、よく知られたウィジェットの名前も変えないでください。

使用例
<div role="group" aria-roledescription="slide" aria-label="2 of 5">
  …
</div>

ウィジェットのステートとプロパティ

22項目

aria-expanded

値 truefalseundefined

操作で表示・非表示が切り替わる内容が、開いているかどうかを表します。パネルではなく、切り替えるボタン、メニューボタン、コンボボックスに付け、そのたびに更新します。何も開かない操作には付けません。

使用例
<button type="button" aria-expanded="false" aria-controls="faq-1">
  Delivery times
</button>
<div id="faq-1" hidden>…</div>

aria-haspopup

値 falsetruemenulistboxtreegriddialog

操作するとポップアップが開くことと、その種類を伝えます。trueはmenuと同じ意味です。role="menu"のメニューのように、開く要素が本当にその役割を持つときにだけ使います。ふつうの内容を表示する開閉ボタンには、代わりにaria-expandedを使います。

使用例
<button type="button" aria-haspopup="menu" aria-expanded="false"
  aria-controls="actions">Actions</button>

aria-pressed

値 truefalsemixedundefined

ボタンを切り替えボタンにし、押されているかを伝えます。太字やミュートなどです。状態が変わっても名前は変えません。ラベルとaria-pressedの両方を変えると、同じことを二重に伝えてしまいます。

使用例
<button type="button" aria-pressed="false">Mute</button>

aria-checked

値 truefalsemixedundefined

独自に作ったチェックボックス、ラジオボタン、スイッチ、チェック付きメニュー項目の状態です。mixedは、一部だけチェックされたグループを表すチェックボックスに使います。変わるたびに更新します。HTML標準のinput type="checkbox"には不要です。

使用例
<div role="checkbox" aria-checked="false" tabindex="0">
  Subscribe
</div>

aria-selected

値 truefalseundefined

タブリスト、リストボックス、グリッド、ツリーで、選ばれている項目を表します。開いているタブや選んだ選択肢です。チェックボックス(aria-checked)や、メニュー内の現在のページ(aria-current)には使いません。

使用例
<button role="tab" aria-selected="true" aria-controls="panel-1">
  Details
</button>

aria-disabled

値 truefalse

要素を無効と伝えながら、フォーカスと読み上げの順序には残します。利用者は見つけて理由を知ることができます。disabled属性と違って何も止めないため、クリックやキー操作はスクリプトで無視させます。

使用例
<button type="submit" aria-disabled="true"
  aria-describedby="why">Pay now</button>

aria-readonly

値 truefalse

独自に作ったウィジェットの値を、読んだりフォーカスしたりはできても変えられないことを伝えます。グリッドのセルやテキストボックスなどです。HTML標準のinputではreadonly属性を使います。

使用例
<div role="textbox" aria-readonly="true" tabindex="0"
  aria-label="Order number">A-10293</div>

aria-required

値 truefalse

入力が必須であることを伝えます。スクリーンリーダー向けで、フォームの送信は止めません。HTML標準の入力欄ではrequired属性が両方を行います。どちらの場合も、見えるラベルにも必須であることを示します。

使用例
<p id="size-q">Size (required)</p>
<div role="radiogroup" aria-labelledby="size-q" aria-required="true">
  <div role="radio" aria-checked="false" tabindex="0">Small</div>
  …
</div>
関連
aria-invalid
さらに詳しく
比較:必須の入力欄

aria-invalid

値 falsetruegrammarspelling

入力値が検証に通らないことを伝え、スクリーンリーダーが「無効」と読み上げるようにします。入力前ではなく、送信時か欄を離れたときに付け、aria-describedbyやaria-errormessageで指す見えるメッセージと組み合わせます。

使用例
<label for="zip">Postcode</label>
<input id="zip" aria-invalid="true" aria-describedby="zip-err">
<p id="zip-err">Enter a 7-digit postcode.</p>

aria-errormessage

値 ID reference

入力欄のエラーメッセージを持つ要素を指します。欄がaria-invalid="true"のときにだけ使われます。対応はまだばらつきがあるため、aria-describedbyでも同じメッセージを指すサイトが多くあります。

使用例
<label for="email">Email</label>
<input id="email" aria-invalid="true" aria-errormessage="email-err">
<p id="email-err">Enter an email address like [email protected].</p>

aria-placeholder

値 string

独自に作った空のテキストボックスや検索欄に表示される短いヒントで、placeholder属性にあたります。ラベルの代わりにはならないため、名前も別に付けます。

使用例
<div role="textbox" contenteditable="true" aria-label="Note"
  aria-placeholder="Add a note"></div>

aria-autocomplete

値 noneinlinelistboth

コンボボックスや入力欄が、入力中に補完を出すことを伝えます。inlineは欄の中で文字を補い、listは候補の一覧を出し、bothは両方です。動きを説明するだけなので、補完そのものはスクリプトで作ります。

使用例
<input role="combobox" aria-label="City" aria-autocomplete="list"
  aria-expanded="false" aria-controls="cities">

aria-multiline

値 truefalse

role="textbox"が複数行を受け付け、Enterキーで送信ではなく改行できることを伝えます。キーの処理はスクリプトで行います。HTML標準のtextareaでは不要です。

使用例
<div role="textbox" contenteditable="true"
  aria-multiline="true" aria-labelledby="msg-label"></div>

aria-modal

値 truefalse

ダイアログがモーダルであることを伝え、スクリーンリーダーがページの残りを操作できないものとして扱うようにします。背後のページが本当に操作できないときにだけ、role="dialog"やalertdialogに付けます。showModal()で開いた<dialog>には不要です。

使用例
<div role="dialog" aria-modal="true" aria-labelledby="dlg-title">
  <h2 id="dlg-title">Delete file?</h2>
</div>

aria-level

値 integer (1 or more)

階層の中での深さです。role="heading"(必須。省略するとブラウザーは通常2として扱います)、ツリーの項目、ツリーグリッドの行に使います。見出しには、role="heading"とaria-levelより、h1〜h6要素を使うほうが確実です。

使用例
<div role="heading" aria-level="2">Shipping</div>

aria-orientation

値 horizontalverticalundefined

スライダー、スクロールバー、区切り線、リストボックス、メニュー、タブリスト、ツールバーなどが横向きか縦向きかを伝えます。どの矢印キーで移動するかの手がかりになります。役割の既定と違うときに指定します。

使用例
<div role="tablist" aria-orientation="vertical" aria-label="Settings">
  …
</div>

aria-sort

値 ascendingdescendingnoneother

表やグリッドが、この列見出しでどちら向きに並べ替えられているかを伝えます。いま並べ替えに使っている見出しにだけ付け、順序を変えるボタンは見出しの中に置きます。

使用例
<th aria-sort="ascending">
  <button type="button">Price</button>
</th>

aria-valuenow

値 number

独自に作ったスライダー、スピンボタン、メーター、スクロールバー、プログレスバーの現在の値です。値が変わるたびに更新します。進み具合が分からないプログレスバーでは付けません。

使用例
<div role="progressbar" aria-valuemin="0" aria-valuemax="100"
  aria-valuenow="60" aria-label="Uploading"></div>

aria-valuemin

値 number

独自に作ったスライダー、スピンボタン、プログレスバー、メーター、スクロールバーの最小値です。HTML標準のrange入力やmeterではmin属性を使います。

使用例
<div role="spinbutton" aria-valuemin="1" aria-valuemax="10"
  aria-valuenow="2" aria-label="Quantity" tabindex="0">2</div>

aria-valuemax

値 number

独自に作ったスライダー、スピンボタン、プログレスバー、メーター、スクロールバーの最大値です。HTML標準のinput type="range"、progress、meterではmax属性を使います。

使用例
<div role="slider" aria-valuemin="0" aria-valuemax="100"
  aria-valuenow="40" aria-label="Volume" tabindex="0"></div>

aria-valuetext

値 string

数値だけでは意味が伝わりにくいときに、aria-valuenowを読みやすい形にしたものです。「水曜日」や「8段階中3」などです。スクリーンリーダーは数値の代わりにこれを読みます。

使用例
<div role="slider" aria-valuemin="1" aria-valuemax="7" aria-valuenow="3"
  aria-valuetext="Wednesday" aria-label="Day" tabindex="0"></div>

関係

12項目

aria-controls

値 ID reference list

操作によって変わる要素を指します。タブや開閉ボタンのパネル、コンボボックスのリストボックスなどです。これを使うスクリーンリーダーは少ないため、aria-expandedや分かりやすい名前の代わりにはなりません。

使用例
<button type="button" aria-expanded="true" aria-controls="filters">
  Filters
</button>
<div id="filters">…</div>

aria-owns

値 ID reference list

DOMの別の場所にある要素を、アクセシビリティツリーではこの要素の子として扱わせます。bodyの末尾に描かれたポップアップなどです。DOMの中で要素を移動できないときにだけ使い、すでに子孫である要素には使いません。

使用例
<div role="menuitem" aria-haspopup="menu" aria-expanded="false"
  aria-owns="more-menu" tabindex="-1">More</div>
<div id="more-menu" role="menu">…</div>

aria-activedescendant

値 ID reference

キーボードのフォーカスをウィジェット自身に置いたまま、その中で操作中の選択肢や項目を指します。矢印キーで候補を移動する間も入力欄にフォーカスが残るコンボボックスなどです。移動のたびに更新し、強調表示もこの値から描きます。

使用例
<input role="combobox" aria-label="City" aria-expanded="true" aria-controls="list"
  aria-activedescendant="opt-2">
<ul id="list" role="listbox">…</ul>

aria-flowto

値 ID reference list

次に読む要素を指して、別の読み順を示します。対応するスクリーンリーダーは少ないため、代わりにDOMの順序を正しくしてください。

使用例
<div id="step-1" aria-flowto="step-2">…</div>
<div id="step-2">…</div>
関連
aria-owns

aria-posinset

値 integer (1 or more)

すべての項目がDOMにあるわけではないとき、選択肢、タブ、ツリーの項目、フィードの記事などの、集合の中での位置を伝えます。aria-setsizeと組み合わせます。項目がすべてあればブラウザーが数えます。

使用例
<article aria-posinset="11" aria-setsize="-1" aria-labelledby="t11">
  …
</article>

aria-setsize

値 integer (-1 if unknown)

項目が属する集合の項目数を、すべてがDOMにないときに伝えます。スクリーンリーダーが「40件中3件目」と言えるようになります。終わりのないフィードのように数が分からないときは-1にします。

使用例
<li role="option" aria-posinset="3" aria-setsize="40">Osaka</li>

aria-rowcount

値 integer (-1 if unknown)

表、グリッド、ツリーグリッドの行の一部だけがDOMにあるとき、たとえばページ送りや遅延読み込みのときに、行の総数を伝えます。総数が分からないときは-1にします。

使用例
<table aria-rowcount="500">
  <tr aria-rowindex="41">…</tr>
</table>

aria-rowindex

値 integer (1 or more)

すべての行がDOMにあるわけではない表、グリッド、ツリーグリッドで、行やセルの位置を1から数えて伝えます。aria-rowcountと組み合わせます。

使用例
<div role="row" aria-rowindex="41">
  <div role="gridcell">Order 41</div>
</div>

aria-rowspan

値 integer (0 or more)

divで作ったARIAの表やグリッドで、セルが何行にまたがるかを伝えます。HTML標準のtdやthではrowspan属性を使います。

使用例
<div role="rowheader" aria-rowspan="3">Morning</div>

aria-colcount

値 integer (-1 if unknown)

表やグリッドの列の一部だけがDOMにあるとき、たとえば仮想化されたグリッドで、列の総数を伝えます。総数が分からないときは-1にします。

使用例
<div role="grid" aria-colcount="24" aria-label="Schedule">
  …
</div>

aria-colindex

値 integer (1 or more)

すべての列がDOMにあるわけではない表やグリッドで、セルの列の位置を1から数えて伝えます。aria-colcountと組み合わせます。

使用例
<div role="row">
  <div role="gridcell" aria-colindex="7">Room 4</div>
</div>

aria-colspan

値 integer (1 or more)

divで作ったARIAの表やグリッドで、セルが何列にまたがるかを伝えます。HTML標準のtdやthではcolspan属性を使います。

使用例
<div role="cell" aria-colspan="2">Total</div>

ライブリージョン

4項目

aria-live

値 offpoliteassertive

要素をライブリージョンにし、内容の変化をスクリーンリーダーに読み上げさせます。politeは読み上げの区切りを待ち、assertiveは割り込むことがあります。文字が変わる前からページに置いておく必要があります。ほとんどのメッセージにはpoliteかrole="status"を使います。

使用例
<div aria-live="polite"></div>
<!-- later, from script: -->
<!-- region.textContent = "Saved"; -->

aria-atomic

値 truefalse

ライブリージョンの一部が変わったとき、全体を読む(true)か、変わった部分だけを読む(false、既定)かを決めます。role="status"とrole="alert"には最初からtrueが含まれるので、自分で書くことはまれです。aria-liveだけを付けた領域で、「かごに3点」のように残りと合わせないと意味が通じない変化があるときに付けます。

使用例
<p aria-live="polite" aria-atomic="true">
  <span id="count">3</span> items in your basket
</p>

aria-relevant

値 additionsremovalstextall (space-separated)

ライブリージョンのどの変化を読み上げるかを決めます。既定はadditions textです。removalsが役立つ場面は少なく、対応も不十分なため、参加者一覧のように項目が消えることに意味がある場合を除き、既定のままにします。

使用例
<ul aria-live="polite" aria-relevant="additions removals"
  aria-label="People in this chat">…</ul>

その他のグローバルなステートとプロパティ

3項目

aria-hidden

値 truefalseundefined

画面には表示したまま、要素とその中身をすべてアクセシビリティツリーから外します。装飾のアイコンや重複した内容に使います。フォーカスできる内容やその祖先にaria-hidden="true"を付けてはいけません。キーボードで到達できるのに、スクリーンリーダーが名前を読めない要素になります。

使用例
<button type="button">
  <svg aria-hidden="true">…</svg>
  Download
</button>
さらに詳しく
比較:コンテンツを隠す比較:意味を取り除く
これを使うガイド (29)

aria-current

値 pagesteplocationdatetimetruefalse

集合の中の現在の項目を表します。いま見ているページへのリンク、手続きの現在の段階、カレンダーの今日などです。ナビゲーションにはaria-selectedではなくこれを使い、見た目でも同じことを示します。

使用例
<nav aria-label="Main">
  <a href="/shop" aria-current="page">Shop</a>
</nav>

aria-keyshortcuts

値 string (keys joined with +, shortcuts separated by spaces)

要素を操作したりフォーカスしたりするキーボードショートカットを、支援技術に伝えます(例:Control+S)。説明するだけなので、キー操作はスクリプトで処理し、ショートカットは見た目でも示します。

使用例
<button type="button" aria-keyshortcuts="Control+S">
  Save <kbd>Ctrl+S</kbd>
</button>

出典