また、 翻訳 もご覧ください。
Copyright © 2025 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
この仕様は、Accessible Rich Internet Applications (WAI-ARIA) 1.2 および Digital Publishing WAI-ARIA Module 1.0 属性を [HTML] 要素で使用するための著者ルール(著者適合要件)を定義します。 この仕様の主な目的は、著者(ウェブ開発者)が利用する適合性チェックツールとともに使用するための要件を定義することです。これらの要件は、ARIA を活用してホスト言語 [HTML] の機能を補完または拡張するカスタムインターフェースやウィジェットを含むウェブコンテンツの開発において、著者の支援となります。
このセクションは、公開時点でのこの文書のステータスについて説明します。現在の W3C の出版物およびこの技術レポートの最新改訂版は W3C 標準と草案のインデックス でご覧いただけます。
ARIA in HTML は [HTML] 仕様モジュールです。この仕様モジュールが参照するが明示的に定義しない HTML の機能、適合要件、用語は HTML Standard で定義されています。
この仕様が 2021年12月9日に W3C 勧告となって以来、以下の重要な追加や修正が提案されています:
label 要素がラベル可能要素と関連付けられていない場合に role および
aria-* 属性を指定できるよう更新。
selectedcontent 要素を追加し、カスタマイズされた select
要素の文脈で使用される button 要素の許可事項を更新。
html 要素は generic 要素であり、document または
generic ロールは推奨されないことを明確化。
img 要素で math ロールを許可するよう更新。
image ロールを img ロールの優先同義語として追加。
hidden 属性と併用する場合の aria-hidden の許可事項を明確化。
separator ロールを許可するよう更新。
img 要素の許可事項を、その要素がアクセシブルな名前を持つかどうかに基づくよう更新。
address および hgroup 要素の許可事項を
group ロールへのマッピングに沿って更新。
aside 要素で dpub doc-glossary ロールの許可。
button、input type=button、input type=image
input type=reset、input type=submit 要素の許可ロールの整合性を取るよう更新。
s 要素の許可ロールを更新し、role=deletion の使用が冗長となる旨を明記。
summary 要素の許可 aria-* 属性とロールを条件付きで修正。
li 要素のロール許可事項を、その要素の祖先関係(リスト要素の親か否か)に応じて更新。
search 要素を追加。
body 要素に aria-hidden=true を禁止。
figure 要素のロール許可に doc-example を追加。
datalist 要素でロールと aria-* 属性を禁止。
aria-checked は checked 属性をサポートする要素では使用しないこと。
nav 要素 で none および presentation ロールを許可。
dl 要素の子である場合の div 要素 のロール許可を制限。
button 要素 に combobox ロールを許可。
input type=button 要素 に combobox および
checkbox ロールを許可。
li 要素 で doc-biblioentry および doc-endnote
ロールの許可事項を変更。
これらのロールは Digital Publishing WAI-ARIA Module 1.1
で非推奨となっています。
img alt="some text" 要素 で radio ロールを許可。
wbr 要素 で none および presentation ロールのみ許可。
br および wbr 要素では
aria-hidden グローバル属性のみ許可。
section 要素 で group ロールを許可。
area 要素(href なし) で link および
button ロールを許可。
picture 要素 で aria-hidden 属性を許可。
文書のレビュー担当者は、文書内で候補追加や修正を識別できます:
候補修正は文書内でマークされています。
候補追加は文書内でマークされています。
この文書は Web Applications Working Group によって 勧告トラックに従い勧告として公開されました。公開以降、 候補の修正 が含まれており、前回の勧告以降に重要な変更や新機能が導入されています。
W3C は、この仕様の Web 標準としての広範な展開を推奨します。
W3C 勧告は、広範な合意形成の後、W3C とそのメンバーにより承認され、 ワーキンググループメンバーが ロイヤリティフリーライセンス で実装することを約束しています。 今後のこの勧告の更新には、 新機能 が組み込まれる可能性があります。
候補追加は文書内でマークされています。
候補修正は文書内でマークされています。
この文書は W3C 特許 ポリシー のもとで運営されているグループにより作成されました。 W3C は、 グループの成果物に関連する公開特許開示リスト を管理しています。そこでは、特許の開示方法の案内も掲載されています。個人が特許に関する実際の知識を持ち、その特許が 必要なクレーム を含んでいると信じる場合は、 W3C 特許ポリシー第6節 に従い情報開示する必要があります。
この文書は 2023年11月3日 W3C プロセス文書 に従って管理されています。
このセクションは規定ではありません(参考情報)
ARIAを利用することで、著者はネイティブHTMLの現在の機能を超えるセマンティクスを指定できます。これは、HTMLだけでは不可能なウィジェットの作成や、ネイティブHTML機能に特定のアクセシブル状態やプロパティを公開する機会を著者に与え、有用です。
例えば、button要素には「押された」状態を公開するネイティブHTML機能がありません。ARIAは、aria-pressed属性を指定することで、要素のセマンティクスを拡張し、コントロールの視覚的な表現と一致する聴覚UIを実現できます。
下記の例では、button要素がウェブアプリケーション内の設定の状態をユーザーが切り替えられるようにしています。aria-pressed属性がbutton要素に付与され、「押された」状態を支援技術のユーザーにも伝えることができます。
<button aria-pressed=true>...</button>
また、特定のroleを持つ要素に対してはaria-*属性が許可されているものの、等価なネイティブ属性は現時点のHTMLでは有効でない場合もあります。
例えば、HTMLにはdisabled状態のハイパーリンク(a href要素)という直接的な概念がありません。<a href="..." disabled> ... </a>のような構文は有効ではなく、支援技術にも伝達されません。
ARIAはこの点でHTMLと異なり、role=linkを明示した要素にはaria-disabled属性の指定を許可します。著者がHTMLのハイパーリンクにaria-disabled=trueを指定しても、ユーザーエージェントは機能的にはハイパーリンクを変化させません(クリック可能なまま)が、支援技術にはdisabled状態として伝達されます。
同様に、ネイティブHTMLのselectの子孫であるoption要素はselectedのみ設定できますが、明示的なrole=optionを持つ要素ではaria-selectedだけでなくaria-checked属性も許可され、ネイティブのselect要素よりも拡張されたウィジェットや構成が可能です。
残念ながら、このようにARIAとHTMLが機能的には同等でも許容範囲が異なる場合、サポートの不一致、さらにはユーザー体験の不整合を生むことがあります。HTMLでサポートされない機能をARIAが許可する場合、著者やユーザーのためには完全なカスタムARIAウィジェットとして実装するほうが望ましい場合があります。
下記の例では、ハイパーリンクをdisabled状態として伝える必要があります。HTMLではハイパーリンクにdisabled属性を使えませんが、aria-disabled=trueを使うことで支援技術にはdisabledとして伝達されます。ただし、要素自体は実際には無効化されません。ハイパーリンクを本当に無効にする最も効果的な方法は、a要素からhrefを削除してプレースホルダー化し、ARIAでリンクの意図する役割や状態を伝えることです。
<a role=link aria-disabled=true>...</a>
このセクションは規定ではありません(参考情報)
ARIAは、異なるロールをユーザーに公開する必要がある場合に要素のロールを修正・訂正するのに有用ですが、例えばbuttonなどのインタラクティブ要素に、非インタラクティブ要素が持つロール(例:見出し)をARIAで上書きするのは、著者やユーザーの利益にならないことがほとんどです。
例として、下記はbutton要素にrole=headingを使用しています。これは許可されません。button要素にはデフォルトの機能があり、見出しロールのユーザー期待と衝突します。
<button role="heading">search</button>
著者は、buttonのデフォルト機能と表示を削除する追加の手順が必要となりますが、それでも、ユーザーがウェブページの利用方法によっては要素の暗黙的な機能を完全に抑制できない場合があります(例:Windowsのハイコントラストテーマやブラウザのリーダーモードで閲覧する場合など)。
下記の例では、button要素に明示的にrole=buttonを指定しています。これは不要です。なぜなら「button」要素はすでに暗黙的にbuttonロールとして公開されるからです。実際、この冗長指定は予期しない副作用はほぼありませんが、マークアップが冗長になり、他の著者に誤った有用性を示すことになります。不要なロール指定が問題となる例については3.3
副作用に注意するセクションを参照してください。
<!-- このような指定は避けてください! -->
<button role="button">...</button>
同様に、下記はfieldset要素にrole=group、main要素にrole=Mainを指定しています。これも不要です。fieldsetは暗黙的にrole=groupとして、mainも暗黙的にrole=mainとして公開されます。これらは、ASCII小文字で宣言されている限り、支援技術ユーザーに副作用は基本的にありません。詳細は4.4 ARIAロール・状態・プロパティ属性の大文字小文字の要件を参照してください。
<!-- このような指定は避けてください! -->
<fieldset role="group">...</fieldset>
<!-- またはこのような指定も避けてください! -->
<main role="Main">...</main>
下記は、ul要素にrole=listを指定しています。ul要素は暗黙的にlistロールを持つため、明示的な指定は一般的に冗長です。しかし、一部のユーザーエージェントではリストマーカーが視覚的に除去された場合、リストの暗黙的ARIAセマンティクスを抑制することがあります。このような特定状況や、ロールの公開が必要な場合は、明示的な指定が許容されます。
<!-- 基本的にはこのような指定は避けてください! -->
<ul role="list">...</ul>
下記は、summary要素にrole=buttonを指定しています。これは不要であり、プラットフォーム間の問題を引き起こす可能性があります。例えば、要素の状態が正しく公開されなくなったり、buttonロールが強制されることで、本来公開されるはずのプラットフォームやブラウザ固有のロールが失われることがあります。
<details>
<!-- このような指定は避けてください! -->
<summary role="button">more information</summary>
...
</details>
Accessible
Rich Internet Applications (WAI-ARIA) 1.2 では、著者による使用が想定されていない多くのロールが定義されています。その多くは抽象ロールとして分類され、著者による利用は明示的に禁止されています。下記は、著者が本来comboboxロールを使うべきところで抽象的なselectロールを誤用した例です。
<!-- このような指定はしないでください! -->
<div role="select" ...>...</div>
ARIAには、より特定のARIAセマンティクスを持たないHTML要素と機能的に等価なgenericロールも定義されています。例えばHTMLのdivやspanなどです。ARIAではgenericロールの使用は、ユーザーエージェントの実装者向けであり、著者の利用は推奨されません。
下記の例では、genericロールの代わりにdiv要素をarticle要素の代替として使用することが推奨されます。HTML要素の変更が不可能な場合は、暗黙のロールを除去するためにpresentationやnoneロールを指定してもかまいません。
<!-- このような指定は避けてください! -->
<article role="generic" ...>...</article>
さらにARIAでは、ホスト言語セマンティクスとの衝突において、著者が状態やプロパティを公開するためにHTMLのネイティブ機能とARIA属性の両方を使用した場合、ホスト言語の機能が優先されると明記しています。
例えば、下記の例では著者がHTMLのinput type=checkboxにaria-checked=trueを指定しています。しかし、ユーザーエージェントはaria-checked属性を無視し、フォームコントロールのネイティブ機能に基づいて状態を公開します。
<!-- このような指定はしないでください! -->
<input type="checkbox" checked aria-checked="false">
ARIAによってHTMLの機能が支援技術ユーザーにどのように公開されるかを変更できますが、これらの修正はHTMLのパースや許可されるコンテンツモデル自体には影響しません。例えば、div要素は任意のロール指定が可能ですが、HTMLの定義したルールと異なる使い方ができるわけではありません。
下記の例では、著者がdiv要素にlinkロールを指定しています。HTMLではハイパーリンク(role=link)はp要素の子孫として許可されていますが、HTMLパーサではdiv要素をp要素の子孫にすることは許可されていません。
<!-- このような指定はしないでください! -->
<p>
... <div role=link tabindex=0>...</div> ...
</p>
HTMLパーサは上記のマークアップを以下のように修正して出力します:
<!-- 上記のマークアップは以下のようにレンダリングされます -->
<p>...</p>
<div role=link tabindex=0>...</div>
...
<p></p>
<!-- divの代わりにspanを使いましょう。spanはp要素の子孫として許可されています! -->
<p>
... <span role=link tabindex=0>...</span> ...
</p>
本仕様は各HTML要素に指定可能なARIA属性を示しますが、たとえロールの指定が許可されていても、使用する文脈によってはレンダリングやアクセシビリティ上の問題になる場合があることを示しています。
次の表は、HTML文書内でARIAマークアップを使用する際の各要素ごとの規定適合要件を示します。加えて、暗黙のARIAセマンティクスが適用されるHTML要素も特定しています。これらの要素の暗黙のARIAセマンティクスは、HTML AAMで定義されています。
1列目のセルに記載された各言語機能(要素)は、同じ行の2列目のARIAセマンティクス(ロール、状態、プロパティ)を暗示します。各行の3列目は、著者が要素に指定できるARIA
role値やaria-*属性を定義します。3列目に任意のroleという用語が含まれる場合、その要素には任意のrole値MAY指定可能です。ただし、暗黙のロールやgenericロール、ARIAで非推奨のロールはNOT
RECOMMENDEDです。
3列目にロール指定不可という用語が含まれる場合、その要素の暗黙のARIAセマンティクスやHTMLのネイティブセマンティクスを著者が上書きすることはMUST NOTです。
WAI-ARIAでは、禁止されている状態やプロパティがあるロールが定義されています。これらのロールには特定のWAI-ARIA属性を著者が指定できません。暗黙のWAI-ARIAロールを持つHTML要素も、同様にこれらの属性の指定を禁止します。
命名禁止と識別される要素は、著者がMUST
NOTでaria-labelやaria-labelledby属性を指定してはいけません。ただし、要素の暗黙のロールが、著者による命名を許可する明示的なWAI-ARIAロールで上書きできる場合は除きます。詳細は4.1
ARIA属性による要素命名要件を参照してください。
ARIA roleやaria-*属性を、暗黙のARIAセマンティクスと一致する値で設定することはNOT
RECOMMENDEDですが、状況によっては明示的な設定が有用となる場合があります(例:一部のユーザーエージェントが特定の要素に暗黙のARIAセマンティクスを公開しない場合)。
Digital
Publishing WAI-ARIA Module 1.0
のrole値は下表の通り使用しても適合しますが、これらのロールはウェブサイト実装用途ではありません。デジタル出版業界以外の目的でこれらのロールを使う場合、意図した体験をユーザーに提供できるか追加のテストが必要です。
| HTML要素 |
暗黙のARIAセマンティクス (これらをマークアップで明示的に指定することは NOT RECOMMENDED) |
ARIAロール・状態・プロパティの許容 |
|---|---|---|
a
に
href
がある場合
|
role=link
|
ロール:
DPubロール:
グローバル
注
リンクをプログラム的に「無効」と伝える必要がある場合は、
href属性を削除してください。
|
a
で
href
がない場合
|
role=generic
|
任意の
それ以外は、グローバル
|
abbr
|
対応するロールなし |
それ以外は、グローバル
|
address
|
role=group
|
任意の
それ以外は、グローバル
|
area
に
href
がある場合
|
role=link
|
他の
グローバル |
area
で
href
がない場合
|
role=generic
|
ロール:
それ以外は、グローバル
|
article
|
role=article
|
ロール:
グローバル |
aside
|
role=complementary
|
ロール:
DPubロール:
グローバル |
audio
|
対応するロールなし |
ロール:
グローバル |
| 自律型カスタム要素 |
著者が定義した
それ以外は |
それ以外は、任意の
命名禁止(
それ以外は、グローバル
|
b
|
role=generic
|
任意の
それ以外は、グローバル
|
base
|
対応するロールなし | |
bdi
|
role=generic
|
任意の
それ以外は、グローバル
|
bdo
|
role=generic
|
任意の
それ以外は、グローバル
|
blockquote
|
role=
|
任意の
グローバル |
body
|
role=generic
|
それ以外は、グローバル
|
br
|
対応するロールなし |
ロール:
著者はMAY、 |
button
|
|
ロール:
グローバル
|
canvas
|
対応するロールなし |
グローバル |
caption
|
role=
|
他の
それ以外は、グローバル
|
cite
|
対応するロールなし |
それ以外は、グローバル
|
code
|
role=
|
任意の
それ以外は、グローバル
|
col
|
対応するロールなし | |
colgroup
|
対応するロールなし | |
data
|
role=generic
|
任意の
それ以外は、グローバル
|
datalist
|
role=listbox
|
|
dd
|
対応するロールなし |
グローバル |
del
|
role=
|
任意の
それ以外は、グローバル
|
details
|
role=group
|
他の
グローバル |
dfn
|
role=term
|
任意の
グローバル |
dialog
|
role=dialog
|
ロール:
グローバル |
div
|
role=generic
|
直接の親が
それ以外は、グローバル
|
dl
|
対応するロールなし |
ロール:
グローバル |
dt
|
対応するロールなし |
ロール:
グローバル |
em
|
role=
|
任意の
それ以外は、グローバル
|
embed
|
対応するロールなし |
ロール:
グローバル |
fieldset
|
role=group
|
ロール:
グローバル |
figcaption
|
対応するロールなし |
ロール:
それ以外は、グローバル
|
figure
|
role=figure
|
DPubロール:
それ以外で、
グローバル |
footer
|
先祖に
それ以外の場合は |
ロール:
DPubロール:
命名禁止(
それ以外は、グローバル
|
form
|
|
ロール:
グローバル 注
|
| フォーム関連カスタム要素 |
著者が定義した
それ以外は |
それ以外の場合のフォーム関連ロール:
命名禁止(
それ以外は、グローバル
|
h1 ~ h6
|
role=heading、
aria-level = 要素のタグ名の数字
|
ロール:
DPubロール:
グローバル |
head
|
対応するロールなし | |
header
|
先祖に
それ以外の場合は |
ロール:
命名禁止(
それ以外は、グローバル
|
hgroup
|
role=group
|
任意の
グローバル |
hr
|
role=separator
|
ロール:
DPubロール:
グローバル |
html
|
role=generic
|
他の
|
i
|
role=generic
|
任意の
それ以外は、グローバル
|
iframe
|
対応するロールなし |
ロール:
グローバル |
imgに空でない
alt
(alt="some text")がある、または他の
imgの命名手段
によりアクセシブル名が付与されている場合、あるいはimgにaltがなく名前も与えられていない場合:role=img or image
|
ロール:
DPubロール:
グローバル |
|
img
(アクセシブル名なし)
|
|
それ以外で、 |
input type=button
|
role=button
|
ロール:
グローバル |
input type=checkbox
|
role=checkbox
|
ロール:
著者はMUST NOT
それ以外は、あらゆるグローバル
注
HTMLの
|
input type=color
|
対応するロールなし |
グローバル |
input type=date
|
対応するロールなし |
グローバル |
input type=datetime-local
|
対応するロールなし |
グローバル |
input type=email
で
list
属性なし
|
role=textbox
|
他の
グローバル |
input type=file
|
対応するロールなし |
グローバル |
| 対応するロールなし | ||
input type=image
|
role=button
|
次のロールは許可されますが、NOT RECOMMENDEDです:
グローバル
可能であれば、指定したロールを許可する別のHTML要素(例: |
input type=month
|
対応するロールなし |
グローバル |
input type=number
|
role=spinbutton
|
他の
グローバル |
input type=password
|
対応するロールなし |
グローバル |
input type=radio
|
role=radio
|
ロール:
著者はMUST NOT
それ以外は、あらゆるグローバル
注
HTMLの
|
input type=range
|
role=slider
|
他の
著者はSHOULD NOT、
それ以外は、あらゆる
グローバル |
input type=reset
|
role=button
|
|
input type=search、
かつ
list
属性なし
|
role=searchbox
|
他の
グローバル |
input type=submit
|
role=button
|
|
input type=tel、
かつ
list
属性なし
|
role=textbox
|
他の
グローバル |
input type=text
またはtypeが欠落・無効で、
list
属性なし
|
role=textbox
|
ロール:
グローバル |
input type=text、
search、
tel、
url、
email、
またはtypeが欠落・無効で、
list
属性あり
|
role=combobox
|
他の
指定の
それ以外は、あらゆる
グローバル |
input type=time
|
対応するロールなし |
グローバル |
input type=url
で
list
属性なし
|
role=textbox
|
他の
グローバル |
input type=week
|
対応するロールなし |
グローバル |
ins
|
role=
|
任意の
それ以外は、グローバル
|
kbd
|
対応するロールなし |
グローバル |
label
|
対応するロールなし |
それ以外で、 命名禁止(
それ以外は、グローバル
|
legend
|
対応するロールなし |
それ以外は、グローバル
|
li
|
それ以外で、 |
他の
それ以外で、親のリスト要素が暗黙または明示的な
グローバル 著者は次の非推奨のDPubロールを使用してはSHOULD
NOT:
|
link
|
対応するロールなし | |
main
|
role=main
|
他の
グローバル |
map
|
対応するロールなし | |
mark
|
対応するロールなし |
それ以外は、グローバル
|
math
|
role=math
|
他の
グローバル |
menu
|
role=list
|
ロール:
グローバル |
meta
|
対応するロールなし | |
meter
|
role=
|
他の
著者はSHOULD NOT、
それ以外は、任意の
グローバル |
nav
|
role=navigation
|
ロール:
DPubロール:
グローバル |
noscript
|
対応するロールなし | |
object
|
対応するロールなし |
ロール:
グローバル |
ol
|
role=list
|
ロール:
グローバル |
optgroup
|
role=group
|
他の
グローバル |
option
要素がlist of
options
に含まれている、または
datalist
の候補を表している場合
|
role=option
|
他の
著者はSHOULD NOT、
グローバル |
output
|
role=status
|
任意の
グローバル |
p
|
role=
|
任意の
それ以外は、グローバル
|
param
|
対応するロールなし | |
picture
|
対応するロールなし |
著者はMAY、 |
pre
|
role=generic
|
任意の
それ以外は、グローバル
|
progress
|
role=progressbar
|
他の
著者はSHOULD NOT、
それ以外は、
任意のグローバル |
q
|
role=generic
|
任意の
それ以外は、グローバル
|
rp
|
対応するロールなし |
グローバル |
rt
|
対応するロールなし |
それ以外は、グローバル
|
ruby
|
対応するロールなし |
グローバル |
s
|
role=
|
任意の
それ以外は、グローバル
|
samp
|
role=generic
|
任意の
それ以外は、グローバル
|
script
|
対応するロールなし | |
search
|
|
ロール:
グローバル |
section
|
それ以外は、 |
ロール:
DPubロール:
グローバル |
select
(multiple属性がなく、size
属性の値が1より大きくない場合)
|
role=combobox
|
ロール:
著者はSHOULD NOT、
それ以外は、
任意のグローバル |
select
(multiple属性がある、またはsize属性の値が
1より大きい場合)
|
role=listbox
|
他の
著者はSHOULD NOT、
それ以外は、
任意のグローバル |
selectedcontent
|
role=generic
|
それ以外で、その要素がカスタマイズ可能な
それ以外は、グローバル
|
slot
|
対応するロールなし | |
small
|
role=generic
|
任意の
それ以外は、グローバル
|
source
|
対応するロールなし | |
span
|
role=generic
|
任意の
それ以外は、グローバル
|
strong
|
role=
|
任意の
それ以外は、グローバル
|
style
|
対応するロールなし | |
sub
|
role=
|
任意の
それ以外は、グローバル
|
summary
|
注
多くの(ただしすべてではない)ユーザーエージェントは、
summary要素を暗黙の ARIA
role=buttonとして公開します。
|
グローバル
それ以外では、著者はMAY、任意の
|
sup
|
role=superscript
|
任意の
それ以外は、グローバル
|
SVG
|
role=graphics-document(
SVG AAMで定義)
|
任意の
グローバル |
table
|
role=table
|
任意の
グローバル |
tbody
|
role=rowgroup
|
任意の
グローバル |
td
|
先祖の
先祖の
先祖の |
先祖の
それ以外で、先祖の
グローバル |
template
|
対応するロールなし | |
textarea
|
role=textbox
|
他の
グローバル |
tfoot
|
role=rowgroup
|
任意の
グローバル |
th
|
先祖の
先祖の
先祖の |
先祖の
それ以外で、先祖の
グローバル |
thead
|
role=rowgroup
|
任意の
グローバル |
time
|
role=time
|
任意の
それ以外は、グローバル
|
title
|
対応するロールなし | |
tr
|
role=row
|
先祖の
グローバル |
track
|
対応するロールなし | |
u
|
role=generic
|
任意の
それ以外は、グローバル
|
ul
|
role=list
|
ロール:
グローバル |
var
|
対応するロールなし |
それ以外は、グローバル
|
video
|
対応するロールなし |
ロール:
グローバル |
wbr
|
対応するロールなし |
ロール:
著者はMAY、 |
表の第2列で 対応するロールなし とマークされた要素は、
暗黙の ARIA
セマンティクスは持ちませんが、
意味自体はあり、その意味は ARIA が提供しないロール・状態・プロパティで表現されうるほか、
アクセシビリティ API を通じて支援技術の利用者に公開される場合があります。
そのため、著者は列挙された要素のセマンティクスを上書きするのではなく、
role 属性を
div
や
span
のようなセマンティクス的に中立な要素に追加することが推奨されます。
本書で提供している内容を超えて、HTML で ARIA を使用する際の指針として、 次の文書を参照することを推奨します。
著者は、暗黙または明示的に、著者による命名が許可される ARIA ロールを持つ要素に対して、
aria-label および aria-labelledby
属性を用いてアクセシブル名を指定しても
MAY です。Accessible Rich Internet Applications (WAI-ARIA)
1.2 は、著者による命名が許可されるロールと、
著者による命名が禁止されるロールを定義しています。
著者は、暗黙の WAI-ARIA ロールが命名不可である要素に対して
aria-label や aria-labelledby を指定しては
MUST NOT です。暗黙の WAI-ARIA ロールが著者による命名を禁止する HTML 要素は、
4.
HTML における ARIA 属性使用の文書適合要件で示されています。
次のマークアップ例は、著者による命名が禁止されている暗黙の ARIA ロールを持つ HTML 要素の例を示します。
<!-- 次のようにしてはなりません! -->
<p aria-label="...">...</p>
<span aria-label="...">...<span>
<code aria-label="...">...<code>
<div aria-labelledby="...">...</div>
次のマークアップ例は、著者による命名が許可される明示的な WAI-ARIA ロールを持つ要素を示します。
これらの要素には明示的なロールが指定されているため、aria-label および
aria-labelledby 属性が許可されます。
<p role="link" tabindex="0" aria-label="...">...</p>
<span role="button" tabindex="0" aria-label="...">...<span>
<div role="article" aria-labelledby="...">...</div>
特に断りがない限り、著者は aria-* 属性のセマンティクスが想定される HTML 要素において、
HTML の同等属性の代わりに aria-* 属性を使用しても MAY です。
例えば、著者は
button
要素に aria-disabled=true を指定し、機能的に button を無効化するために必要なスクリプトを実装することができます。
これは disabled 属性を用いる代わりの方法です。
WAI-ARIA
のホスト言語セマンティクスとの競合で述べられているように、
HTML 要素が aria-* 属性とホスト言語(HTML)の同等属性を両方使用する場合、
ユーザーエージェントは MUST WAI-ARIA 属性を無視し、
同じ暗黙の ARIA
セマンティクスを持つ
ネイティブ HTML 属性を優先します。このため、著者は要素にネイティブの HTML 属性と同等の
aria-* 属性の両方を指定すべきでは SHOULD NOT ありません。
それぞれの属性について、著者向けの追加要件がないか確認してください。
次の表は、aria-* 属性に同等性を持つ HTML 要素とその属性を示します。
第1列の各セル(言語機能:要素と属性)は、同じ行の第2列に示す ARIA のセマンティクス(状態・プロパティ)を暗黙に意味します。
各行の第3列は、ネイティブの HTML 機能の使い方と、同じ
暗黙の ARIA
セマンティクス
を提供する aria-* 属性の使用要件を定義します。
| HTML 機能 |
暗黙の ARIA セマンティクス |
HTML 機能と aria-* 属性の作成ガイダンス
|
|---|---|---|
checked
属性が許可されている任意の要素
|
aria-checked="true"
|
HTML で
著者は、要素の
checkedness
や未確定のチェック状態が
著者は、当該属性を許可する WAI-ARIA ロールを持つその他の要素に対しては、
|
disabled
属性が許可されている任意の要素(
option
の
disabled
および
optgroup
の
disabled
を含む)
|
aria-disabled="true"
|
HTML で
著者は、HTML で
著者は、
著者は、 |
placeholder
属性が許可されている任意の要素
|
aria-placeholder="..."
|
HTML で
著者は、HTML で
著者は、 |
max 属性が許可されている任意の要素:
meter
の
max、
progress
の
max、
そして input
の
max
|
aria-valuemax="..."
|
HTML で
著者は、
著者は、
著者は、 |
min 属性が許可されている任意の要素:
meter
の
min
および input
の
min
|
aria-valuemin="..."
|
HTML で
著者は、
著者は、
著者は、 |
readonly 属性が許可されている任意の要素:
input
の
readonly、
textarea
の
readonly
および フォーム関連
カスタム要素 で
readonly
を許可するもの
|
aria-readonly="true"
|
HTML で
著者は、当該属性を許可する WAI-ARIA ロールを持つ任意の要素に対して、
著者は、
著者は、 |
|
注
これは |
aria-readonly="false"
|
著者は、isContentEditable="true" を持つ要素に
aria-readonly="true" を設定しては MUST NOT です。
|
required 属性が許可されている任意の要素:
input
の
required、
textarea
の
required、
および select
の
required
|
aria-required="true"
|
HTML で
著者は、HTML で
著者は、
著者は、 |
colspan
属性が許可されている任意の要素:td および th
|
aria-colspan="..."
|
HTML で
著者は、
著者は、 |
rowspan
属性が許可されている任意の要素:
td および th
|
aria-rowspan="..."
|
HTML で
著者は、
著者は、 |
ARIA 仕様の Deprecated Requirements 節では、ARIA 機能が廃止予定としてマークされている場合、新しいコンテンツでは当該機能を使用しないよう著者に助言しています。
次に示すロールおよび属性は、ARIA と DPub ARIA における廃止予定の機能です。適合性チェッカーはこれらの機能が廃止予定であることについて著者に対して警告しなければ MUST ありません。可能な限り、著者は廃止予定機能の代替手段を使用することが推奨されます。
directory ロールは WAI-ARIA
1.2 において廃止予定としてマークされています。実際には、directory ロールは、暗黙または明示的に
list ロールを持つ要素と機能的な違いがありません。著者は HTML のネイティブなリスト要素、または ARIA の
list のいずれかを使用することが推奨されます。
doc-biblioentry と doc-endnote のロールは、Digital Publishing WAI-ARIA Module
1.1 において廃止予定としてマークされています。これは、暗黙または明示的に
list ロールを持つ要素にとって有効な子ではないためです。著者は、これらのロールを用いなくても、標準的なリストおよび子の
li 要素を使用できます。
aria-dropeffect と aria-grabbed 属性は
WAI-ARIA
1.1 において廃止されました。現時点では、提案されていた機能を置き換える ARIA の機能は存在しません。
著者は、すべての role のトークン値および、その値が
トークンとして定義されている任意の状態またはプロパティ属性(aria-*)について、
ASCII 小文字を使用すべきである
SHOULD。
現代のブラウザーは role や aria-* の属性値を
ASCII
の大文字小文字を区別しない
ものとして扱いますが、すべての支援技術がこれらの値を正しく解析するとは限りません。
相互運用性の問題を減らすために、aria-* および role の属性値には
ASCII
小文字を使用することを強く推奨します。
さらに、著者は異なるブラウザーと支援技術の組み合わせで厳密にテストし、コンテンツが利用者に正しく公開されることを確認することが望まれます。
本節は参考(規範的でない)です。
次の表は、Kinds of
content(コンテンツの種類)と
許可される子孫に関する情報(
[HTML]
仕様で定義)を、等価な role を持つ要素へと対応付け(必要に応じて拡張)したものです。
第1列は、各 ARIA の role についての規範的な定義(Accessible Rich Internet Applications (WAI-ARIA)
1.2)へのリンクです。
第2列は、HTML 要素上で role が使用された場合に、その Kinds of
content のどのカテゴリに属するかを示します。
第3列は、明示的な role が指定された要素に、どの種類の HTML 要素を子孫として含められるかを示し、しばしば同じ暗黙のロールを持つ
HTML 要素と一致します。
例えば、
button
要素には暗黙の role=button があります。
HTML において button 要素は子孫として Phrasing content を許容し、
Interactive content
や tabindex 属性を持つ子孫は許容しません。したがって、role=button が指定された任意の要素も
同じ子孫制限に従い、インタラクティブコンテンツの子孫や、tabindex が指定された要素、さらに(第3列で示される)
インタラクティブコンテンツカテゴリに属するロール値を持つ要素を子孫として許容しません。
<!-- 適合性チェッカーはエラーを報告します -->
<button>
<div role="button">...</div>
</button>
<div role="button">
<button>...</button>
</div>
<div role="link">
<textarea>...</textarea>
</div>
さらに、一部のロールについては、Accessible Rich Internet Applications (WAI-ARIA) 1.2 により許可される子孫に関する特定の要件が定義されています。これらは第3列(子孫の許容)において、 当該ロールについて「“Required Owned Elements” を参照」と明記して識別しています。
非規範的と明記されたセクションだけでなく、本仕様書中のすべての著作ガイドライン、図、例、および注記も非規範的です。それ以外のすべては規範的です。
本書における MAY、MUST、MUST NOT、NOT RECOMMENDED、SHOULD、および SHOULD NOT というキーワードは、 BCP 14 [RFC2119] [RFC8174] に記載された通りに解釈されます。 ただし、本書のようにすべて大文字で現れる場合のみです。
HTMLドキュメント内のARIAのチェックに対応していることを謳う適合性チェッカーは、
MUST 本仕様で定義される通りに
role および aria-* 属性の適合要件のチェックを実装しなければなりません。
対象はHTML要素です。
適合するドキュメントは、著者定義の role
または aria-* 属性に関して、本仕様に従い各 HTML要素ごとに
著者が MAY とされた値以外を含んでは MUST NOT です。
適合性チェッカーは、著者が
暗黙のARIAセマンティクスと一致する
role を明示的に付与している場合を
エラーとしてフラグ付けすべきです SHOULD。
これは、これらロールを明示的に指定することは NOT RECOMMENDED だからです。
適合性チェッカーは、ドキュメントが本仕様に適合しない場合に、その独自の用語や重大度レベルを定義しても MAY です。
本節は非規範的です。
本仕様では [wai-aria-1.2]、 [dpub-aria-1.0]、 [HTML] の機能自体は定義しません。 代わりに、HTMLにおけるARIAのチェックに対応する適合性チェッカーのためのルールや指針、また著者へのガイドラインを提供します。
よって、本仕様は新たな機能を定義しないため、潜在的な懸念を導入するプライバシーやセキュリティへの影響は知られていません。
Referenced in:
Referenced in:
Referenced in:
Referenced in: