また、 翻訳 もご覧ください。
Copyright © 2026 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.1 の属性を、[HTML] 要素で使用する際の作成規則(著者の遵守要件)を定義します。 本仕様書の主な目的は、著者(すなわちウェブ開発者)が使用する適合性チェックツールとともに利用するための要件を定めることです。これらの要件は、 ARIA を活用してホスト言語 [HTML] の機能を補完または拡張するカスタムインターフェイスやウィジェットを含む ウェブコンテンツの開発において、著者を支援します。
このセクションでは、この 文書が発行された時点でのステータスを説明します。現在のW3C の発行物の一覧や、この技術レポートの最新版は、 W3C標準および草案索引に掲載されています。
ARIA in HTMLは[HTML]仕様モジュールです。この仕様モジュールが参照するHTMLの機能・適合要件・用語で、ここで明示的に定義されていないものは、HTML Standardによって定義されます。
この仕様は2021年12月9日にW3C勧告となって以来、次のような本質的な追加や/または修正が提案されています:
summary 要素のロールおよび属性に関する説明を明確化。
label 要素がラベル可能要素と関連付けられていない場合に role および
aria-* 属性を指定できるように更新。
selectedcontent 要素を追加し、カスタマイズされた select
要素の文脈で使用される button 要素の許可事項を更新。
html 要素は generic 要素であり、document や
generic のロールは推奨されないことを明確化。
img 要素で math ロールを許可するように更新。
image ロールを img ロールの推奨される同義語として追加。
aria-hidden を hidden 属性と併用する際の許可事項を明確化。
separator ロールを許可。
img 要素の許可事項を、その要素がアクセシブル名をもつかどうかに基づいて更新。
address および hgroup
要素のマッピング更新に伴う許可事項の更新。
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 ロールを許可。
href属性なしのarea要素で link と button
ロールを許可。
picture 要素で aria-hidden 属性を許可。
本書のレビュー担当者は、文書中の独特なスタイルによって候補となる追加や修正を識別できます。
候補となる修正は文書中でマークされています。
候補となる追加は文書中でマークされています。
本書はAccessible Rich Internet Applications ワーキンググループによって、 勧告トラックを用いて 勧告として発行されました。これには、 候補となる修正が含まれており、 前回の勧告以降の実質的な変更や新機能が導入されています。
W3Cは本仕様のウェブ標準としての広範な展開を推奨します。
W3Cの勧告は、十分な合意形成ののち W3Cおよびそのメンバーによって承認され、 ワーキンググループのメンバーは実装について ロイヤリティフリーライセンス を約束しています。 今後の改訂では新機能が盛り込まれることがあります。
候補となる追加は文書中でマークされています。
候補となる修正は文書中でマークされています。
本書は W3C 特許ポリシー に基づいて活動するグループにより作成されました。 W3Cは 当該グループの成果物について 特許開示の公開リスト を運営しています。そのページには特許開示の方法も記載されています。 もし、何らかの特許に関して 必須特許請求 が含まれていると個人が認識した場合は、 W3C特許ポリシー第6節に従って情報を開示する必要があります。
本書は 2025年8月18日版 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セマンティクス
(role, states, properties)を暗に持つことを示します。
各行の3列目のセルには、著者がその要素に指定してもよいARIA role値および aria-*
属性が記載されています。
3列目のセルに任意の
role
という語が含まれている場合は、その要素に任意のrole値指定できます。ただし、
要素の暗黙のroleやgeneric role、あるいは
ARIAで非推奨となったroleを
これらの要素に指定することは推奨されません。
3列目のセルにNo
roleとあれば、
著者はHTML要素の暗黙のARIAセマンティクスやネイティブのセマンティクスを上書きしてはなりません。
WAI-ARIAは、 禁止されたstateやpropertyを持つroleを定義しています。 これらのroleでは著者による特定のWAI-ARIA属性の指定が許可されません。 これらの暗黙のWAI-ARIA roleを持つHTML要素も、著者によるこれらのWAI-ARIA属性の指定を禁止します。
命名禁止と特定されている要素は、 その要素が著者による命名を許可する明示的なWAI-ARIA roleで暗黙のroleを上書きできない限り、 著者はaria-labelやaria-labelledbyを指定してはなりません。 詳細は4.1 要素名称付与用ARIA属性の使用要件をご覧ください。
暗黙のARIAセマンティクスに一致するARIA roleやaria-*属性を設定することは
推奨されませんが、
状況によっては、こうした属性を明示的に設定することが有益となる場合もあります(たとえば、
特定の要素の暗黙のARIAセマンティクスを公開しないユーザーエージェント向け等)。
以下の表に記載のDigital Publishing WAI-ARIA Module 1.1
のrole値使用は適合ですが、これらのroleはウェブサイト実装向けではありません。デジタル出版分野以外に用いる場合は、
意図したユーザー体験を担保するための追加の手動テストが必要となります。
| HTML要素 |
暗黙のARIAセマンティクス (これらをマークアップで明示的に指定することは NOT RECOMMENDED) |
ARIAロール・状態・プロパティの許容 |
|---|---|---|
a
(
href
あり)
|
role=link
|
ロール:
DPub ロール:
グローバル
注
リンクをプログラム的に「無効」として伝える必要がある場合は、
href
属性を削除してください。
|
a
href属性なし
href
|
role=generic
|
任意の
それ以外の場合、グローバル
|
abbr
|
対応するroleなし |
それ以外の場合、グローバル
|
address
|
role=group
|
それ以外の場合、グローバル
|
area
href属性あり
href
|
role=link
|
role不可
ただし
グローバル |
area
href属性なし
href
|
role=generic
|
Role:
それ以外の場合、グローバル
|
article
|
role=article
|
Role:
グローバル |
aside
|
role=complementary
|
Role:
DPub Role:
グローバル |
audio
|
対応するroleなし |
Role:
グローバル |
| 自律カスタム要素 |
著者定義の
それ以外の場合 |
それ以外の場合は、任意の
命名禁止:
それ以外の場合、グローバル
|
b
|
role=generic
|
任意の
それ以外の場合、グローバル
|
base
|
対応するroleなし |
role不可、 |
bdi
|
role=generic
|
任意の
それ以外の場合、グローバル
|
bdo
|
role=generic
|
任意の
それ以外の場合、グローバル
|
blockquote
|
role=
|
任意の
グローバル |
body
|
role=generic
|
role不可
(ただし
それ以外の場合、グローバル
|
br
|
対応するroleなし |
Role:
著者はaria-hidden属性を |
button
|
|
Role:
グローバル
|
canvas
|
対応するroleなし |
グローバル |
caption
|
role=
|
role不可
ただし
それ以外の場合、グローバル
|
cite
|
対応するroleなし |
それ以外の場合、グローバル
|
code
|
role=
|
それ以外の場合、グローバル
|
col
|
対応するroleなし |
No |
colgroup
|
対応するroleなし |
No |
data
|
role=generic
|
任意の
それ以外の場合、グローバル
|
datalist
|
role=listbox
|
|
dd
|
対応するroleなし |
グローバル |
del
|
role=
|
任意の
それ以外の場合、グローバル
|
details
|
role=group
|
No
グローバル |
dfn
|
role=term
|
グローバル |
dialog
|
role=dialog
|
Role:
グローバル |
div
|
role=generic
|
もし
それ以外の場合、グローバル
|
dl
|
対応するroleなし |
Role:
グローバル |
dt
|
対応するroleなし |
Role:
グローバル |
em
|
role=
|
任意の
それ以外の場合、グローバル
|
embed
|
対応するroleなし |
Role:
グローバル
|
fieldset
|
role=group
|
Role:
グローバル |
figcaption
|
対応するroleなし |
Role:
それ以外の場合、グローバル
|
figure
|
role=figure
|
DPub Role:
それ以外で、
グローバル |
footer
|
それ以外では |
Roles:
DPub Role:
命名禁止。
それ以外では、グローバル
|
form
|
|
Roles:
グローバル Note
|
| form-associated custom element |
Role exposed from author defined
Otherwise |
If role defined by
Otherwise, form-related roles:
命名禁止 if exposed as the
Otherwise, global
|
h1 to h6
|
role=heading,
aria-level = the number in the element's tag name
|
Roles:
DPub Role:
Global |
head
|
対応するroleなし |
roleなしまたは |
header
|
それ以外では |
Roles:
命名禁止。
それ以外では、グローバル
|
hgroup
|
role=group
|
任意の
それ以外では、グローバル
|
hr
|
role=separator
|
Roles:
DPub Role:
Global |
html
|
role=generic
|
roleなし
以外に、
|
i
|
role=generic
|
任意の
それ以外では、グローバル
|
iframe
|
対応するroleなし |
Roles:
Global |
|
|
Roles:
DPub Role:
Global |
|
img
with no accessible name
|
If the
If the |
If the
If the
No
Otherwise, if the |
input type=button
|
role=button
|
Roles:
Global |
input type=checkbox
|
role=checkbox
|
Roles:
著者は MUST NOT use the
それ以外では、任意の グローバル
Note
HTML の
|
|
対応するroleなし |
グローバル
|
|
対応するroleなし |
グローバル
|
|
対応するroleなし |
グローバル
|
with no
list
attribute
|
role=textbox
|
roleなし
other than
グローバル
|
|
対応するroleなし |
グローバル
|
| 対応するroleなし |
roleなしまたは |
|
|
role=button
|
次のroleは許可されますが、推奨されません:
グローバル
可能であれば、著者は指定したroleを許可する別のHTML要素、たとえば
|
|
対応するroleなし |
グローバル
|
|
role=spinbutton
|
roleなし
以外に
グローバル
|
|
対応するroleなし |
グローバル
|
|
role=radio
|
Role:
著者は MUST NOT use the
それ以外では、任意の グローバル
Note
HTML の
|
|
role=slider
|
roleなし
以外に
著者は
それ以外では、任意の
グローバル
|
|
role=button
|
|
,
with no
list
attribute
|
role=searchbox
|
roleなし
以外に
グローバル
|
|
role=button
|
|
,
with no
list
attribute
|
role=textbox
|
roleなし
以外に
グローバル
|
or with a missing or invalid type, with no
list
attribute
|
role=textbox
|
Roles:
Global |
,
,
,
,
,
or with a missing or invalid type, with a
list
attribute
|
role=combobox
|
roleなし
以外に
著者は、
それ以外では、任意の
グローバル
|
|
対応するroleなし |
グローバル
|
with no
list
attribute
|
role=textbox
|
roleなし
以外に
グローバル
|
|
対応するroleなし |
グローバル
|
ins
|
role=
|
任意の
それ以外では、グローバル
|
kbd
|
対応するroleなし |
それ以外では、グローバル
|
label
|
対応するroleなし |
それ以外で、 命名禁止。
それ以外では、グローバル
|
legend
|
対応するroleなし |
それ以外では、グローバル
|
li
|
それ以外では、
|
親のリスト要素が暗黙的または明示的な
それ以外で、親のリスト要素が暗黙的または明示的な
グローバル
著者は次の非推奨DPub Rolesを
使用すべきではありません:
|
link
|
対応するroleなし |
roleなしまたは |
main
|
role=main
|
roleなし
以外に
グローバル
|
map
|
対応するroleなし |
roleなしまたは |
mark
|
対応するroleなし |
それ以外では、グローバル
|
math
|
role=math
|
roleなし
以外に
グローバル
|
menu
|
role=list
|
Roles:
グローバル
|
meta
|
対応するroleなし |
roleなしまたは |
meter
|
role=
|
roleなし
以外に
著者は
それ以外では、任意の
グローバル
|
nav
|
role=navigation
|
Roles:
DPub Roles:
グローバル
|
noscript
|
対応するroleなし |
roleなしまたは |
object
|
対応するroleなし |
Roles:
グローバル
|
ol
|
role=list
|
Roles:
Global Authors SHOULD NOT use deprecated |
optgroup
|
role=group
|
roleなし
以外に
グローバル |
option
要素(
選択肢リスト内にあるもの、
または
datalist
内の候補を表すもの)
|
role=option
|
roleなし
以外に
著者は
グローバル
|
output
|
role=status
|
任意の
グローバル
|
p
|
role=
|
任意の
それ以外では、グローバル
|
param
|
対応するroleなし |
roleなしまたは |
picture
|
対応するroleなし |
著者は |
pre
|
role=generic
|
任意の
それ以外では、グローバル
|
progress
|
role=progressbar
|
roleなし
以外に
著者は
それ以外では、
任意のグローバル
|
q
|
role=generic
|
任意の
それ以外では、グローバル
|
rp
|
対応するroleなし |
グローバル
|
rt
|
対応するroleなし |
それ以外では、グローバル
|
ruby
|
対応するroleなし |
グローバル
|
s
|
role=
|
任意の
それ以外では、グローバル
|
samp
|
role=generic
|
任意の
それ以外では、グローバル
|
script
|
対応するroleなし |
roleなしまたは |
search
|
|
Roles:
Global |
section
|
Otherwise, |
Roles:
DPub Roles:
Global |
select
(with NO multiple attribute and NO size
attribute having value greater than 1)
|
role=combobox
|
Role:
Authors SHOULD NOT use the
Otherwise,
any global |
select
(with a multiple attribute or a size attribute
having value greater than 1)
|
role=listbox
|
roleなし
以外に
著者は
それ以外では、
任意のグローバル
|
selectedcontent
|
role=generic
|
それ以外では、カスタマイズ可能な
それ以外では、グローバル
|
slot
|
対応するroleなし |
roleなしまたは |
small
|
role=generic
|
任意の
それ以外では、グローバル
|
source
|
対応するroleなし |
roleなしまたは |
span
|
role=generic
|
任意の
それ以外では、グローバル
|
strong
|
role=
|
任意の
それ以外では、グローバル
|
style
|
対応するroleなし |
roleなしまたは |
sub
|
role=
|
任意の
それ以外では、グローバル
|
summary
|
Note
summary要素の公開されるroleは、ユーザーエージェントや支援技術によって異なる場合があります。
|
roleなし
if the
Global
Otherwise, if the |
sup
|
role=superscript
|
Any
それ以外では、グローバル
|
SVG
|
role=graphics-document as defined by
SVG AAM
|
Any
Global |
table
|
role=table
|
グローバル
|
tbody
|
role=rowgroup
|
Any
グローバル
|
td
|
対応するroleなし if the ancestor
|
If the ancestor
Otherwise, if the ancestor
Global |
template
|
対応するroleなし |
roleなしまたは |
textarea
|
role=textbox
|
roleなし
以外に
グローバル
|
tfoot
|
role=rowgroup
|
Any
グローバル
|
th
|
対応するroleなし if the ancestor
|
If the ancestor
Otherwise, if the ancestor
グローバル |
thead
|
role=rowgroup
|
任意の
グローバル
|
time
|
role=time
|
それ以外では、グローバル
|
title
|
対応するroleなし |
roleなしまたは |
tr
|
role=row
|
グローバル
|
track
|
対応するroleなし |
roleなしまたは |
u
|
role=generic
|
任意の
それ以外では、グローバル
|
ul
|
role=list
|
Roles:
グローバル
|
var
|
対応するroleなし |
それ以外では、グローバル
|
video
|
対応するroleなし |
Role:
グローバル
|
wbr
|
対応するroleなし |
Roles:
著者は |
第2列で 対応するroleなし と
マークされた要素には、暗黙のARIAセマンティクスはありません。
しかし、それらには意味があり、その意味はARIAでは提供されないrole、state、propertyで表現でき、
アクセシビリティ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-* 属性の作成ガイダンス
|
|---|---|---|
HTMLで
checked
属性が許可される任意の要素
|
aria-checked="true"
|
HTMLで
著者は、要素の
checkedness
または不確定なchecked値が、
現在の
著者は、属性の指定を許可するWAI-ARIA roleを持つ他の任意の要素に
|
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.1]、 [HTML] の機能を定義するものではありません。 むしろ、HTML 内で ARIA のチェックをサポートすると主張する適合チェッカー向けに規則や指針を提供し、著者への指針も提示します。
よって、本仕様は新たな機能を定義しないため、潜在的な懸念を導入するプライバシーやセキュリティへの影響は知られていません。
Referenced in:
Referenced in:
Referenced in:
Referenced in: