アクセシブル・リッチ・インターネット・アプリケーション(WAI-ARIA)1.3

W3C 初公開作業草案

この文書についての詳細
このバージョン:
https://www.w3.org/TR/2024/WD-wai-aria-1.3-20240123/
最新版:
https://www.w3.org/TR/wai-aria-1.3/
最新エディターズドラフト:
https://w3c.github.io/aria/
履歴:
https://www.w3.org/standards/history/wai-aria-1.3/
コミット履歴
最新の勧告:
https://www.w3.org/TR/wai-aria/
編集者:
James Nurthen (Adobe)
Peter Krautzberger (krautzource UG)
以前の編集者:
Michael Cooper (W3C)(2023年まで編集者)
Joanmarie Diggs (Igalia, S.L.)(2021年まで編集者)
Shane McCarron (Spec-Ops) (2018年まで編集者)
Richard Schwerdtfeger (Knowbility)(2017年10月まで編集者)
James Craig (Apple Inc.)(2016年5月まで編集者)
フィードバック:
GitHub w3c/aria (プルリクエスト, 新しいイシュー, オープンイシュー)

要約

ウェブコンテンツのアクセシビリティには、支援技術が障害のある方々に適切な情報を伝達できるよう、ウィジェット・構造・動作に関するセマンティック情報が必要です。本仕様は、アクセシブルなユーザーインターフェース要素を定義するための役割・状態・プロパティのオントロジーを提供し、ウェブコンテンツやアプリケーションのアクセシビリティと相互運用性を向上させるために利用できます。これらのセマンティクスは、著者がユーザーインターフェースの動作や構造情報をドキュメントレベルのマークアップで支援技術へ正しく伝えられるよう設計されています。本バージョンでは、WAI-ARIA 1.1 [wai-aria-1.1] 以降で追加された新機能により、支援技術との相互運用性を向上し [HTML] や [SVG2] のための、より一貫したアクセシビリティモデルを形成します。本仕様は [HTML] および [SVG2] の両方を補完します。

本ドキュメントは、WAI-ARIA 概要で説明されている WAI-ARIA スイートの一部です。

この文書のステータス

このセクションは、本 文書の公開時点でのステータスを説明しています。現在の W3C の出版物や本技術レポートの最新リビジョンは、W3C 技術レポート一覧(https://www.w3.org/TR/)で確認できます。

Accessible Rich Internet Applications ワーキンググループは、本仕様のあらゆる側面に関するフィードバックを求めています。フィードバックを送る際は、関連文書の内容も考慮してください。コメントは、W3C ARIA GitHub リポジトリにイシューを登録して行ってください。難しい場合は、public-aria@w3.orgコメントアーカイブ)へメールしてください。文書の進行中の更新は、公開編集ドラフトで確認できます。

本文書は Accessible Rich Internet Applications ワーキンググループ によって、 勧告トラックに基づく初公開作業草案として公開されました。

初公開作業草案としての公開は、W3C およびそのメンバーによる支持を意味するものではありません。

この文書はドラフトであり、随時更新・差し替え・廃止される可能性があります。進行中の作業以外の引用には適しません。

この文書は、 W3C 特許ポリシーの下で活動するグループにより作成されました。 W3C は、 公開特許開示一覧 を管理しています。このページには特許開示に関する手順も含まれます。特許の存在について実際に知っている場合、その特許が必須請求項を含むと考えられる場合は、 W3C特許ポリシー第6節に従って情報を開示する必要があります。

本文書は 2023年11月3日 W3C プロセス文書に準拠しています。

1. はじめに

このセクションは規範的でありません。

本仕様の目標には以下が含まれます:

WAI-ARIAは、ウェブコンテンツおよびアプリケーションのアクセシビリティと相互運用性を向上させるための枠組みを提供する技術仕様です。この文書は主にカスタムウィジェットやその他のウェブアプリケーションコンポーネントを作成する開発者向けです。その他の対象読者向けの関連文書へのリンクについては WAI-ARIA概要 をご覧ください。例えば、WAI-ARIA作成実践集 [WAI-ARIA-PRACTICES-1.2] では、WAI-ARIAが解決を目指すアクセシビリティ課題や基本的な考え方、技術的アプローチについて紹介しています。

この文書は現在、ロールのうち、ユーザーインターフェースの機能と構造的な関係性の2側面を扱っています。より詳しい情報やユースケースについては、WAI-ARIA作成実践集 [WAI-ARIA-PRACTICES-1.2]のインタラクティブコンテンツのアクセシビリティ確保におけるロールの利用をご覧ください。

本仕様で定義されるロールは、プラットフォームのアクセシビリティAPIで用いられるロールをサポートするよう設計されています。動的ウェブコンテンツ内の要素にこれらのロールを宣言することで、ウェブコンテンツと、アクセシビリティAPIを利用する支援技術との相互運用性を高めることを意図しています。

本標準をサポートするスキーマは拡張性を考慮して設計されており、基底ロールを拡張してカスタムロールを作成できます。これにより、ユーザーエージェントは少なくとも基底ロールに対応し、カスタムロールに対応したユーザーエージェントではより高度な支援が可能になります。こうした関係は [XMLSCHEMA11-2] でも形式化できますが、baseConcepts やより記述的な定義のようなロール間の類似性を定める部分はXSDではカバーされません。

WAI-ARIA 1.2 は WAI-ARIA 1.2スイート の1つであり、WAI-ARIAや他のウェブコンテンツ言語のセマンティクスをアクセシビリティAPIへ公開する方法を定義しています。

1.1 リッチインターネットアプリケーションのアクセシビリティ

ウェブアクセシビリティ分野は、障害のある方がウェブコンテンツを利用できるようにする方法を定義します。特定の障害がある人は、支援技術 (AT) を使ってコンテンツと対話します。支援技術は、コンテンツの提示を利用者に適した形式へ変換したり、異なる方法での対話を可能にします。たとえば、マウスのドラッグ&ドロップではなく、矢印キーでスライダーウィジェットを操作する必要や好みがあるかもしれません。これを有効に行うためには、ソフトウェアがコンテンツのセマンティクスを理解する必要があります。セマンティクスとは「意味の科学」であり、ここでは人が理解するようなユーザーインターフェースやコンテンツ要素に対してロール・状態・プロパティを割り当てるために用いられます。たとえば、段落が意味的に段落として識別されていれば、支援技術はコンテンツ内の他の部分とは区別された単位として扱え、その段落の正確な範囲も把握できます。調整可能なレンジスライダーや折りたたみリスト(いわゆるツリーウィジェット)のように、様々な部分のセマンティクスが正しく識別される必要がある複雑な例もあります。

新しい技術はしばしばアクセシビリティに必要なセマンティクスを見落とし、新しい作成手法がそれら技術の意図されたセマンティクスを誤用することもあります。要素が言語で本来持つ定義と異なる意味で利用されるケースです。

たとえば、ウェブアプリケーション開発者は HTMLtree要素がないにもかかわらず、CSSやJavaScriptで折りたたみ式ツリーウィジェットを作成します。非障害のある利用者にはツリーウィジェットに見え、動作もそれらしいですが、適切なセマンティクスがなければ、支援技術はロールを認識できず、そのツリーウィジェットは障害のある人にとって知覚可能でも操作可能でもない場合があります。同様に、SVGにはbutton要素がありませんが、ウェブアプリ開発者はJavaScriptでインタラクティブなボタンウィジェットを作ります。見た目や振る舞いはボタンでも、セマンティクスがなければ、やはり知覚可能操作可能ではありません。

WAI-ARIA の導入は、カスタムウィジェットに適切なセマンティクスを提供し、これらのウィジェットをアクセシブルで、使いやすく、支援技術と相互運用可能にするための著者の手段です。この仕様は、対応するロールオントロジーを提供することで、アクセシビリティ製品によってよく認識されるウィジェットや構造のタイプを特定します。これにより、指定されたロールを持つ要素は、実装ホスト言語から継承されたセマンティクスに関係なく、特定のウィジェットまたは構造型として認識されます。ロールは、支援技術が利用者に効果的な表示や操作を提供するために用いるプラットフォームアクセシビリティ APIの共通プロパティです。

ロールモデルは、対話型ウィジェットや文書構造を示す要素を含みます。ロールモデルは継承関係や各ロールがサポートする属性の詳細を説明します。ロールとアクセシビリティAPIのマッピングについては、Core Accessibility API Mappings [CORE-AAM-1.2] をご参照ください。

ロールは要素タイプであり、時間経過やユーザーの操作で変わることはありません。ロール情報は支援技術がユーザーエージェントと連携し、指定要素タイプの通常処理を提供するために使われます。

状態とプロパティは、要素の双方向の対話に影響する重要な属性を宣言するために使います。これらにより、ユーザーエージェントやOSが、クライアントサイドスクリプトによって属性が動的に変更されても正しく処理できます。たとえば、スクリーンリーダーや音声認識ソフトなどの代替入力・出力技術は、(無効・選択済みなどの)状態を認識し、利用者に伝えたり操作できる必要があります。

支援技術がこれらプロパティにDocument Object Model [DOM] を通じて直接アクセスすることも可能ですが、ユーザーエージェントが状態やプロパティをOSのアクセシビリティAPIへマッピングするのが推奨される仕組みです。詳細はCore Accessibility API Mappings [CORE-AAM-1.2] および Accessible Name and Description Computation [ACCNAME-1.2] を参照してください。

図1.0は、ユーザーエージェント(例:ブラウザ)、アクセシビリティAPI、および支援技術の関係を示しています。これは、GUI向けの多くのアクセシブルなプラットフォームでアクセシビリティAPI内に見られる典型的なアクセシビリティ情報(ロールや状態、選択、イベント通知、関係情報、説明など)を含む、「ユーザーエージェントが支援技術に提供する契約」を説明しています。DOM(通常は HTML)は、典型的なモデル-ビュー-コントローラ関係の中でデータモデルおよびビューとして機能し、JavaScriptがコントローラとして表示データのスタイルや内容を操作します。ユーザーエージェントは、OSのアクセシビリティAPIに関連情報を伝え、そこからスクリーンリーダーなどの支援技術が利用できます。

The contract model with accessibility APIs

図1: アクセシビリティAPIとの契約モデル

詳細は、WAI-ARIA作成実践集 の、インタラクティブコンテンツのアクセシビリティ対応におけるロールの利用例もご参照ください。

代替入力デバイスの利用者にはキーボードでアクセス可能なコンテンツが必要です。新たなセマンティクスと、WAI-ARIA作成実践集で推奨されるキーボード操作を組み合わせることで、代替入力ソリューションによるコマンド操作が実現できます。

WAI-ARIAはロールモデルおよびXHTMLロールランドマークを通じてナビゲーション用ランドマークを導入しています。これにより、巧緻性や視覚障害のある方のキーボードナビゲーションが容易になります。さらに、認知障害のある方に役立つ場合もあります。追加セマンティクスによって著者は適宜、代替コンテンツの構成や差し替えも可能にします。

支援技術ウィジェットの状態やプロパティの値を取得・設定できることが求められます。また、オブジェクトの選択状態を把握し、リストボックスやグリッドのように複数選択可能なウィジェットを管理する必要もあります。

音声コマンドによる制御システムは、例えばrole属性のようなWAI-ARIA セマンティクスを活用して、ユーザーへ音声情報を伝えられます。たとえば、menuロールと、その子要素であるmenuitemが異なる味を表すテキストを含む場合、音声システムは「3つの選択肢から選んでください。チョコレート、ストロベリー、バニラ。」のように案内できます。

WAI-ARIAはホスト言語のセマンティクスを補完する目的で使われるもので、代替するものではありません。ホスト言語で同等のアクセシビリティ機能がある場合は、そちらを優先して使いましょう。必要なロール状態プロパティ指標がホスト言語にない場合のみ、WAI-ARIAを利用してください。利用する際もできるだけWAI-ARIAに近いホスト言語機能を用い、必要に応じてWAI-ARIAで意味を明確化します。例えば、マルチセレクト可能なグリッドはテーブルで実装し、さらにWAI-ARIAを使って単なる静的データテーブルでなくインタラクティブグリッドであることを明示できます。これにより、WAI-ARIAをサポートしないユーザーエージェントにも最適なフォールバックを提供し、ホスト言語セマンティクスの整合性も保たれます。

1.2 対象読者

本仕様は、WAI-ARIAの基本モデル(ロール・状態・プロパティ・値)を定義します。対象となる主な読者は:

各適合要件には、適用される対象読者が明記されています。

本仕様は上記の読者に関係しますが、それぞれの読者のみを対象としたものや、唯一の参照情報源として意図されたものではありません。以下の文書も重要な補助情報を提供します:

1.3 ユーザーエージェントのサポート

WAI-ARIAは、その機能のためにユーザーエージェントによる2つの側面でのサポートに依存します:

WAI-ARIAマークアップを使ってアクセシビリティAPIへの公開内容を改善すること以外は、ユーザーエージェントは本来の動作のままです。支援技術は非ウェブコンテンツの時と同様、アクセシビリティAPIの追加情報に反応します。ただし支援技術でないユーザーエージェントは、アクセシビリティAPIへ適切な更新を提供する以外は特別な対応は不要です。

WAI-ARIA仕様は、ユーザーエージェントがWAI-ARIAマークアップに基づいてネイティブの表示や操作へ追加・強化することを強制も禁止もしません。主流ブラウザなどが、全ユーザーのナビゲーションを容易にする目的でWAI-ARIAナビゲーションランドマーク(ダイアログボックスやキーボード操作など)を表示できるようにすることが考えられます。ユーザーエージェントは、障害のない利用者も含め、より多くの人にとって有用となるよう最大限の対応を推奨します。

WAI-ARIAは必要なセマンティクスを補い、著者の意図を支援技術に伝えるための技術です。一般に、WAI-ARIAを利用する著者は、適切な表示や操作機能も自身で用意します。将来的に、ホスト言語にWAI-ARIA相当の機能(例えば新しいフォームコントロール)が標準UIとして追加されれば、著者はカスタムUIより標準UIを使うことができます。その場合はユーザーエージェントがネイティブ機能をサポートします。ホスト言語開発者は、ホスト言語セマンティクスと矛盾しない範囲でWAI-ARIAセマンティクスを引き続きサポートすることを推奨します。なぜなら、ホスト言語だけでは意図に合致しない場合、WAI-ARIAで著者の意図を明確にできるためです。

1.4 WAI-ARIAとホスト言語の共進化

WAI-ARIAは、[HTML]や[SVG2]などの対応言語のセマンティクスを補完したり、ARIAを明示的にサポートしない他のマークアップベース言語におけるアクセシビリティ強化技術として使うことを意図しています。ページの言語でまだ直接サポートされていない新しい種類のオブジェクトを著者がスタイルやスクリプトで作成する際、支援技術にはっきりセマンティクスを伝える役割を持っています。これは新しいオブジェクトの創出がウェブ言語の標準化より速いためです。

ホスト言語が該当するセマンティック要素を持っているオブジェクトについては、スタイルやスクリプトだけで新しく作成するのは適切ではありません。WAI-ARIAでこうしたオブジェクトのアクセシビリティを高めることもできますが、ユーザーエージェントにネイティブで処理させるほうが最善です。例えば、HTMLではdiv要素にheadingロールを付与するよりh1要素を使う方が良いです。

今後、ホスト言語は、今までWAI-ARIAでしか宣言できなかったオブジェクトのセマンティクスを自前で提供できるよう発展していくと考えられます。この進化は自然で望ましいものであり、WAI-ARIAの目標の1つはよりセマンティックでアクセシブルなマークアップの普及促進にあるからです。ネイティブセマンティクスが用意されたら、著者はそちらを使い、該当する機能でWAI-ARIAの利用を止めるのが適切です。ただし、過去のコンテンツではWAI-ARIAが残るため、ユーザーエージェント側でサポートが継続されます。

WAI-ARIA特有の機能が時と共に重要度を失うことはあっても、ウェブページへのセマンティクス追加手段としての必要性は今後も継続するでしょう。ホスト言語はWAI-ARIAが用意するすべてのセマンティクスを実装するわけではないので、各ホスト言語が様々な機能の部分集合を実装します。新しいタイプのオブジェクトは今後も継続的に開発されるため、こうしたオブジェクトのアクセシビリティ確保もWAI-ARIAの目標の一つです。ウェブの作成手法はしばしばホスト言語標準より速く進化するため、「WAI-ARIAとホスト言語は同時並行で進化するが、進化速度は異なる」ということです。

一部のホスト言語はユーザーインターフェース以外の機能のセマンティクスを作るために存在します。例えばSVGは、図形オブジェクトの生成に関するセマンティクスを表しますが、これらオブジェクトのUIコンポーネントとしての意味は表現しません。ホスト言語によっては、設計上、WAI-ARIAに対応するネイティブセマンティクスを提供しない場合もあります。このような場合、WAI-ARIAはユーザーインターフェースコンポーネントへのセマンティック情報追加の長期的アプローチとして採用できます。

1.5 作成手順

1.5.1 作成ツール

WAI-ARIAロール状態プロパティ定義の多くは、開発工程中に他の品質管理プロセスと同様に自動チェックできます。カスタムウィジェット作成者を助けるため、作成ツールはウィジェットのロール・状態・プロパティがWAI-ARIAや、参照関係にあるロール・状態・プロパティに対応しているかを比較できます。作成ツールは、ウィジェットの設計パターンのエラーを著者に通知したり、文脈だけでは自動判別できない情報の入力を促したりもできます。例えば、ツリービューのノードごとのラベルはスクリプトライブラリ側で取得できますが、ツリー全体のラベルは著者に確認が必要です。論理的なアクセシビリティ構造を視覚化できるよう、作成環境がWAI-ARIAマークアップに基づくアウトラインビューを提供することも考えられます。

HTMLSVGでは、tabindexはWAI-ARIA実装でキーボードフォーカスナビゲーションをサポートするために重要です。作成・デバッグツールはtabindex値の適正チェックを行えます。例えば、1つのツリー内で複数のtreeitemにtabindexが0以上設定されていたり、いずれのtreeitemにも設定されていなかったり、tabindexが0以上のtreeにaria-activedescendantが未定義の場合などのエラーを検出できます。

1.5.2 テスト手法とツール

インタラクティブコンテンツのアクセシビリティは静的チェックだけでは確認できません。インタラクティブなコンテンツの開発者は、ウィジェットやアプリケーションに対するデバイス非依存のアクセス性や、全コンテンツ・ユーザー操作中のすべての変更へのアクセシビリティAPIアクセスを検証する必要があります。

1.6 支援技術

アクセシビリティセマンティクスへのプログラム的アクセスは、支援技術にとって不可欠です。多くの支援技術は他アプリケーション同様、ユーザーエージェントと公認アクセシビリティAPI経由で連携します。UI内の知覚可能なオブジェクトは、アクセシビリティAPIのインターフェースで定義されるアクセシブルオブジェクトとして支援技術に公開されます。これを適切に行うには、ロール・状態・プロパティ・文脈情報を的確にアクセシビリティAPIに渡す必要があります。状態の変化時、ユーザーエージェントは該当するイベント通知をアクセシビリティAPIに送ります。HTMLなど多くのホスト言語の場合、DOMそのものが文脈ツリーヒエラルキーを備えるため、文脈情報も把握できます。

一部の支援技術はこれらのアクセシビリティAPIと連携しますが、他の支援技術はDOMから直接コンテンツを取得することもあります。こういった技術は、対象となるユーザーごとに内容を再構築・単純化・スタイリング・再フローできます。こうした適応例は高齢者や認知障害のある人、または利用環境が特殊な場合(例:モバイル端末で一度に一部だけ表示する)などが挙げられます。これによりユーザーの情報処理負荷が軽減されます。場合によっては、カスタムUIコントロールの代わりに、よりキーボードやタッチパネルで扱いやすいコントロールに置き換えることも適切です。

2. 重要な用語

このセクションは規範的ではありません。

本書内で一部の用語はその場で定義されますが、以下の定義が文書全体で使われます。

アクセシビリティ API

オペレーティングシステムやその他のプラットフォームは、オブジェクトおよびイベントに関する情報を支援技術に公開するための一連のインターフェイスを提供します。支援技術はこれらのインターフェイスを利用して、該当するウィジェットの情報取得や操作を行います。アクセシビリティAPIの例としては、Microsoft Active Accessibility [MSAA]、Microsoft User Interface Automation [UI-AUTOMATION]、MSAAUIA Express [UIA-EXPRESS]、Mac OS X アクセシビリティプロトコル [AXAPI]、Linux/Unix Accessibility Toolkit [ATK] や Assistive Technology Service Provider Interface [AT-SPI]、IAccessible2 [IAccessible2] などがあります。

アクセシブルオブジェクト

ノードであり、プラットフォームのアクセシビリティツリー内に存在します。アクセシブルオブジェクトは、状態プロパティ、およびイベント支援技術向けに公開します。マークアップ言語(例:HTMLSVG)およびWAI-ARIAでは、マークアップの要素とその属性がアクセシブルオブジェクトとして表現されます。

支援技術

ハードウェアもしくは/およびソフトウェアで、

  • ユーザーエージェントが提供するサービスを利用してWebコンテンツを取得および表示するもの
  • APIの活用によりユーザーエージェントやWebコンテンツ自身と連携して動作するもの
  • 障害のあるユーザーがWebコンテンツを操作できるようユーザーエージェントが提供する機能を超えた支援を提供するもの

この定義は他の文書で使われているものと異なる場合があります。

本仕様における重要な支援技術の例:

  • 画面拡大ソフト:テキストや画像の視認性を高めるために表示を拡大するもの
  • スクリーンリーダー:合成音声や点字ディスプレイにより情報を伝えるものが多い
  • テキスト読み上げソフト:テキストを音声に変換するもの
  • 音声認識ソフト:音声での操作や入力を可能にするもの
  • 代替入力装置(ヘッドポインタ、スクリーンキーボード、ワンスイッチ、息で操作するデバイス等):キーボード入力をシミュレーションする
  • 代替ポインティングデバイス:マウス操作をシミュレートする
非推奨

非推奨のロール状態、またはプロパティは、新しい構造や状況の変化によって時代遅れとなっており、今後のWAI-ARIA仕様で削除される可能性があります。ユーザーエージェントは後方互換性のため、非推奨である旨が示された項目のサポート継続が推奨されます。詳細は適合性節の非推奨要件を参照してください。

定義する

属性の説明内で、その値整数数値、または文字列であることを示すために使用されます。

関連用語: 識別する示す

デスクトップフォーカスイベント

アクセシビリティAPI経由でホストOSに対して送信される、入力フォーカスの変更を通知するイベント。

イベント

あるオブジェクト状態の個別の変化を、他のオブジェクトに伝えるために使われるプログラム上のメッセージ。ウェブページへのユーザー入力は、インタラクションを記述した抽象イベントを通じて処理され、ドキュメントオブジェクトの状態変化を通知するためにも使われます。一部のプログラミング言語では、イベントは「通知」とも呼ばれます。

公開する

アクセシビリティAPIに依存してプラットフォーム固有の形で変換されます。詳細はCore Accessibility API Mappingsを参照してください。

グラフィカルドキュメント

ユーザーがナビゲートできるパーツを含んだグラフィック表現のあるドキュメント。チャート、地図、ダイアグラム、設計図、ダッシュボードなどがこれに該当します。グラフィカルドキュメントは、シンボル、画像、テキスト、図形(円・点・線・パス・矩形など)を任意に組み合わせて構成されます。

非表示(hidden)

要素がアクセシビリティツリーから除外され、アクセシビリティAPIに公開されないことを示します。

関連: アクセシビリティツリーから要素を除外する全ユーザーから非表示aria-hidden

全ユーザーから非表示

要素が、すべてのユーザーに対して可視・知覚可能・操作可能でないことを示します。要素aria-hidden を使うことで非表示にはできますが、全ユーザーから非表示にはなりません。

関連: アクセシビリティツリーから要素を除外する非表示aria-hidden

識別する

属性の説明内で、その値ID参照(単一要素を識別)またはID参照リスト(複数要素を識別)であることを示すために使用されます。

関連用語: 定義する示す

示す

属性の説明内で、その値が名前付きトークンまたはそれに類するものである場合(例:真偽値true/false/undefined三状態(true/false/mixed)、単一のトークントークンリストなど)に使われます。

関連用語: 定義する識別する

キーボードアクセシブル

キーボードや、キーボード入力をシミュレートする支援技術(例えばsip&puffチューブ等)を用いて利用者が利用可能であること。本書での記載はWCAG 2.1 ガイドライン 2.1: すべての機能をキーボードで利用できるようにする [WCAG21] を参照しています。

ランドマーク

ページ内の領域タイプのひとつで、ユーザーが迅速にアクセスしたいと考える箇所。こうした領域内の内容はページ内の他の領域と異なり、ナビゲーション、検索、主要コンテンツの閲覧等、特定の用途ごとに区分されています。

ライブリージョン

ライブリージョンはウェブページの知覚可能な領域で、通常は外部のイベントによって更新されます。こうした領域はユーザー操作に限らず更新される場合があり、フォーカスがなくても更新が受け取られます。チャットログ、株価ティッカー、スポーツのスコア更新欄(定期的に内容が変化)などが例です。こうした非同期領域はユーザのフォーカス領域外で更新されることが多いため、従来のスクリーンリーダなど支援技術はその存在を認識できなかったり、処理できない場合がありました。WAI-ARIAは著者がaria-live, aria-relevant, aria-atomic, aria-busy などのプロパティでこれらのライブリージョンを識別しやすくし、処理できるようにしています。

管理状態

アクセシビリティAPI状態のうち、フォーカスや選択などユーザーエージェントによって管理されるもの。これは著者が制御する「非管理状態」と対比されます。ただし、aria-posinset や aria-setsize のように著者が上書きできる管理状態も一部存在します。多くの管理状態には :focus や ::selection といった CSS 疑似クラス・疑似要素が対応しており、ユーザーエージェントもこれらを更新します。

ネメス点字

ネメス点字は、数学および科学記法をエンコードするための点字コードです。WikipediaのNemeth Brailleも参照。

オブジェクト

ユーザーインターフェイス関連の場合、知覚できるユーザー体験上の項目であり、マークアップ言語では1つ以上の要素によって表現され、ユーザーエージェントによって描画されます。

プログラミング上では、同種のオブジェクトの一般的な特徴を定義した1つ以上のクラスやインターフェイスのインスタンスです。アクセシビリティAPIでは、1つ以上のDOMオブジェクトを表すことがあります。アクセシビリティAPIのインターフェイスはDOMのインターフェイスとは異なります。
オントロジー

クラスの特性と、それらがどのように相互に関連しているかを記述したもの。

操作可能

利用者自身がコントロールできるやり方で利用可能であること。本書での記載はWCAG 2.1 原則2: コンテンツは操作可能でなければならない [WCAG21] を参照しています。キーボードアクセシブルも参照してください。

知覚可能

利用者が感知できる形で提示されること。本書での記載はWCAG 2.1 原則1: コンテンツは知覚可能でなければならない [WCAG21] を参照しています。

プロパティ

属性のうち、特定オブジェクトの本質に不可欠な要素、あるいはオブジェクトに関連付けられたデータ値を表すもの。プロパティの変更はオブジェクトの意味や見た目に大きな影響を与える場合があります。一部のプロパティ(例:aria-multiline)は状態(state)に比べて変化しにくいですが、これは厳密な区分ではありません。aria-activedescendantaria-valuenowaria-valuetext など、頻繁に変更されるプロパティもあります。状態とプロパティの違いの解説も参照してください。

関係(リレーションシップ)

2つの異なるもの同士のつながり。関係はいろいろなタイプがあり、あるオブジェクトが他のオブジェクトをラベル付けしたり制御したり、といった意味を持ちます。

ロール

型の主たる指標。本セマンティクス上の関連付けによって、ツールは利用者の期待に沿って他の同型オブジェクトと矛盾しない方法で、当該オブジェクトを表示・操作できるようになります。

セマンティクス

人間が意味を理解できるものを、コンピューターがオブジェクトとして処理できるように定義されたもの。たとえば要素属性といったオブジェクトの表現を用いて、さまざまな人が同一オブジェクトについて一貫した理解を持てるように、意味を信頼的に伝達します。

状態

状態は、あるプロパティに対し、ユーザーのアクションや自動処理によって変化しうる特徴を示す動的プロパティです。状態はオブジェクトの本質には影響しませんが、オブジェクトに紐づくデータや操作可能性を表します。状態とプロパティの違いの解説も参照してください。

ターゲット要素

WAI-ARIAリレーションで指定された要素。例: <div aria-controls=”elem1”> の場合、“elem1” がターゲット要素の ID です。

Unicode点字パターン

Unicodeでは点字は「Braille Patterns」(U+2800..U+28FF)というブロックに収められています。このブロックは8点式点字セルの、あらゆる256通りのパターンを含みます(6点セルの範囲U+2800..U+283Fも含む)。すべての点字体系で、ドット0(U+2800)は空白や内容なしを表すスペース記号として使われ、「空の点字パターン」とも呼ばれます。 WikipediaのBraille Patternsも参照。

ウィジェット

ユーザーが操作できる、個別のUIオブジェクト。ウィジェットは、1つの値や操作しかない単純なもの(チェックボックスやメニュー項目)から、多数の管理対象サブオブジェクトを含む複雑なもの(ツリーやグリッド)まで幅広く含みます。

3. 適合性

アクセシブル・リッチ・インターネット・アプリケーションの主な内容は規範的であり、適合性の主張に影響する要件を定義しています。導入部分、付録、「非規範的」と記されたセクションとその下位セクション、図、例、注記は参考(非規範的)です。非規範的な資料はガイドライン解釈の助けとなる助言情報を提供しますが、適合性主張に影響する要件は生み出しません。

規範的なセクションでは、著者およびユーザーエージェントがこの仕様に適合するために従うべき要件を定めています。この文書中のキーワードMUSTMUST NOTREQUIREDSHALLSHALL NOTSHOULDRECOMMENDEDMAYOPTIONALRFCで要求レベルを示すキーワード [RFC2119] に記載のとおり解釈してください。RFC2119キーワードは大文字で記述され、class="rfc2119"の要素内に含まれます。上記キーワードがこの形式でない場合は、RFC2119の正式な意味を持たず、単なる説明的な情報(参考)とみなされます。本仕様ではこのような用法を可能な限り避けています。

参考(非規範的)セクションは、仕様理解に役立つ情報を提供します。そうしたセクションには推奨される実践例が含まれることがありますが、その推奨例に従うことは本仕様への適合条件にはなりません。

3.1 ホスト言語への非干渉

WAI-ARIAの処理は、ユーザーエージェントがホスト言語の組み込み機能の通常動作を妨げてはなりません(MUST NOT)

もしCSSセレクターがWAI-ARIA属性(例:input[aria-invalid="true"])を含む場合、ユーザーエージェントは必ず(MUST)その属性がDOMで追加/変更/削除された際に、該当セレクターに一致する(または一致しなくなる)すべての要素の表示を更新しなければなりません。ユーザーエージェントは(MAY)ホスト言語機能のAPIへのマッピングを変更することがありますが、WAI-ARIAのマークアップをホスト言語機能に再マッピングするためにDOM自体を変更してはなりません(MUST NOT)

3.2 すべてのWAI-ARIADOMにあること

適合するユーザーエージェントで、W3CDOM仕様に準拠しないドキュメントオブジェクトモデルを実装するものは、roleとそのWAI-ARIAロール値、ならびにWAI-ARIA状態・プロパティの内容属性を、作者の指定どおりDOMに含めなければなりません(MUST)。こうすることで、すべてのロール属性・WAI-ARIAの状態・プロパティ(およびその値)が無改変でドキュメント内に存在し、他のツール(支援技術など)がそれにアクセスできるようになります。適合するW3C DOMはこの基準を満たしています。

3.3 支援技術によるWebアプリへの通知

支援技術(音声認識システムや可動障害者向けの代替入力デバイスなど)は、デバイス非依存な方法でウェブアプリケーションを制御する能力が必要です。WAI-ARIA状態プロパティはリッチインターネットアプリケーション要素の現在の状態を反映します。支援技術が必要な変更をWebアプリに通知できることは、ユーザーが標準入力機器を直接制御できない場合でも代替入力でアプリを操作できるようにするために重要です。

ユーザーエージェントは、システムのアクセシビリティAPI上で状態やプロパティの変更があった際、それをWebアプリケーションに通知する手段を必ず(MUST)提供しなければなりません。同様にWebアプリの作者も、ユーザーエージェントや支援技術から変更通知を受けた場合、それに応じてWebアプリを更新することを推奨します(SHOULD)

3.4 適合チェッカー

文書の適合性や妥当性を検証するアプリケーションやスクリプトは、この仕様で定める全ての規範的著者要件のテストを推奨します(SHOULD)。個々の要件をテストする際、著者が「MUST」要件を満たしていなければエラー、また「SHOULD」要件を満たしていなければ警告を必ず(MUST)出力しなければなりません。

3.5 非推奨要件

技術が進化するにつれて、かつて定義されていた機能よりも有効なユースケース実現方法が新たに現れることがあります。しかし既存の実装との互換性のため、旧機能を適合性モデルから取り除くと、以前は適合していたコンテンツが不適合となってしまいます。この場合、古い機能は「非推奨」とマークされます。これは、その機能が適合性モデル上は認められ、ユーザーエージェントが引き続きサポートすることが期待されつつも、新しいコンテンツでは著者が利用しないことを推奨する旨を示します。今後の仕様バージョンでその機能が広く使われなくなった場合、その機能は削除・サポート不要となる可能性があります。

4. WAI-ARIA の利用

複雑なウェブアプリケーションでは、支援技術が文書の一部のセマンティクスを判断できなかったり、ユーザーが有効に全体をナビゲートできない場合にアクセシビリティを失います(WAI-ARIA作成実践集参照)。WAI-ARIAはセマンティクスをロール(UI要素種別)と、それぞれのロールがサポートする状態プロパティに分けています。

著者は、文書内の要素に対して、WAI-ARIAのロールおよび適切な状態・プロパティ(aria-* 属性)をライフサイクルの中で関連付ける必要があります。ただし、既に該当するWAI-ARIAの暗黙的セマンティクスがある場合は、ホスト言語の状態・プロパティが優先され、ロール属性は要素の暗黙的ロールより優先されます。

4.1 WAI-ARIA ロール

WAI-ARIAロールは、要素role 属性として指定します。これはRole Attribute [ROLE-ATTRIBUTE]で定義されるrole属性と同様です。

<li role="menuitem">Open file…</li>

モデル内で各ロールの定義には、次の情報が含まれます。

ロールを付与することで、支援技術に各要素の扱い方を伝えられます。WAI-ARIAロールがホスト言語セマンティクスを上書きする場合、DOM自体は変更せず、アクセシビリティツリー上のみの変化となります。

ユーザーエージェントは、role 属性値のトークン列のうち、非抽象なWAI-ARIA ロール名と一致する最初のトークンのみを使用しなければなりません(MUST)。詳しくはrole属性のホスト言語実装セクションを参照してください。

4.2 WAI-ARIA の状態・プロパティ

WAI-ARIAは、さまざまなOSプラットフォームにおけるプラットフォームアクセシビリティAPIをサポートするためのアクセシビリティ状態プロパティ群を提供します。支援技術は、この情報にユーザーエージェントが公開するDOMや、プラットフォームのアクセシビリティAPI経由でアクセスできます。ロールと組み合わせることで、ユーザーエージェントは支援技術に随時、ユーザーインターフェース情報を提供できます。状態やプロパティの変化は支援技術への通知につながり、ユーザーに変更を知らせることができます。

次の例では、リストアイテム(html:li)がチェックボックス付きメニューアイテムとして使われており、JavaScriptのイベントでマウスやキーボード操作を捉え、aria-checkedの値を切り替えます。ロールによって、このシンプルなウィジェットの動作がユーザーエージェントに伝わります。ユーザー操作で変化する属性(aria-checkedなど)は状態とプロパティセクションで定義されています。

<li role="menuitemcheckbox" aria-checked="true">Sort by Last Modified</li>

一部のアクセシビリティ状態は管理状態と呼ばれ、ユーザーエージェントによって制御されます。管理状態の例としてはキーボードフォーカスや選択などがあります。管理状態にはよくCSS疑似クラス(:focus::selection等)との対応があります。一方、本仕様の状態は主に著者が制御するもので「非管理状態」と呼ばれます。aria-posinsetやaria-setsizeのような一部はユーザーエージェント管理ですが、DOM構造が未完成でユーザーエージェントによる計算結果が不正となる場合、著者が上書きできます。ユーザーエージェントは管理状態・非管理状態いずれもプラットフォームのアクセシビリティAPIにマッピングします。

多くの現代的なユーザーエージェントはCSS属性セレクター([CSS3-SELECTORS])をサポートし、著者はWAI-ARIA属性情報に基づいてUI変更を行うことで、同等機能を実現するためのスクリプト量を減らすことができます。次の例ではCSSセレクターでaria-checked属性値に応じて文字を太字化し、チェック状の画像表示を制御しています。

[aria-checked="true"] { font-weight: bold; }
[aria-checked="true"]::before { background-image: url(checked.gif); }

CSSでチェックマークの視覚的表現を切り替えない場合、著者は追加マークアップやスクリプトでmenuitemcheckboxが選択されているかを表す画像の制御も可能です。

<li role="menuitemcheckbox" aria-checked="true">
  <img src="checked.gif" alt="">
  <!-- 注記:画像切替には追加スクリプトが必要です -->
  Sort by Last Modified
</li>

4.3 フォーカス管理とキーボードナビゲーション

標準のHTMLインタラクティブ要素や単純なWAI-ARIA ウィジェットの場合、アプリ開発者はタブ順制御やキーボードショートカットの割当が可能です。

WAI-ARIAには「管理コンテナ」ウィジェット(コンポジットウィジェットとも)があります。これらのコンテナは最後にアクティブだった子孫(通常は最初の項目)を追跡する役割があります。コンテナからフォーカスが外れた後に再度入った時、一貫した分かりやすいアクティブ戦略を維持することが重要です。例外もありますが、基本的には直前にアクティブだった子孫が再度アクティブとなるべきで、内容が動的に変化した場合や、メニューバーのように必ず最初に戻ることが期待される場合はこの限りではありません。たとえば、ツリーグループの2番目がアクティブのときにグループからタブで抜け、再び入るとアクティブは2番目のままです。コンテナ内部の子孫をクリックしてコンテナをアクティブにすることもできます。コンテナまたはアクティブ子孫にフォーカスがあるとき、矢印キー等でアクティブ子孫を切り替えます。主なナビゲーションキー(通常 TAB)を押せば、コンテナ外の次のウィジェットへ移動します。

リッチインターネットアプリケーションでの使いやすいキーボードナビゲーションは、静的文書内のリンクやフォームコントロール間のタブ遷移とは異なります。アプリでユーザーは複雑なウィジェット(メニューや表計算など)にタブで移動し、内部移動に矢印キーを用います。WAI-ARIAが導入するキーボードナビゲーション変更で、こうした拡張アクセシビリティが可能となります。WAI-ARIAでは任意の要素がキーボードフォーカス可能です。ホスト言語のtabindexの他、aria-activedescendantもキーボード操作の仕組みを提供します。他の多くのWAI-ARIAウィジェット開発も、キーボードナビゲーションの正常作動が前提です。

下記のようにaria-activedescendantを実装する際、ユーザーエージェントはDOMフォーカスをコンテナ要素か、そのコンテナを制御する入力要素のまま保持します。ですが、ユーザーエージェントはデスクトップフォーカスイベントや状態を、aria-activedescendantで参照される要素がフォーカスを持つかのように支援技術に伝達します。 ユーザーエージェントは、アクティブ子孫がコンテナの子孫であることを検証する必要はありません。 キーボードイベントは常にDOMの実際にフォーカスされた要素で処理されることを保証するのがユーザーエージェントの責務です。 アクティブ子孫あてのキーボードイベントは、フォーカスのあるDOM要素へバブルして処理されます。

4.3.1 著者向け情報

著者がフォーカスのある要素を削除した場合、論理的な要素へフォーカスを移すべきです(SHOULD)。同様に、ユーザーの明示的なスクロール操作がない限り、フォーカスのある要素を画面外にスクロールしないべきです(SHOULD)

著者は、すべてのインタラクティブな要素がフォーカス可能であり、複合ウィジェットのすべての部分がフォーカス可能または他の方法で機能達成可能であることを保証すべきです(SHOULD)

著者は以下のコンテナロールについては必ずフォーカス管理を行わなければなりません(MUST)

WAI-ARIA をサポートするユーザーエージェントは、tabindexfocusblur などのホスト言語の仕組みをすべての 要素で利用できるよう拡張します。ホスト言語が対応している場合、著者は MAY として、divspanimg など任意の要素に tabindex="0" を設定することで既定のタブ順序に追加できます。さらに、tabindex に負の整数値を指定した項目はスクリプトやマウスクリックでフォーカス可能ですが、既定のタブ順には含まれません。これは [HTML] および [SVG2] の両方でサポートされています。

著者は、aria-activedescendantを使って、WAI-ARIAロールがaria-activedescendantをサポートしているウィジェット要素のどの子孫がUI上キーボードフォーカス扱いかを支援技術へ伝えることもできます(MAY)。 これはlistboxなど、ウィジェット本体がタブ順で一箇所に収まり、内部要素には矢印キーなど別の方法でアクセスさせたい場合に便利です。

通常は、ホスト言語のセマンティクス(例:HTMLのtabindex="0")でウィジェットをタブ順に入れ、aria-activedescendantでアクティブ子孫のIDを指定します。実際の見た目のスタイル付けは著者が実装し、:focusは使えません(フォーカスはコンテナにあるため)。

フォーカス管理の詳細は、キーボードインターフェースの開発WAI-ARIA作成実践集)を参照してください。

4.3.2 ユーザーエージェント向け情報

ユーザーエージェントはaria-activedescendantを実装するために必須(MUST)となる作業:

  1. ホスト言語由来のキーボードナビゲーションの仕組みを実装し、aria-activedescendant対応ウィジェットがタブ順に含まれるようにする。
  2. プラットフォームでデスクトップフォーカスアクセシビリティAPIフォーカスがDOMフォーカスと別に管理される場合、DOMフォーカスと同時にaria-activedescendantが有効なID参照を持つとき、アクセシビリティAPIにはその要素のfocus状態を公開しない。
  3. 現在DOMフォーカスを持つ要素でaria-activedescendant属性が変更された場合、以前のオブジェクトからfocus状態を除外し、新たな参照先要素にアクセシビリティAPIデスクトップフォーカスイベントを発火する。参照が外れる場合はその要素にイベント発火。
  4. ID属性を持ち、aria-activedescendantで参照されるような要素には、アクセシビリティAPI状態を適用する。
    1. その要素がWAI-ARIAロール属性を持つ場合、フォーカス可能にする(参照される可能性があるため)。ネイティブ要素でロールがなければ、そのセマンティクスに従う。
    2. 参照された時、フォーカス状態に遷移させる。

支援技術がプラットフォームのアクセシビリティAPIでフォーカス変更を要求した場合、ユーザーエージェントは必須(MUST)となる作業:

  1. 前にフォーカスされていたオブジェクトからプラットフォームのフォーカス状態を除外。
  2. DOMフォーカスの設定:
    1. 要素がDOMフォーカス可能な場合は、その要素にDOMフォーカスを必ず(MUST)設定。
    2. それ以外でIDを持ち、aria-activedescendant属性で参照されている場合は、その属性を持つ要素自体にDOMフォーカスを必ず(MUST)設定。
      注記

      IDを持つ要素は、aria-activedescendantを持つコンテナや、そのコンテナに支配される要素のアクセシビリティ子孫として参照される場合があります(例:combobox)。そうでない場合、参照は著者エラーを示します。

      注記

      その要素にDOMフォーカスが設定できない場合は著者エラーです。

    3. その他の場合、ユーザーエージェントはその子要素自体へDOMフォーカスを設定することもできます(MAY)
  3. フォーカスされる要素がIDを持ち、コンテナ要素がaria-activedescendant属性とDOMフォーカスを両方持っている場合、 その子孫である場合、ユーザーエージェントはアクセシビリティAPIでfocus状態を設定し、 aria-activedescendant値で特定される要素にAPIのfocusイベントを発火する。

5. ロールモデル

このセクションでは、WAI-ARIAロールを定義し、その特性やプロパティについて説明します。

ロール、その特性、サポートする状態やプロパティ、およびマークアップでの活用方法についての仕様は規範的なものとみなされます。

内容をDOMに反映させるため、ユーザーエージェントは推奨されます(SHOULD)ロール属性を実装されているアクセシビリティAPIの適切な値にマッピングし、ロール属性が変化した場合にもマッピングを更新すべきです(SHOULD)

5.1 概念間の関係

ロールモデルは、WAI-ARIAロール同士や、HTMLなど他の仕様の概念と関連付けるために、以下のような関係を用います。

5.1.1 スーパークラスロール

ロールモデル内で、現在のサブクラスロールが拡張しているロールです。この継承によって、スーパークラスロールのすべての状態やプロパティがサブクラスロールにも伝播します。よく知られた安定仕様を除き、継承は本仕様内で定義された項目に限定でき、外部項目が変更された場合に継承クラスへ影響を及ぼさないようにできます。

5.1.2 サブクラスロール

このロールがスーパークラスとなるロールの参考リストです。これは仕様の理解を容易にするために用意されたもので、新たな情報を追加するものではありません。

他の仕様からの類似または関連アイデアに関する参考情報です。関連する概念は必ずしも同一ではありません。関連概念間でプロパティの継承はありません。そのため、一方の概念の定義が変更されても、関連概念のプロパティや振る舞い、定義には影響ありません。

たとえば、プログレスバー(progress bar)はステータスインジケータに似ています。従って、progressbar ウィジェットには関連概念としてstatusがあります。しかし、statusの定義が変更されても、progressbarの定義には影響しません。

5.1.4 基本概念

このロールのプロトタイプとみなされるオブジェクトに関する参考情報です。基本概念は型に似ていますが、制限やプロパティの継承はありません。基本概念は、外部概念について継承の代わりとなるよう設計されています。基本概念は関連概念に似ていますが、基本概念はほぼロール定義と同一です。

例えば、本ドキュメントで定義されたcheckboxは、HTMLで定義される <input type="checkbox"> と同等の機能・期待される動作を持っています。よって、checkboxには[HTML]checkboxbaseConceptとして設定されています。ただし、元の[HTML]のcheckbox baseConcept定義が変更された場合でも、本書のcheckbox定義には影響ありません(型の実際の継承ではないため)。

5.2 ロールの特性

ロールは、その特性によって定義・記述されます。特性はロールの構造的な機能(ロールが何であるか、その背後にある概念、そのロールが持つ・または持たねばならないインスタンス)を定義します。ウィジェットの場合、HTMLフォームへのマッピングに基づくユーザーエージェントとのインタラクションも含まれます。そのロールがサポートするWAI-ARIAの状態やプロパティも示されます。

ロールは、以下の特性を定義します。

5.2.1 抽象ロール

Boolean

抽象ロールは、他のWAI-ARIAロールすべての基礎となるものです。コンテンツ制作者は、抽象ロールを使用してはなりません(MUST NOT)。抽象ロールはAPIバインディングで実装されていません。ユーザーエージェントも、抽象ロールをアクセシビリティAPIの標準ロール機構にマッピングしてはなりません(MUST NOT)。抽象ロールは以下のために設けられています:

  1. ロールモデルの体系化、および既知概念の文脈でロールに意味を与えること。
  2. 必要な機能を内包するロール追加の簡素化。

5.2.2 必須状態およびプロパティ

該当ロールやサブクラスロールに必須の状態プロパティです。コンテンツ著者は必須ステートやプロパティについて、空でない必ず(MUST)指定しなければなりません。明示的にサポートされていない限り、undefinedを必須プロパティに指定してはなりません(MUST NOT)

あるオブジェクトが複数祖先から継承し、ある祖先ではプロパティがサポート対象、別の祖先では必須と指定された場合、そのプロパティは継承先でも必須となります。

注記

適切な暗黙のWAI-ARIAセマンティクスを持つホスト言語属性を使えば、この要件を満たすことができます。

5.2.3 サポートされる状態およびプロパティ

該当ロールおよび子ロールで適用可能な状態プロパティです。コンテンツ著者は、サポート状態・プロパティの値を指定してもよい(MAY)ですが、デフォルト値で十分な場合は省略できます。ユーザーエージェントは全てのサポート状態・プロパティをアクセシビリティAPI必ずマッピングしなければなりません(MUST)。状態やプロパティが未定義かつロールのデフォルト値がある場合、ユーザーエージェントデフォルト値も公開するべきです(SHOULD)

注記

適切な暗黙のWAI-ARIAセマンティクスを持つホスト言語属性を使えば、この要件を満たすことができます。

5.2.4 継承された状態およびプロパティ

ロールがスーパークラスロールから継承するプロパティの参考リストです。状態プロパティは、ロールモデル上でのスーパークラスから継承されるのであり、DOMツリー内の祖先要素から継承されるものではありません。これらプロパティは明示的定義がなくても自動的に継承されます。この情報は仕様の理解のため提供されているものです。サポート状態・継承状態の総集合が、そのロールで全面的に利用できる状態・プロパティ群となります。

5.2.5 禁止状態およびプロパティ

あるロールで禁止される状態やプロパティの一覧です。著者は、禁止状態やプロパティを指定してはなりません(MUST NOT)

注記

適切な暗黙のWAI-ARIAセマンティクスを持つホスト言語属性でも、このセクションで禁止されている状態・プロパティの指定は認められません。

5.2.6 許可されるアクセシビリティ子ロール

このロールを持つ要素のアクセシビリティ子要素(簡単に"子")に許可されるロールのリストです。著者は、許可されたロールを持つ子要素のみ追加しなければなりません(MUST)。例えば、listロールを持つ要素には、listitemロールの子要素を持てますが、optionロールの要素は持てません。

ある要素が特定要素のかを判定する際、ユーザーエージェントはgenericnoneロールを持つ途中の要素は無視します(MUST)

先祖要素の子でない子孫は許可されるアクセシビリティ子ロールには制限されません。例えばimagelistの許可子ではないですが、listitemという許可子の下の子孫であれば有効です。

注記

"許可されるアクセシビリティ子ロール"があるからといって逆関係が成り立つわけではありません。このリスト内ロールを持つ要素が常に指定ロール要素内に存在しなければならないわけではありません。特定ロール要素がどこに含まれるべきかという要件については必要アクセシビリティ親ロールを参照してください。

注記

"許可されるアクセシビリティ子ロール"のサブクラスロールを持つ要素を子要素とするだけではこの要件は満たされません。例えば、listboxロールはoptiongroupロールの子要素を許しますが、groupロールのサブクラスであるrowロールを子にしてもlistboxの条件は満たしません。

注記

適切な暗黙のWAI-ARIAセマンティクスを持つ要素もこの要件を満たします。

注記

許可されるアクセシビリティ子ロールの正しいマークアップ例:

  1. 直接的なDOM子要素:
    <div role="listbox">
    	<div role="option">option text</div>
    </div>
  2. 間にgeneric要素が入ったDOM子要素:
    <div role="listbox">
    	<div>
    		<div role="option">option text</div>
    	</div>
    </div>
  3. 直接的なaria-ownsによる関係:
    <div role="listbox" aria-owns="id1"></div>
    <div role="option" id="id1">option text</div>
  4. aria-ownsとgeneric要素:
    <div role="listbox" aria-owns="id1"></div>
    <div id="id1">
    	<div>
    		<div role="option">option text</div>
    	</div>
    </div>

5.2.7 必須アクセシビリティ親ロール

必須アクセシビリティ親(略して親)ロールは、このロールが許可されるコンテナを定めます。ロールに必須アクセシビリティ親が定められている場合、著者は該当ロールを持つ要素がその親ロールの要素のアクセシビリティ子要素であることを必ず保証しなければなりません(MUST)。例えば、listitemロールの要素はlistロールを持つ要素の子でなければ意味がありません。

要素が必須親ロールを持つか判定する際、ユーザーエージェントはgenericnoneロールを持つ要素は無視します(MUST)

注記

適切な暗黙のWAI-ARIAセマンティクスでこの要件を満たせます。

5.2.8 アクセシブルネーム計算

次のいずれかの値:
  1. author: aria-label属性、aria-labelledby属性、またはホスト言語でのラベリング機構(HTMLのalttitle属性など、HTMLのtitle属性はテキスト代替指定の優先順位が最も低い)で明示的に記述された値により名前が決まる。
  2. contents: 要素ノードのテキスト値から名前が決まる。ただし一部のロールでは"author"も使える場合があるが、より高優先な"author"指定がなければcontent値が使われる。優先順位はアクセシブルネーム・説明計算アルゴリズム [ACCNAME-1.2] に従う。
  3. prohibited: 要素はauthorによる名前付け不可。著者はaria-labelaria-labelledbyで名前指定してはなりません(MUST NOT)
5.2.8.1 名前の算出

名前の算出は、Accessible Name and Description仕様で定義されています。

5.2.8.2 説明の算出

説明の算出は、Accessible Name and Description仕様で定義されています。

5.2.8.3 アクセシブルネーム・説明計算

アクセシブルネーム・説明計算は、Accessible Name and Description仕様で定義されています。

5.2.8.4 著者による名前付与をサポートするロール
5.2.8.5 コンテンツから名前を取得できるロール
5.2.8.6 名前を付与できないロール(名前付与禁止)

5.2.9 プレゼンテーション用の子要素

Boolean(true | false

DOMの子孫はプレゼンテーション要素とみなされます。ユーザーエージェントは、この要素の子孫をプラットフォームのアクセシビリティAPI経由で公開すべきではありません(SHOULD NOT)。もしユーザーエージェントが子ノードを非表示にしない場合、一部の情報が二重で読み上げられるおそれがあります。

5.2.10 ロールによる暗黙的値

多くの状態やプロパティにはデフォルト値があります。特定のロールで使う場合に、通常のデフォルト値とは異なる値が必要なことがあります。標準でないデフォルト値が必要な場合、「ロールによる暗黙的値」でその内容を示します。記法は「state or property name のデフォルトは new default value」です。これが定義されているロールでは、著者が明示的に値を指定しない限り、その状態やプロパティに新たなデフォルト値が適用されます。

5.3 ロールの分類

現在のユーザーシナリオをサポートするため、この仕様ではユーザーインターフェースロール(スライダー、ツリーコントロールなどのウィジェットを定義するもの)およびページ構造(セクションやナビゲーションなどを定義するもの)を分類しています。なお、一部の支援技術はapplicationdocumentロールが指定された領域について、特別な操作モードを提供する場合があります。

ロール間の関係性を視覚的に表した図はARIA 1.2 クラス図で確認できます。

ロールは以下のように分類されます:

  1. 抽象ロール
  2. ウィジェットロール
  3. ドキュメント構造ロール
  4. ランドマークロール
  5. ライブリージョンロール
  6. ウィンドウロール

5.3.1 抽象ロール

以下のロールは、一般的なロールの概念定義のためにWAI-ARIAロールモデルをサポートするものです。

抽象ロールはオントロジー用です。著者は抽象ロールをコンテンツに使用してはなりません(MUST NOT)

5.3.2 ウィジェットロール

以下のロールは個別のユーザーインターフェースウィジェット、または大きな複合ウィジェットの一部として動作します。

以下のロールは複合ユーザーインターフェースウィジェットとして動作します。これらは他のウィジェットを管理するコンテナ的な役割です。

5.3.3 ドキュメント構造ロール

以下のロールはページ内コンテンツの構造を記述するものです。ドキュメント構造ロール自体は通常インタラクティブではありません。

5.3.4 ランドマークロール

以下のロールは、ページ上でナビゲーション用ランドマークとなる領域を表します。これら全てのロールはlandmark基底型から継承されており、すべてRole Attribute [ROLE-ATTRIBUTE]から輸入されています。これらのロールは、WAI-ARIAロールモデルの一部であることを明示するためにここに含めています。

5.3.5 ライブリージョンロール

以下のロールライブリージョンであり、ライブリージョン属性で変更できます。

5.3.6 ウィンドウロール

以下のロールは、ブラウザまたはアプリケーション内のウィンドウとして動作します。

5.4 ロールの定義

以下はWAI-ARIA ロールのアルファベット順リストです。

抽象ロールはオントロジー用です。著者は抽象ロールをコンテンツで使用してはなりません(MUST NOT)

alert
重要かつ、通常は時間的制約のある情報を持つライブリージョンの一種。関連: alertdialogstatus
alertdialog
アラートメッセージを含むダイアログ。初期フォーカスはダイアログ内の要素に移動。関連: alertdialog
application
1つ以上のフォーカス可能な要素を含み、キーボードやジェスチャなどユーザー入力が必要だが、widgetロールでサポートされる標準的な操作パターンには従わないstructure
article
ドキュメント、ページ、またはサイトの独立した構成部品となるページ内セクション。
banner
ページ固有でなくサイト全体に関連する内容を主に含むlandmark
blockquote
他の情報源から引用された内容のセクション。
button
クリックや押下でユーザー操作を起動できる入力。関連: link
caption
figuregridgroupradiogrouptabletreegridの説明や名称を表す可視コンテンツ。
cell
表形式コンテナ内のセル。関連: gridcell
checkbox
チェック可能な入力で、truefalsemixedのいずれか。
code
内容がプログラムコード片であることを表すセクション。
columnheader
列のヘッダー情報を含むセル。
combobox
他の要素(listboxgridなど)を制御し、ユーザーが値入力を支援するために動的にポップアップできるinput
command
アクションは実行するが入力データは受け取らないウィジェット型。
comment
他の内容に対する反応・意見を表すコメント用内容。
complementary
メインコンテンツと「兄弟」または直接の子孫となるよう設計されたlandmark。分離しても意味が保たれる補助的な内容。
composite
ナビゲート可能なアクセシビリティ子孫を持てるウィジェット
contentinfo
親ドキュメントに関する情報を含むlandmark
definition
用語または概念の定義。関連: term
deletion
削除済み・削除提案中・もはや関連しないことを示す内容。関連: insertion
dialog
ウェブアプリの基準となるウィンドウの子ウィンドウ。HTMLページなら body 要素が主ウィンドウとなる。
directory
【ARIA 1.2 で非推奨】グループメンバへの参照リスト(例:静的な目次)。
document
要素で、支援技術利用者が「リーディングモード」で閲覧することを想定した内容を含む。
emphasis
1つ以上の強調文字。関連: strong
feed
スクロール可能なlistで、その構成要素にarticleを使う。スクロールにより記事がリストの両端から動的に追加・削除される場合あり。
figure
認知可能なsectionで、典型的にはグラフィカルドキュメント、画像、メディアプレーヤー、コード断片、サンプルテキストなどを含む。figure内の各部分がユーザー操作可能な場合もあります(MAY)
form
フォームを構成するアイテムやオブジェクト集合を含むlandmark。関連: search
generic
独自セマンティクスを持たない名無しのコンテナ要素
grid
複数行・複数セルからなり、上下左右キー等による2次元ナビゲーションでフォーカス可能なセルを含む複合widget
gridcell
gridtreegrid内のcell
group
ページ要約や目次に含める意図のないUIオブジェクトのまとまり。
heading
ページ内セクション用の見出し。
image
複数の要素から構成される画像グループ用コンテナ。別名はimg
img
複数の要素からなる画像グループ用コンテナ。別名:image
input
ユーザー入力を受け付けるジェネリックなウィジェット型。
insertion
追加済み・追加提案中の内容。関連: deletion
landmark
用途が明示され、ナビゲーションやサマリー出力の対象にもなる価値ある内容を含む認知可能なsection。サマリー生成はユーザーエージェントや支援技術が動的に行う場合あり。
link
実行するとユーザーエージェントが外部・内部リソースへ移動するインタラクティブな参照。関連: button
list
listitem要素を含むsection。関連: listbox
listbox
リストから1つ以上を選択できるウィジェット。関連: comboboxlist
listitem
リストまたはディレクトリ内の個別項目。
log
新情報が意味的順序で追加され、古い情報が消えるタイプのライブリージョン。関連: marquee
main
ドキュメント本体を含むlandmark
mark
文脈上の重要性から参照用・強調用にマーク・ハイライトされた内容。
marquee
重要でない情報が頻繁に変化するタイプのライブリージョン。関連: log
math
数式を表す内容。
menu
選択肢リストをユーザーに提供するウィジェット型。
menubar
通常は水平表示かつ常時表示されるmenuのプレゼンテーション。
menuitem
menuまたはmenubar内の選択肢項目。
menuitemcheckbox
チェック状態(truefalsemixed)を持つmenuitem
menuitemradio
同一ロール内で1つのみチェック可能なチェック可能menuitem
meter
既知範囲や分数を示すスカラー値を表す要素。関連: progressbar
navigation
文書や関連ドキュメントへナビゲーションするためのナビゲーション用要素(多くはリンク)群を含むlandmark
none
暗黙のネイティブロールセマンティクスがアクセシビリティAPIにマッピングされない要素。別名: presentation
note
主内容の補足・挿入情報となるsection
option
listbox内の項目。
paragraph
段落内容。
presentation
暗黙のネイティブロールセマンティクスがアクセシビリティAPIにマッピングされない要素。別名: none
progressbar
長時間かかるタスクの進捗状況を表示する要素
radio
同一グループ内で1つのみチェック可能なチェック型入力。
radiogroup
複数のradioボタンのグループ。
range
値の範囲を表す要素。
region
用途が明示され十分に重要な内容を持つlandmark。サマリーは動的生成もあり。
roletype
すべてのロールが継承する基底となるロール
row
表形式コンテナ内のセル行。
rowgroup
表形式コンテナ内の1つ以上の行要素を持つ構造。
rowheader
行のヘッダー情報を含むセル。
scrollbar
表示領域内のコンテンツをスクロール可能にするグラフィックオブジェクト。
search
検索機能を構成するアイテムやオブジェクト集合を含むlandmark。関連: formsearchbox
searchbox
検索条件指定用のtextbox型。関連: textboxsearch
section
ページ内描画可能な構造的コンテナ単位。
sectionhead
関連セクションのテーマやサマリー見出しとなる構造。
select
選択肢から選ばせるフォームウィジェット。
separator
内容セクションやメニュー項目グループの区切り線。
slider
ユーザーが指定範囲から値を選択する入力。
spinbutton
個々の選択肢から選ばせるrange型。
status
ユーザーへの助言情報だが、alertほど重要でないライブリージョン。しばしば(必ずしもではないが)ステータスバーとして表示。
strong
重要・重大・緊急な内容。関連: emphasis
structure
文書構造用要素
subscript
下付き文字(1つ以上)。関連: superscript
suggestion
単一の内容変更提案。
superscript
上付き文字(1つ以上)。関連: superscript
switch
オン/オフ値(checked/uncheckedとは異なる)を表すチェックボックス型。関連: checkbox
tab
タブ内容選択機構を提供するグループラベル。
table
行・列でデータを配列したsection。関連: grid
tablist
tabという要素リストで、それぞれがtabpanelに紐づく。
tabpanel
tabごとに関連リソースを格納するコンテナ(すべてtablistに属す)。
term
定義が任意で付属する単語やフレーズ。関連: definition
textbox
自由形式テキスト入力を受け付ける型。
time
具体的な時刻やタイムポイントを表す要素。
timer
開始からの経過時間や終了までの残り時間を表す数値カウンタを含むライブリージョン型。
toolbar
よく使う関数ボタンやコントロール集をコンパクトにまとめたもの。
tooltip
要素の説明を表示するコンテキストポップアップ。
tree
階層構造コレクションから1つ以上を選択できるwidget
treegrid
treeのように行を展開・折りたためるgrid
treeitem
tree内の項目。
widget
グラフィカルユーザーインターフェース(GUI)のインタラクティブ構成要素。
window
ブラウザまたはアプリケーションのウィンドウ。

alert role

重要かつ多くの場合時間的制約のある情報を持つライブリージョンの一種。関連:alertdialogstatus

alertはユーザーに直ちに重要なメッセージを伝えるために使われます。音声警告の場合、alertは聴覚障害者へのアクセシブルな代替を提供します。alert ロールは、アラートメッセージを含む要素に付与します。alertは、statusロールの特殊な形で、原子的なライブリージョンとして処理されます。

alertはアサーティブライブリージョンであり、支援技術ユーザーへ直ちに通知を発生させます。OSが許すなら、ユーザーエージェントアクセシビリティAPI経由でシステムアラートイベント推奨(SHOULD)発火すべきです。

alertが処理されるのに、著者やユーザーエージェントがフォーカスを設定・管理する必要はありません。alertはフォーカスを受ける必要がないため、著者はユーザーにalertを閉じることを要求すべきではありません(SHOULD NOT)。もし著者がアラートの伝達時にフォーカスを移したい場合は、alertdialogalertの代わりに使うべきです(SHOULD)

alertロールの要素はaria-liveassertiveおよびaria-atomictrueが暗黙的に設定されます。

特性:
特性
スーパークラスロール: section
サブクラスロール:
継承された状態・プロパティ:
名前の由来: author
ロールによる暗黙値: aria-live のデフォルトは assertive
aria-atomic のデフォルトは true

alertdialog role

ダイアログ内で初期フォーカスが要素に移る、アラートメッセージを含むダイアログの一種。関連:alertdialog

alertdialogはユーザーに警告メッセージを伝えるために使われます。alertdialog ロールは、アラートメッセージとダイアログ全体を含むノードに適用します。著者は、alertdialogが表示されている間、キーボードやマウスの操作がそのダイアログ内でのみ有効となるようにして、アラートダイアログをモーダルにすべきです(SHOULD)aria-modalを参照してください。

alertと異なり、alertdialogはユーザーからの応答を受けることができます。たとえば「通知を理解したか」などの確認入力が想定されます。アラートダイアログを表示した時、著者はダイアログ内のアクティブな要素(フォームコントロールや確認ボタン等)にフォーカスを当てるべきです(SHOULD)ユーザーエージェントは、意図されたアクセシビリティAPIが指定されていれば、アラート作成時にアクセシビリティAPI経由でシステムアラートイベント発火すべきです(SHOULD)

著者はalertdialogでアラートメッセージ要素を参照するためにaria-describedby指定すべきです(SHOULD)。指定しない場合、支援技術はアラートメッセージ内容を決定するため内部リカバリ手段を使うことがあります。

特性:
特性
スーパークラスロール:
継承された状態・プロパティ:
名前の由来: author
アクセシブルネーム必須: True

application role

1つ以上のフォーカス可能な要素を含み、キーボードやジェスチャ入力等、widgetロールによってサポートされる標準的な操作パターンに従わないユーザー入力が必要なstructure

一部のユーザーエージェント支援技術には「ブラウズモード」があり、上下矢印キーなどの標準入力イベントを読取カーソル操作のために奪取します。このブラウズモード動作により、widgetロールを持たない要素は、こうしたキーボード・ジェスチャイベントでの対話ができません。

WAI-ARIAwidgetロールでは対応できない操作モデルを持つ要素が必要な場合、著者はその要素にapplicationロールを設定してもよい(MAY)です。ユーザーがapplicationロールの要素に入った場合、標準入力イベントを奪取する支援技術は、入力イベントをアプリケーションに直接渡すモードへ移行すべきです(SHOULD)

例:プレゼンテーションスライドエディターでは、矢印キーでテキストボックスや画像要素の位置を変更します。こうした操作はARIAのwidgetロールで適合するモデルがないため、著者はスライドコンテナにapplicationロール、およびaria-roledescriptionで「スライドエディタ」などの説明、aria-describedbyで説明テキストを指定できます。

一部支援技術ではapplication内のフォーカス可能要素しかユーザーが利用できないため、著者はアプリケーション内の非装飾的な静的テキストや画像コンテンツもアクセシブルとなるよう、以下いずれかの手法を必ず使う必要があります(MUST)

  1. aria-labelledbyまたはaria-describedbyで、内容をフォーカス可能な要素と関連付ける。
  2. 内容を、documentまたはarticleロールのついたフォーカス可能な要素内に配置する。
  3. フォーカス管理で説明されているように、aria-activedescendantを更新して、フォーカス中内容を含む要素を参照することで、アクセシビリティ子孫のフォーカス管理を行う。
特性:
特性
スーパークラスロール: structure
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来: author
アクセシブルネーム必須: True

article role

ドキュメント、ページ、またはサイトの独立した構成部分となる合成物からなるページセクション。

articleはランドマークにはなりませんが、入れ子にしてディスカッション構造を形成でき、支援技術はその入れ子構造にも配慮してユーザーの理解を支援できます。articleはフォーラムへの投稿、雑誌や新聞記事、ブログエントリ、ユーザーコメントなど独立した内容全般に利用できます。「独立」とはその内容が単独でも成立する(例:シンジケーション先で利用できる)という意味です。ただし要素自体は祖先との関連を持ち、例えば親body要素の連絡先情報はarticleにも適用されます。articleの入れ子では、子articleが親articleの内容に関するものを表します。たとえば、コメントがブログ記事のarticleの子articleとして表現される場合です。記事の著者、見出し、日付等は入れ子の子articleには適用されません。

ユーザーがarticleロールを持つ要素に移動したとき、多くの支援技術(標準キーボードイベントを処理するもの)は標準キーボードイベントをWebアプリにパスせずドキュメント閲覧モードに切り替えるべきです(SHOULD)。一部の支援技術では、入れ子構造のarticleも階層移動機能として提供されます。

articlefeed内の場合、著者はaria-posinsetaria-setsizeの値を指定してもよい(MAY)です。

特性:
特性
スーパークラスロール: document
サブクラスロール:
関連概念:
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来: author

blockquote role

他の出典から引用されたコンテンツのセクション。

特性:
特性
スーパークラスロール: section
関連概念:
継承された状態・プロパティ:
名前の由来: author

button role

クリックまたは押下時にユーザー操作を開始できる入力。関連:link

ボタンは主に個別動作のために使われます。ボタンの見た目を標準化するとウィジェットがボタンであることの認知が向上し、ツールバーなどでもよりコンパクトに表示できます。

ボタンは、オプションで属性aria-pressedをサポートします。aria-pressed属性が空でない場合、そのボタンはトグルボタンです。aria-pressedtrueの時ボタンは「押された」状態aria-pressedfalseだと未押下となります。属性が無ければ、単なるコマンドボタンです。

特性:
特性
スーパークラスロール: command
基本概念: <button> in HTML
関連概念:
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブルネーム必須: True
子要素はプレゼンテーショナル: True

caption role

figuregridgroupradiogrouptable、またはtreegridの名称や説明となる可視コンテンツです。

caption を使う場合、著者は次を満たすべきです(SHOULD)

captionが含まれる要素のアクセシブルネームとなる場合、著者はその要素にcaption要素を参照するaria-labelledby指定すべきです(SHOULD)

<div role="radiogroup" aria-labelledby="cap">
   <div role="caption" id="cap">
     お好きなフルーツを選んでください
   </div>
   <!-- ... -->

captionが名前と説明を両方に使われている場合、著者は caption 内の「名前」になる要素を aria-labelledby で、説明となる要素を aria-describedby参照してもよい(MAY)です。

<div role="table" aria-labelledby="name" aria-describedby="desc">
   <div role="caption">
     <div id="name">大会参加者一覧</div>
     <div id="desc">
       このテーブルは過去4週間で大会に参加した合計人数(500人)を示しています。
     </div>
   </div>
   <!-- ... -->

captionが長い説明文の場合や、説明に理解上重要なセマンティクス要素が含まれている場合、著者はcaption内の「名前」要素をaria-labelledby、説明要素をaria-detailsで参照してもよい(MAY)です。

<div role="figure" aria-labelledby="name" aria-details="details">
  <!-- ここに複雑なデータビジュアライゼーションSVGなど -->
   <div role="caption">
     <div id="name">20XX年度の販売情報</div>
     <div id="details">
       この棒グラフは5年間の販売総額を示します。昨年度の販売情報
       を確認したり、
       を上に重ねて表示したりできます。
     </div>
   </div>
   <!-- ... -->

captionが説明目的のみで、親要素のアクセシブルネームとなる文字列がない場合はaria-labelaria-labelledby も利用できcaptionaria-details経由で説明とみなしてもよい(MAY)です。

<div role="figure" aria-label="販売情報" aria-details="details">
  <!-- ここに複雑なデータビジュアライゼーションSVGなど -->
   <div role="caption" id="details">
     この棒グラフは5年間の販売総額を示します。昨年度の販売情報
     を確認したり、
     を上に重ねて表示したりできます。
   </div>
   <!-- ... -->
特性:
特性
スーパークラスロール: section
関連概念:
必須アクセシビリティ親ロール:
継承された状態・プロパティ:
禁止される状態・プロパティ:
名前の由来: prohibited

cell role

表形式コンテナ内のセル。関連:gridcell

著者は必ず(MUST)elementcell roleを指定した場合は、それがrole rowを持つ要素のアクセシビリティ子要素となるようにしなければなりません。

特性:
特性
スーパークラスロール: section
サブクラスロール:
基本概念: <td> in HTML
必須アクセシビリティ親ロール: row
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来:
  • contents
  • author

checkbox role

3つのtruefalsemixed)を持つチェック可能な入力。

aria-checked属性は、 checkboxがチェック済み(true)、未チェック(false)、または混合(mixed)(チェック・未チェックが混在するグループ)のいずれであるかを示します。多くのチェックボックスはmixed値を使用せず、実質的にはboolean型のチェックボックスです。

注記

HTMLのネイティブなチェックボックスはセマンティクスが強いため、input type=checkboxaria-checkedを使うのは推奨されません。代わりに、ネイティブのchecked属性や、チェックボックスが"checked"か"mixed"かを表すindeterminateIDL属性を使ってください。

特性:
特性
スーパークラスロール: input
サブクラスロール:
関連概念:
必須状態・プロパティ:
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブルネーム必須: True
子要素はプレゼンテーショナル: True

code role

内容がコンピュータコード断片であるセクション。

codeロールの主な役割は支援技術に「この内容はコンピュータコード」であり、特別な表現(特に音声合成時)が必要かもしれないことを伝えることです。特にスクリーンリーダー等の音声出力機能では、"-"のような記号も省略せず読み上げるようすべきです(SHOULD)

特性:
特性
スーパークラスロール: section
関連概念:
継承された状態・プロパティ:
禁止される状態・プロパティ:
名前の由来: prohibited

columnheader role

列のヘッダー情報を含むセル。

columnheaderは、テーブルやグリッドにおける列ヘッダーとして使用できます。また、円グラフなどでデータ内の同種の関係性を表すためにも使えます。

columnheaderは、その列内のすべてのセルと構造的な関係を持ちます。これはHTMLth要素(列スコープ付き)と等価です。

著者は必ず(MUST)elementcolumnheader roleを付与した場合、それがrowロールを持つ要素のアクセシビリティ子要素になるようにしなければなりません。

aria-selected状態をcolumnheaderに適用しても、該当列のすべてのセルにaria-selectedが自動伝播されることはありません。著者が特定アプリケーションの要件に応じて選択伝播することは可能(MAY)です。

columnheaderロールはインタラクティブなグリッド、非インタラクティブなテーブル両方で使えますが、aria-readonlyaria-requiredはインタラクティブ要素にのみ適用されます。そのため、著者はtable下のcolumnheaderaria-requiredaria-readonly使用すべきではありません(SHOULD NOT)し、ユーザーエージェントもgrid下でない限りこれらのプロパティを支援技術へ公開すべきではありません(SHOULD NOT)

注記

セルは行単位で構成されるため、列の単独コンテナ要素は存在しません。列とは、各row内で特定位置にあるgridcell群の集合を指します。

注記: aria-disabledの利用について

現時点ではaria-disabledcolumnheaderロールでサポートされていますが、将来バージョンではgridtreegrid内でのみ利用可とし、それ以外では使用禁止となる予定です。

特性:
特性
スーパークラスロール:
基本概念: <th scope="col"> in HTML
必須アクセシビリティ親ロール: row
サポートされる状態・プロパティ: aria-sort
継承された状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブルネーム必須: True

combobox role

inputが、listboxgridなど、他の要素を制御し、そのpopupによってユーザーがinputの値を設定するのを支援するものです。

編集者注: ARIA 1.2でのcomboboxロールの大きな変更点

comboboxに関するガイダンスは、以前のパターンの実装上の問題によりARIA 1.2で大幅に変更されました。ユーザーエージェント、支援技術、適合チェッカーの著者・開発者はこのセクションをよく確認し、変更内容を理解してください。変更点の解説はARIAリポジトリのwikiにあります。

comboboxは、名前付き入力フィールドと補助的なpopup要素による値選択支援機能を統合したものです。 combobox入力は、編集・入力が可能な1行テキストフィールド、または値を表示するのみの要素でもよい(MAY)です。 comboboxがテキスト入力対応かつaria-autocompleteによる自動補完動作を持つときは、著者は必ず(MUST)comboboxaria-autocompleteを対応する値で付与してください。

通常、comboboxの初期状態は折りたたみ(collapsed)です。折りたたみ時は、combobox要素本体と、個別の(オプション)popup制御buttonのみが見えます。combobox本体とpopup要素の両方が表示されている状態を展開(expanded)と呼びます。著者は必ず(MUST)、展開時はcomboboxaria-expandedtrue、折りたたみ時はfalseと設定してください。

著者は必ず(MUST)comboboxに関連付けるpopup要素にlistboxtreegrid、またはdialogロールを付与してください。popupが表示時には必ず(MUST)comboboxaria-controlsでpopup要素を参照します。

comboboxロールの要素は、暗黙的にaria-haspopup値がlistboxとなります。popup要素のロールがlistbox以外の場合、著者は必ず(MUST)popupに合わせたaria-haspopup値を明示的に指定してください。

もしUIにpopupの表示制御用アイコンがあり、ポインタやタッチイベントで操作できる場合、著者はその要素にbuttonロールを付け、フォーカス可能だがページのTab順には含めず、comboboxの子孫にならないようすべきです(SHOULD)。更に、キーボードでもcomboboxおよびpopup内要素間のフォーカス移動機構を設けるべきです(SHOULD)。例:下矢印キーで入力欄からpopup要素の最初のフォーカス対象に移動など。もしpopupがaria-activedescendantをサポートする場合、実際のフォーカス移動の代わりにcomboboxaria-activedescendant値で操作でき、popup子孫のどれかがアクティブなら、著者はaria-activedescendantをその子孫要素idにしてもよい(MAY)です。

ユーザーエージェントは必ず(MUST)comboboxロール要素の値を支援技術に公開してください。comboboxの値は以下のいずれかです:

  • combobox要素が値を持つホスト言語要素(例:HTMLのinput要素)の場合、その要素の値がcomboboxの値となります。
  • それ以外の場合、comboboxの値はその子孫要素から決まり、buttonの名前算出方法と同様に決定します。
    <label id="tag_label" for="tag_combo">Tag</label>
  <input type="text" id="tag_combo"
      role="combobox" aria-autocomplete="list"
      aria-haspopup="listbox" aria-expanded="true"
      aria-controls="popup_listbox" aria-activedescendant="selected_option">
<ul role="listbox" id="popup_listbox" aria-labelledby="tag_label">
   <li role="option">Zebra</li>
   <li role="option" id="selected_option">Zoom</li>
</ul>
編集者注: ARIA 1.2のcomboboxの適合性変更

この内容をよくご確認ください。これらの変更によりARIA 1.1 combobox仕様準拠の実装はARIA最新仕様ではもはや適合しません。

注記

本バージョン仕様で定義されたcomboboxの構造要件は、ARIA 1.0や1.1での要件と異なります:

  • ARIA 1.0ではcomboboxを付けるのは1行テキスト入力要素で、そのpopup要素はaria-controlsではなくaria-ownsで参照していました。
  • ARIA 1.1(広く支援技術でサポートされなかった)は、comboboxがフォーカス不可の要素で、2つの必須アクセシビリティ子 ― フォーカス可能なtextboxと、そのtextboxが操作するpopup要素 ― を持つことを要求していました。
  • ARIA 1.2で導入された変更は、支援技術との相互運用性を改善し、ネイティブHTMLのselect要素の表現に近いcomboboxの実装が可能となりました。

comboboxの実装は機能・挙動が多様であり、著者が考慮すべき点が多くあります。設計パターン詳細はWAI-ARIAオーサリングプラクティスをご参照ください。

特性:
特性
スーパークラスロール: input
関連概念:
必須状態・プロパティ: aria-expanded
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来: author
アクセシブルネーム必須: True
ロールによる暗黙値: aria-haspopupのデフォルトはlistbox

command role

アクションは実行するが入力データは受け取らないウィジェット型。

command抽象ロールであり、オントロジー用です。著者は絶対に(MUST NOT)内容にcommandロールを使用しないでください。

特性:
特性
抽象ロール: True
スーパークラスロール: widget
サブクラスロール:
継承された状態・プロパティ:

comment role

コメントは他の内容に対する反応・意見を表す内容です。

コメントは小さなテキスト片から他のコメント、記事全体まで様々な可視コンテンツに注釈できます。著者はコメントとその対象コンテンツとの関係を下記のように明示すべきです(SHOULD)

  1. コメントが他のcommentへの返信の場合:
    • すべての先祖コメントがDOM上にあるなら、返信となるcommentを返信先commentの論理的子孫(DOMの子要素化やaria-ownsで関連付け)にしてください。
    • また、すべての先祖コメントがDOM上にない(ページ分割等)場合は、階層レベルはaria-levelで、リスト内位置はaria-posinsetおよびaria-setsize指定してもよい(MAY)です。
  2. その他、コメントがページ内他の内容に関連する場合:
    • コメント対象要素にaria-detailsで該当comment要素を参照すべきです(SHOULD)
    • 同じ対象に複数コメントがあるなら、それぞれ個別のcommentaria-detailsで参照するか、親コンテナをまとめてaria-detailsで参照してください。コンテナ(comment複数格納要素)を参照する場合、著者はgroupregionロールを必ずつけてください(SHOULD)。

著者がcomment要素にaria-levelaria-posinsetaria-setsizeいずれも明示しない場合は、ユーザーエージェントは必ず(MUST)値を自動算出し支援技術へ公開します。

特性:
特性
スーパークラスロール: article
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来:
  • contents
  • author

complementary role

主コンテンツの兄弟または直下に配置し主コンテンツを補足するよう設計されたlandmarkです。関連する主コンテンツと分離しても意味が保たれる補助領域です。

このロールを使う内容例として、ポータルの場合は上映時間、現在の天気、関連記事、注目株価など様々です。補助コンテンツが主コンテンツから完全に独立できる場合は、より一般的なロールを用いるのが適切です。

支援技術は、ユーザーがcomplementaryロール要素に素早く移動できるようすべきです(SHOULD)ユーザーエージェントは、complementaryロール要素をナビゲーション用ランドマークとして扱うべきです(SHOULD)ユーザーエージェントは、これら要素への移動支援を提供してもよい(MAY)です。

特性:
特性
スーパークラスロール: landmark
関連概念:
継承された状態・プロパティ:
名前の由来: author

composite role

ウィジェットのひとつで、ナビゲーション可能なアクセシビリティ子孫を含むことができます。

著者は、複合ウィジェットがWebページ内の広域ナビゲーションで一つのナビゲーション停止点として存在するよう推奨します(SHOULD)。複合ウィジェットにフォーカスが入った後は、ユーザーがその複合要素内のelement、つまりアクセシビリティ子孫に移動できる独立したナビゲーション手段を用意すべきです(SHOULD)

composite抽象ロールであり、オントロジー用です。著者はcompositeロールをコンテンツで使用してはなりません(MUST NOT)

特性:
特性
抽象ロール: True
スーパークラスロール: widget
サブクラスロール:
サポートされる状態・プロパティ:
継承された状態・プロパティ:

contentinforole

親ドキュメントに関する情報を含むlandmarkです。

この領域に含まれる情報例として、著作権やプライバシーステートメントへのリンクなどがあります。

支援技術は、ユーザーがcontentinfoロールの要素に素早く移動できるようすべきです(SHOULD)ユーザーエージェントcontentinfoロール要素をナビゲーション用ランドマークとして扱うべきです(SHOULD)ユーザーエージェントはユーザーがcontentinfoロール要素に素早く移動できるようしてもよい(MAY)です。

著者は1ページにつきcontentinfoロールを持つ要素は1つまでにすべきです(SHOULD)

注記

documentおよびapplication要素はDOM上で入れ子にできるため、それぞれ異なるドキュメントノードに関連している限り、DOMの子孫として複数のcontentinfo要素を持つことができます(例:documentdocumentの中にある場合や、aria-owns属性の利用による場合)。

特性:
特性
スーパークラスロール: landmark
関連概念:
継承された状態・プロパティ:
名前の由来: author

definitionrole

用語または概念の定義です。関連:term

著者は、定義対象となるelementを特定し、その要素にtermロールを付与しなければなりません(MUST)

definitionロールをフォームコントロールのようなインタラクティブ要素に使用すると、支援技術利用者がその要素を操作できなくなるおそれがあるため、著者は使用すべきではありません(SHOULD NOT)

特性:
特性
スーパークラスロール: section
継承された状態・プロパティ:
禁止される状態・プロパティ:
名前の由来: prohibited

deletion role

deletionは、削除された内容・削除提案中の内容、あるいは付随する内容の文脈で無関係になった内容を表します。関連:insertion

deletionは通常、2つのコンテンツバージョンの差分マークや、複数人で編集しているときに削除提案候補を示すために使われます。

特性:
特性
スーパークラスロール: section
関連概念:
継承された状態・プロパティ:
禁止される状態・プロパティ:
名前の由来: prohibited

dialog role

ダイアログは、ウェブアプリケーションの主要ウィンドウの子ウィンドウです。HTMLページの場合、主要なアプリケーションウィンドウはWebドキュメント全体、つまりbody要素です。

ダイアログは主にユーザーに入力や応答を促すために使われます。作業の流れを中断させるダイアログは通常モーダルです。関連:alertdialog

著者は必ず(MUST)ダイアログにアクセシブルネームを付与しなければなりません。これはaria-labelaria-labelledby属性で実現できます。

著者は、すべてのダイアログ(モーダル・非モーダル共)に少なくとも1つのフォーカス可能な子孫要素があるよう推奨します(SHOULD)。モーダルダイアログが表示された時には、要素にフォーカスを当て、そのフォーカス管理も推奨します(SHOULD)

注記

このロールの説明内で使われている「ウェブアプリケーション」は、applicationロール(支援技術向けの特定動作)を指していません。

特性:
特性
スーパークラスロール: window
サブクラスロール:
継承された状態・プロパティ:
名前の由来: author
アクセシブルネーム必須: True

directory role

【ARIA 1.2 で非推奨】グループメンバーへの参照リスト(例:静的な目次)。

注記

アクセシビリティAPIが公開するdirectory ロールは本質的にlist ロールと同等です。つまりdirectoryを使っても支援技術利用者には追加の利点がありません。著者はdirectoryを非推奨とし、代わりにlistやホスト言語の同等なセマンティクスを使用することを推奨します。

directoryは、リンク付き/リンクなしの静的な目次です。リストや入れ子リストで作られた目次も含みます。動的な目次にはtreeロールの利用が考えられます。

特性:
特性
スーパークラスロール: list
継承された状態・プロパティ:
名前の由来: author

document role

要素であり、その内容を支援技術利用者がリーディングモードで閲覧することを想定しています。

ユーザーエージェントのフォーカスがdocumentロールを持つ要素へ移動した時、静的コンテンツ閲覧用のリーディングモードを備えた支援技術は、そのモードへ切り替えてもよい(MAY)です。また、上下キー入力などの標準イベントを読取カーソル操作用に奪取します。

リーディングモード対応の支援技術は、widgetapplicationロール以外の要素はすべてデフォルトでリーディングモード扱いにするため、documentロールが支援技術の動作切り替えで有効になるのは、そのdocumentロールがwidgetまたはapplicationロール要素のフォーカス可能な子要素の場合のみです。例として、application要素内にある静的リッチテキスト要素にdocumentロールを付与し、tabindex0にすることで、スクリーンリーダーユーザーがTabキー操作でdocument要素へフォーカスを移したときに、そのリーディングカーソルでテキストを読めるようにできます。

特性:
特性
スーパークラスロール: structure
サブクラスロール:
継承された状態・プロパティ:
名前の由来: author

emphasis role

1つ以上の強調文字。関連:strong

emphasisロールの目的は意味的な強調・ストレスを伝えることです。単に表記上の変化だけで意味が変わらない場合には使いません。emphasisロールを使わないことで内容の意味が変わる場合だけ使うべきです(SHOULD)

emphasisロールは重要性自体を伝えるものではありません。重要性にはstrongロールの使用がより適切です。

特性:
特性
スーパークラスロール: section
関連概念:
継承された状態・プロパティ:
禁止される状態・プロパティ:
名前の由来: prohibited

feed role

スクロール可能なlistで、articlesがリストの両端で追加または削除される場合があります。

feedは、ドキュメント閲覧モードを持つ支援技術のユーザー、例えばスクリーンリーダーが、読み取りカーソルでリッチなコンテンツのストリームを読んだりスクロールしたりできるようにします。このストリームは、ユーザーが読むにつれて無限にスクロールできるよう次々にコンテンツを読み込めます。feed内では、支援技術がユーザーの読み取りカーソル移動をWebアプリケーションに通知するため、ユーザーエージェントのフォーカスを移動させ、アプリケーションが新しいコンテンツの追加や可視位置の調整を行うことを可能にします。feedはまた、著者が追加・削除が発生していることを支援技術に知らせることで、読み取りやパフォーマンスを損なわず最新の表示に更新できるようにします。

例えば、feedをニュース記事のストリーム表示に使うことができます。各articleはテキスト、リンク、画像、コメント、シェアやコメント用ウィジェットを含むニュースを表示します。スクリーンリーダーユーザーが各ストーリーを読んだり操作し、読みカーソルを次のストーリーに動かすと、そのストーリーが画面に現れ、必要に応じて新しいストーリーが追加で読み込まれます。

feedは、その子にarticleロールを持つ要素を持つコンテナ要素です。feedの両端でarticlesの追加・削除が行われる際には、著者は変更前にfeed要素のaria-busytrueにし、変更完了後にfalseに戻すべきです(SHOULD)。また、feedの途中でarticlesの挿入・削除は避けるべきです(SHOULD)。これにより、支援技術がユーザーの読み取りカーソル移動と同時発生する変更にうまく対処できます。

著者はfeed内の各articleをフォーカス可能とし、アプリケーションはarticleやその子孫要素にuser agentのフォーカスが当たったときに、そのarticleを画面にスクロールインするようにすべきです(SHOULD)。例えばHTMLでは、各article要素にtabindex属性で-10を設定します。

支援技術の読みカーソルが1つのarticleから別のarticleに移る際、支援技術はその読み取りカーソルのあるarticle自体にuser agentのフォーカスを合わせるべきです(SHOULD)。ただし、読みカーソルがarticle内のフォーカス可能な要素にいる場合は、代わりにその要素へフォーカスしてもよい(MAY)です。

支援技術の読みカーソルで別のarticleにスクロールするにはページ内に次のarticleが必要なため、著者はユーザーエージェントのフォーカスが端のarticleに届く前に追加のarticlesのさらなる読み込みを試みるべきです(SHOULD)。もしくは端にbutton要素など「さらに読み込む」仕組みを含むarticleを配置してもよい(MAY)です。

簡単なラベル提供に加えて、著者はfeed内のarticle要素にaria-describedbyを指定することで、スクリーンリーダーがラベルのあとに何を読み上げるか調整してもよい(MAY)です。スクリーンリーダーはfeedコンテンツをラベル+アクセシブルな説明の両方で読みあげて概要把握を促し、ウィジェット等繰り返しや重要度の低い要素は省略できます。

著者は、支援技術によるarticleナビゲーション機能を持たないユーザーでもキーボードでfeed内のarticlesを移動できるよう、フォーカス移動のキーボードコマンドを用意すべきです(SHOULD)

feed内の記事数が固定の場合、著者はそのfeedarticle要素でaria-setsizeを指定してもよい(MAY)です。ただし非常に多い・未定・頻繁に変化する場合は、aria-setsize-1で「不明」と表現してもよい(MAY)です。

デザインパターンの詳細はWAI-ARIAオーサリングプラクティスを参照してください。

特性:
特性
スーパークラスロール: list
許可されるアクセシビリティ子ロール: article
継承された状態・プロパティ:
名前の由来: author

figure role

知覚できるsectionのひとつで、通常グラフィカルドキュメント、画像、メディアプレイヤー、コードスニペット、例文などを含みます。figureのパーツはユーザーがナビゲーションしてもよい(MAY)です。

著者はfigureを主文から参照できるようすべきです(SHOULD)が、figure自体の表示位置は参照先と同じ位置である必要はありません。著者はfigurecaptionロール(名称・説明もしくは両方)を付与してもよい(MAY)です。captionを提示し、それがfigureの内容説明となる場合には、aria-detailsfigureと関連付けすべきです(SHOULD)

著者はfigurearia-labelでアクセシブルネームを持たせたり、aria-labelledbyで他のテキストを参照して要素のラベルやアクセシブルネームにしてもよい(MAY)です。

figureとそのcaptionとの関連付けについてはcaptionロールを参照してください。

支援技術はユーザーが素早くfigureに移動できるようすべきです(SHOULD)ユーザーエージェントも同様の機能を提供してもよい(MAY)です。

特性:
特性
スーパークラスロール: section
関連概念:
継承された状態・プロパティ:
名前の由来: author

form role

アイテムやオブジェクトの集合を包含し、それらが合わさってフォームを構成するlandmark領域。関連:search

フォームにはホスト言語のフォームコントロール、スクリプト制御要素、ハイパーリンクなどが混在できます。ただし可能な限りネイティブのホスト言語セマンティクスでフォームコントロールを作成することが推奨されます。入力目的が検索の場合、formロールではなくsearchロールの使用が望ましい(SHOULD)です。

著者は必ず(MUST)formロール要素にフォームの用途を簡潔に説明するラベルを付加しなければなりません。可視ラベルがある場合はaria-labelledbyで参照すべきです(SHOULD)。また可能なら、そのラベルを見出し要素内に配置すべきです(SHOULD)。この見出しは標準ホスト言語のheading要素でも、headingロール要素でもよい(MAY)です。

著者がスクリプトでonsubmitイベント以外のユーザー操作(例:要素値変更など)でフォーム送信する場合は、必ず(SHOULD)事前にユーザーへ通知してください。

支援技術はユーザーがformロール要素に素早く移動できるようすべきです(SHOULD)ユーザーエージェントは、formロールかつアクセシブルネームを持つ要素をナビゲーション用ランドマークとして扱うべきです(SHOULD)ユーザーエージェントformロール要素へ素早く移動できる支援を提供してもよい(MAY)です。

特性:
特性
スーパークラスロール: landmark
基本概念: <form> in HTML
継承された状態・プロパティ:
名前の由来: author
アクセシブルネーム必須: True

generic role

自身にはセマンティックな意味を持たない、名前のないコンテナ要素

genericロールはホスト言語の暗黙的ロール(例:HTMLdivspan)向けで、主にユーザーエージェント実装者向けです。著者はコンテンツで本ロールを用いるべきではありません(SHOULD NOT)。代わりに、暗黙のアクセシビリティセマンティクスを除去したい場合はpresentationまたはnone、名前付きコンテナで子孫を意味的にグループ化する場合はgroupなどを使うこともできます(MAY)

presentationロールの要素と同様に、genericロールの要素も、その子孫に対してaria-live属性などごく一部のアクセシブル状態・プロパティを付与可能です。

ただし、presentationロールと異なり、許可されたアクセシビリティ属性が指定されている場合はユーザーエージェントはgeneric要素もアクセシビリティAPIに公開します。許可された属性が無い場合はスキップしてもよい(MAY)です。

特性:
特性
スーパークラスロール: structure
関連概念:
継承された状態・プロパティ:
禁止される状態・プロパティ:
名前の由来: prohibited

grid role

複合型のwidgetで、1つ以上の行(row)に1つ以上のセルが含まれ、そのグリッド内の一部または全てのセルに、方向キーなど二次元ナビゲーションによりフォーカスできるものです。

gridロールは特定の視覚的(例:表形式など)な表示を示しません。これは関係性要素間で定義します。単にチェックボックスやナビゲーションリンク集のグルーピングから、機能豊富なスプレッドシートアプリケーションまで幅広い用途に利用できます。

gridのセル要素にはgridcellロールが付きます。著者は任意で(MAY) rowheaderまたはcolumnheaderロールを用い、行・列ヘッダーセルを宣言できます。著者は必ず(MUST)gridcellcolumnheaderrowheaderロールの要素がrowロール要素のアクセシビリティ子要素となること、さらにそれらがrowgroupまたはgridアクセシビリティ子要素となることを保証してください。

キーボード操作可能とするために、著者はgridの子孫のフォーカス管理をフォーカス管理のとおり推奨(SHOULD)します。ユーザーがキーボードでgrid内容をナビゲートする際は、著者は以下のようにフォーカスを設定推奨(SHOULD)します:

  • gridcellの中身が、フォーカス時に矢印キーを消費しないインタラクティブなwidget(例:checkboxbuttonlink)1つのみの場合、そのウィジェット自体へ任意で(MAY)フォーカスを当て直接操作可能とできます。
  • それ以外の場合は、推奨(SHOULD)として、フォーカスを受け取る要素がgridcellrowheadercolumnheaderとなるようにしてください。

さらに、フォーカス可能なセルの中に以下が含まれている場合、著者はそれら内部内容へのナビゲーションやインタラクション(編集)モードに切り替える機構を推奨(SHOULD)します:

  • 矢印キーで操作するウィジェット(例:comboboxradiogroup
  • 複数のインタラクティブ要素
  • 編集可能な内容

たとえばスプレッドシートのセルにcomboboxや編集用テキストがある場合、Enterキーでセルの編集・操作モードへ切替し、方向キーで内部のcomboboxtextboxを操作できます。もう一度EnterTabEscape等で元のグリッドナビゲーションモードに戻す実装も可能です。

著者は任意で(MAY)gridcellを数式結果表示用に使い、ユーザーが編集可能にしてもかまいません。たとえばスプレッドシートで、数式計算結果を表示し、編集モード時のみtextboxを現れるようにできます。

aria-readonlygridロール要素に指定されている場合、ユーザーエージェント必ず(MUST)、そのgrid配下の全てのgridcellアクセシビリティ子孫へ値を伝播し、アクセシビリティAPIで公開してください。著者は個々のgridcellでこの値を上書きしてもよい(MAY)です。

セル編集機能のあるgridで、フォーカス可能なgridcellが編集不可のとき、著者はそのgridcellaria-readonlytrueしてもよい(MAY)です。ただしaria-readonlyの値は、そのセル内内容が編集可能か否かのみを表し、grid自体のナビゲーションや操作可否を示すものではありません。

aria-readonlyを指定しなかった場合でも、そのgridgridcellに編集可能内容が含まれることを意味するものではありません。例えば、gridで編集できない要素(例:日付ピッカーの日付を示すlink集)を表示する場合はaria-readonly値指定は不要です。

著者は、フォーカス可能なgridcellにアクション対象としての選択機能を持たせる場合、aria-selected属性を用いてもよい(MAY)です。複数のgridcellを選択できるgridの場合、著者は推奨(SHOULD)としてgrid要素にaria-multiselectabletrueとしてください。

WAI-ARIAはホスト言語要素を拡張できるため、gridは例えばHTMLのtableなど、ネイティブ要素・属性も再利用できます。たとえば著者がHTMLのtablegridロールを付けた場合、子孫のtrtdに個別でrowgridcellロールを付ける必要はなく、ユーザーエージェントが自動的に適切に対応します。ネイティブテーブル要素の行・列の結合を表す場合は、WAI-ARIAのaria-rowspanaria-colspanプロパティではなく、ホスト言語の標準属性(例:HTMLのrowspan/colspan)を使うことを推奨します(SHOULD)

グリッドパターン実装の詳細はWAI-ARIA オーサリングプラクティスをご覧ください。

特性:
特性
スーパークラスロール:
サブクラスロール:
基本概念: <table> in HTML
許可されるアクセシビリティ子ロール:
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来: author
アクセシブルネーム必須: True

gridcell role

gridtreegrid内のcellです。

gridcellはフォーカス可能、編集可能、選択可能です。gridcellはアプリケーションで必要な機能的関係を持たせるため、関係性(例:aria-controls)を持つこともできます。

著者がgridcellに行ヘッダー・列ヘッダーまたはその両方を持たせたいものの、該当ヘッダーがDOM構造では明示できない場合は、推奨(SHOULD)として、どのヘッダーセルが関連するかをgridcellaria-describedbyで明示し、該当rowheadercolumnheaderロール要素を参照してください。

treegrid内では、著者は任意で(MAY) gridcellaria-expanded属性を利用して展開可能セルとできます。aria-expanded属性が付与されている場合、それは個々のセルだけに適用され、親のrowには影響しません。主な用途はピボットテーブルのような挙動です。

著者は必ず(MUST)roleがgridcellの要素を、rowロール要素のアクセシビリティ子要素にしなければなりません。

特性:
特性
スーパークラスロール:
サブクラスロール:
基本概念: <td> in HTML
必須アクセシビリティ親ロール: row
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来:
  • contents
  • author

group role

ページ要約や目次に支援技術によって含まれる想定がないUIオブジェクトの集まりです。

この点で、region(ページ要約や目次に含まれることを意図したグルーピング)と対比されます。

著者は推奨(SHOULD)として、ツリーウィジェットの兄弟ノードのコレクションのように、widget内部の論理的なまとまりとしてgroupを使います。ただし、たとえばlistbox内でgroupを使う場合、その子要素はoption要素に限る必須(MUST)という文脈依存の要件があります。よって、groupの適切な実装は、その利用される文脈で決まります。

著者は任意で(MAY) group要素を入れ子にできます。セクションがウェブページの目次に載る程度に重要なときは、著者は推奨(SHOULD)としてregion標準ランドマークロールを付与してください。

特性:
特性
スーパークラスロール: section
サブクラスロール:
関連概念:
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来: author

heading role

ページのセクションの見出しです。

headingロールの要素を論理的アウトラインに整理するため、著者は必ず(MUST) aria-level属性で適切なネストレベルを示してください。

特性:
特性
スーパークラスロール: sectionhead
関連概念:
必須状態・プロパティ: aria-level
継承された状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブルネーム必須: True

image role

画像を構成する要素の集合のコンテナです。類義語はimgです。

注記
ARIA 1.3 imageロールに関する注記。

imageはARIA 1.3でARIA 1.0のimgロールの類義語として追加されました。imageロールは、他のロールの名称(完全な単語または単語の連結)と文法的一貫性を向上させるものです。

img role

画像を構成する要素の集合のコンテナです。類義語はimageです。

imgはキャプションや説明文、複数画像ファイル(まとめて1つの画像として見えるもの)を含められます。imgは、図形オブジェクトの集合で構成されているかどうかを問わず、文書中の単一のグラフィックを表します。imgロールをもつ要素が知覚可能であるためには、著者は必ず(MUST)その要素にアクセシブルネームを付与しなければなりません。これはaria-labelaria-labelledby属性で実現できます。

特性:
特性
スーパークラスロール: section
関連概念:
継承された状態・プロパティ:
名前の由来: author
アクセシブルネーム必須: True
子要素presentation: True

input role

ユーザー入力を受け付ける汎用的なwidgetの一種です。

inputはオントロジー用の抽象ロールです。著者は絶対に(MUST NOT)コンテンツでinputロールを使用しないでください。

特性:
特性
抽象ロール: True
スーパークラスロール: widget
サブクラスロール:
サポートされる状態・プロパティ: aria-disabled
継承された状態・プロパティ:

insertion role

insertionは追加された、または追加提案中の内容を含みます。関連:deletion

insertionは主に、2つの文書バージョンの差分のマーキングや、複数人による改訂作業時に追加候補を示す目的で使われます。

特性:
特性
スーパークラスロール: section
関連概念:
継承された状態・プロパティ:
禁止される状態・プロパティ:
名前の由来: prohibited

landmark role

特定の著者の意図した目的に関連する内容を含み、ユーザーがそのセクションに簡単に移動でき、ページ要約にも掲載されるほど重要な知覚可能なsectionです。こういったページ要約はユーザーエージェントや支援技術で動的に生成されることもあります。

landmarkはオントロジー用の抽象ロールです。著者は絶対に(MUST NOT)コンテンツでlandmarkロールを使用しないでください。

著者はlandmarkロールのサブクラスとなるロールを割り当て、必要があれば簡潔で説明的なラベルを付与して内容の目的を指定します。

landmarkロールのサブクラスであるロールを持つ要素は、ランドマーク領域またはナビゲーションランドマーク領域と呼ばれます。

支援技術はユーザーがランドマーク領域に素早く移動できるよう推奨(SHOULD)ユーザーエージェントもランドマーク領域への移動機能を提供してもよい(MAY)です。

特性:
特性
抽象ロール: True
スーパークラスロール: section
サブクラスロール:
継承された状態・プロパティ:

list role

sectionであり、listitem要素を内包します。関連:listbox

リストは、子要素のrolelistitemである要素を含みます。

特性:
特性
スーパークラスロール: section
サブクラスロール:
基礎概念:
  • <ol> in HTML
  • <ul> in HTML
許可されるアクセシビリティ子ロール: listitem
継承された状態・プロパティ:
名前の由来: author

listbox role

ウィジェットで、ユーザーが複数の選択肢の中から1つまたは複数を選択できます。関連:comboboxlist

リスト内のアイテムは静的で、従来のHTML select 要素とは異なり画像も含められます。リストボックスは、子要素としてroleoptionまたはrolegroupで、その子にroleoptionである要素を持つことができます。

キーボード操作可能とするため、著者はこのroleの全実装でoption子孫のフォーカス管理をフォーカス管理のとおり推奨します(SHOULD)

listboxロールの要素には、aria-orientationの値がデフォルトでverticalになります。

特性:
特性
スーパークラスロール:
関連概念:
許可されるアクセシビリティ子ロール:
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来: author
アクセシブルネーム必須: True
このロールの暗黙的値: aria-orientationのデフォルト値はverticalです。

listitem role

リストまたはディレクトリ内の単一の項目です。

著者は必ず(MUST)要素rolelistitemの場合は、それがlistロールを持つ要素アクセシビリティ子要素になるようにしなければなりません。

特性:
特性
スーパークラスロール: section
サブクラスロール:
基礎概念: <li> in HTML
必須アクセシビリティ親ロール:
サポートされる状態・プロパティ:
継承された状態・プロパティ:
名前の由来: author

log role

新しい情報が意味のある順序で追加され、古い情報が消えることもあるライブリージョンの一種です。関連:marquee

例として、チャットログ、メッセージ履歴、ゲームログ、エラーログ等が挙げられます。他のライブリージョンと異なり、このroleではログ内の新しい項目到着と読み順に間に関係性があります。ログは意味のある連続データとなっており、新しい情報は任意の位置ではなく常に末尾に追加されます。

logロールの要素には、aria-liveの値がデフォルトでpoliteになります。

特性:
特性
スーパークラスロール: section
継承された状態・プロパティ:
名前の由来: author
このロールの暗黙的値: aria-liveのデフォルト値はpoliteです。

main ロール

landmarkであり、ドキュメントの主要な内容を含みます。

これは、ドキュメントの中心的なトピックに直接関係する、あるいはそれを発展させる内容を示します。 main ロールは、「メインコンテンツへスキップ」リンクの控えめな代替手段であり、メインコンテンツ(または他のlandmarks)へのナビゲーションオプションが、支援技術、あるいはユーザーエージェントやブラウザ拡張機能によって、キーボードショートカットまたはサイドパネルやダイアログといったUI機能を通して提供されます。

支援技術は、ユーザーが main ロールを持つ要素へ素早く移動できるようにすべきですユーザーエージェントmain ロールを持つ要素をナビゲーション用のlandmarksとして扱うべきですユーザーエージェントは、ユーザーが main ロールを持つ要素へ素早く移動できるようにしてもよい

著者は、ページ内で main ロールを持つ要素を1つ以下にとどめるべきです

documentapplication 要素はDOM 内でネストできるため、それぞれ異なるドキュメントノードに関連付けられている限り、複数の main 要素をDOM 子孫として持つことができます。これは例えば、DOM のネスト(例:document の中に document)または aria-owns 属性の使用によって可能となります。

特性:
特性
親ロール: landmark
関連する概念:
継承された状態とプロパティ:
名前の由来: author

mark ロール

その内容が、囲まれた文脈において関連性があるため参照や注記のためにマークまたはハイライトされたコンテンツ。

mark の用途例:

  • 引用文中で特に重要だが元の出典資料ではマークされていないテキストにハイライトを付ける、印刷された記事に蛍光ペンで箇所をマークするのと同様。
  • 検索機能で見つかったテキストの一致箇所など、ユーザーの現在の操作に関連する部分を強調する。

著者は純粋な装飾(構文ハイライトなど)のために mark を使うべきではありません

特性:
特性
親ロール: section
関連する概念:
継承された状態とプロパティ:
禁止されている状態とプロパティ:
名前の由来: prohibited

marquee ロール

必須でない情報が頻繁に変化するライブリージョンの一種です。関連するロールについては log を参照してください。

marquee の一般的な用途には、株価ティッカーや広告バナーなどがあります。 marqueelog の主な違いは、ログは通常、重要な内容の変更に意味のある順序やシーケンスがあることです。

marquee ロールを持つ要素は暗黙的に aria-live の値が off となります。

特性:
特性
親ロール: section
継承された状態とプロパティ:
名前の由来: author

math ロール

数学的な式を表すコンテンツ。

math ロールを持つコンテンツは、MathML [MathML3] などのアクセシブルなフォーマットや、TeXやLaTeXのような他のテキスト表記(ネイティブブラウザ実装やポリフィルライブラリによって変換可能)でマークアップすることが推奨されます。

数式の画像を用いるのは理想的とは言えませんが、数学的な式を画像で表したレガシーコンテンツが多く存在します。著者は、数式画像には、音声化に適したテキストでラベル付けすべきです

MathML をネイティブ実装としてサポートするブラウザは、プレーンテキストによる数式表示よりも堅牢でアクセシブルな数学体験を提供します。一部のレンダリングエンジンは、数式の空間的なタッチ探索や ネメス点字でのリフレッシュブル点字ディスプレイ出力など、支援技術と密接に統合されています。画像による数式表現は、著者がプレーンテキスト代替を用意しても、このレベルの統合をサポートしません。

この文書執筆時点で、一部の主流ブラウザは MathML をネイティブにはサポートしておらず、JavaScriptポリフィルライブラリの追加が必要です。数式コンテンツを作成する際は、可能な限りネイティブの MathML を使用し、十分なテストを行ってください。必要に応じてポリフィルライブラリやテキスト代替付きのフォールバック画像を用いてください。

MathML のTeX注釈埋め込み例

<!-- 注: MathMLをサポートしないユーザーエージェントにも描画されるよう、JavaScriptポリフィルライブラリを使用してください。 -->
<!-- math要素には暗黙的にrole="math"が付きます。 -->
<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>x</mi>
    <mo>=</mo>
    <mfrac>
      <mrow>
        <mo form="prefix"></mo>
        <mi>b</mi>
        <mo>±</mo>
        <msqrt>
          <msup>
            <mi>b</mi>
            <mn>2</mn>
          </msup>
          <mo></mo>
          <mn>4</mn>
          <mo>&#x2062;<!-- &InvisibleTimes; --></mo>
          <mi>a</mi>
          <mo>&#x2062;<!-- &InvisibleTimes; --></mo>
          <mi>c</mi>
        </msqrt>
      </mrow>
      <mrow>
        <mn>2</mn>
        <mo>&#x2062;<!-- &InvisibleTimes; --></mo>
        <mi>a</mi>
      </mrow>
    </mfrac>
  </mrow>
  <annotation encoding="TeX">
    x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
  </annotation>
</math>

プレーンHTML または ポリフィルDOMによる2次方程式のMathML表現の結果

レンダリングエンジンが MathML のようなネイティブ数式フォーマットをサポートしない場合、著者はJavaScriptでブラウザが表示できる形式、たとえばこのHTML画像(data URIとプレーンテキスト代替付き)にダウングレードしてもよい

<img role="math" src="..." alt="x=⟮−b±√⟮b²−4ac⟯⟯÷2a">
特性:
特性
親ロール: section
継承された状態とプロパティ:
名前の由来: author

meter ロール

要素で、既知の範囲内のスカラー測定または分数値を表します。関連するロールはprogressbarです。

著者はaria-valueminaria-valuemaxを設定して、meterの最小値と最大値を示してもよいです。設定されていない場合は、HTMLにおける <input type="range"> と同じ規則に従います。

  • aria-valueminが存在しないか数値でない場合、デフォルトは0です。
  • aria-valuemaxが存在しないか数値でない場合、デフォルトは100です。

aria-valuenowの値は、計算されたaria-valueminaria-valuemaxを下回ったり上回ったりしてはなりません

著者はmeterロールを進捗の表示に使うべきではありません。その場合はprogressbarロールを使用してください。

現在、WAI-ARIAには、HTML<meter> 要素でサポートされている lowoptimumhigh 属性に対応するプロパティはありません。これらのプロパティの追加はARIA1.3で検討されます。

特性:
特性
親ロール: range
関連概念:
必須状態およびプロパティ: aria-valuenow
継承される状態およびプロパティ:
名前の由来: author
アクセシブル名必須: True
子要素の提示のみ: True
ロールの暗黙的値: aria-valueminのデフォルトは0です。
aria-valuemaxのデフォルトは100です。

none ロール

要素が持つネイティブの暗黙的ロールセマンティクスをアクセシビリティ APIへマッピングしません。同義語についてはpresentationを参照。

ARIA 1.1でのnoneロールに関する注記。

ARIA 1.1において、ワーキンググループは、"presentation"や"presentational"の意図する意味に関して混乱があったため、nonepresentationロールの同義語として導入しました。多くの人がrole="presentation"aria-hidden="true"の同義と誤解しており、role="none"は実際の意図をより明確に伝えます。

このロールの目的は、要素がページの見た目を変更するために使われていても、その要素型から暗黙的に伴う機能的・インタラクティブまたは構造的な意味合いがない場合や、WAI-ARIA非対応の古いブラウザでアクセシブルなフォールバックを提供したい場合などに利用します。

利用例:

  • 内容が完全に見た目のみ(スペーサ画像や装飾グラフィック、clearfix用要素等)の要素;
  • imgロールを持つコンテナ内の画像で、完全なテキスト代替 (aria-labelledbyおよび必要に応じてaria-describedbyでマークアップ)を持つ場合;
  • CSS用の追加マークアップ「フック」として使われる要素;
  • レイアウトテーブルおよびその関連行・セルなど。

none/presentationロールかつフォーカス可能でない要素については、ユーザーエージェントは暗黙的ネイティブセマンティクス(ロール・状態・プロパティ)をAPIマッピングしてはなりません。一方、その要素内にnone/presentationでない明示または継承ロールを持つ内容・子孫は、必ずエクスポーズされる必要があります。したがって、none/presentationロールは要素自体を無効またはアクセシビリティツリーから除外しますが、内容自体は除外しません。

たとえば、以下の二つのマークアップは、アクセシビリティ用APIに同等に公開されます。

<!-- 1. role="none"は暗黙の見出しロールセマンティクスを打ち消すが、内容やネストしたハイパーリンクには影響しない。 -->
<h1 role="none"> Sample Content <a href="...">let's go!</a> </h1>

<!-- 2. spanは暗黙的なgenericロールでアクセシビリティに重要な属性を持たないため、内容のみ公開(ハイパーリンク含む) -->
<span> Sample Content <a href="...">let's go!</a> </span>

HTMLにおいて<img>要素は、画像ファイルの種類に関わらず単一のエンティティとして扱われます。したがって、HTMLimgrole="none"role="presentation"を指定すると、aria-hidden="true"と同等です。画像内容をアクセシブルにしたい場合は、<object><iframe>要素に埋め込むか、インラインSVGコードを使い、画像内容のアクセシビリティガイドラインに従ってください。

画像にnone/presentationロールを付与した場合、有意なテキスト代替(例: HTMLではalt=""を推奨)の提供は避けるべきです

下記のコード例では、親imgは、キャプションの段落で適切にラベル付けされています。この場合、img要素にはnonepresentationを指定できます(ロールとテキスト代替はコンテナ要素により満たされているため)。

<div role="img" aria-labelledby="caption">
  <img src="example.png" role="none" alt="">
  <p id="caption">A visible text caption labeling the image.</p>
</div>

次の例では、a(HTML a要素)がtreeitemとして機能しているため、リスト項目(HTML li要素)に、ユーザーエージェントの暗黙的なlistitemネイティブセマンティクスをオーバーライドするため、明示的にWAI-ARIAロールのnone/presentationが指定されています。

<ul role="tree">
  <li role="none">
	<a role="treeitem" aria-expanded="true">An expanded tree node</a>
  </li></ul>
プレゼンテーショナルロールの継承

none/presentationロールは、暗黙のネイティブセマンティクス(デフォルトのアクセシビリティAPIロールを持つ要素)に使用します。一部の要素は追加の子孫要素が存在して初めて完全になります。たとえば、HTMLではtable要素(tableロールに該当)にはtr子孫(rowロールの暗黙ロール)が必要であり、行にはthtd子が(columnheaderrowheadercellロール)が必須です。同様にリストにもリスト項目が必須です。こうした意味を完全にする子孫要素は、WAI-ARIAでは許可されるアクセシビリティ子ロールで説明されます。

none/presentationの明示または継承ロールを、許可されるアクセシビリティ子ロールを持つWAI-ARIAロールを暗黙で持つ要素に適用した場合、明示的にnone/presentationを持つ要素だけでなく、明示ロールがないaccessibility descendantにも、ユーザーエージェントは継承role="none"を適用しなければなりません。同様に、ホスト言語の仕様で特定の子だけを許容している場合、その子に明示ロールがなければnone/presentationを継承させます。

none/presentation(明示または継承)かつフォーカス不可な要素については、ユーザーエージェントはその要素のロール特有のWAI-ARIA状態やプロパティを無視しなければなりません。例えば、HTMLでrole="none"を持つulやolは、li子要素の暗黙ネイティブセマンティクス(listitemロール)も除外されます。表(table)も同様に、thead/tbody/tfoot/tr/th/td子孫の暗黙セマンティクスも除外されます。

WAI-ARIA許可されるアクセシビリティ子ロールに該当しない要素の暗黙セマンティクスは除外されません。入れ子のtableやlistもまた、明示的にnone/presentationを指定しない限り内容はそのままです。

たとえば、以下のマークアップは、アクセシビリティAPI上、ほぼ同じ(genericまたはnoneロール)かつ同じ内容で公開されます。

<!-- 1. [role="none"]は暗黙のlist/listitemロールセマンティクスを打ち消すが、内容には影響しない -->
<ul role="none">
  <li> Sample Content </li>
  <li> More Sample Content </li>
</ul>

<!-- 2. "foo"には暗黙ロールがないため内容のみ公開 -->
<foo>
  <foo> Sample Content </foo>
  <foo> More Sample Content </foo>
</foo>

他にもWAI-ARIAで特定の子要素が許可されているロール(フィードやリストボックス等)で、この継承状況が適用される場合がありますが、現実的によくあるのはtableやlistです。

none/presentation(明示または継承)を持つ要素に対し、ユーザーエージェントは、プレゼンテーショナルな要素のホスト言語のラベリング要素にも継承role="none"を適用しなければなりません。例として、role="none"のtableではcaption(テーブルにラベルとして機能)もネイティブセマンティクスが除外されます。

編集者注

none/presentationロールの競合解決については、競合解決に移動しました。詳細は著者エラーの処理を参照してください

特性:
特性
親ロール: structure
継承される状態およびプロパティ:
禁止状態・プロパティ:
名前の由来: prohibited

note ロール

sectionの一種であり、その内容は主要な内容を補足する追加情報や補足的な文脈を表します。

noteはページまたはドキュメントの著者によって提供されるコンテンツであり、リアクションや提案を提供するために使うものではありません。これらの目的には、commentsuggestionを参照してください。

ページの通常のコンテンツの流れの中で使用される場合、noteは補足する内容と暗黙的に関連付けられます。次の例は、ページの自然な読み順で追加情報としてnoteを使う方法を示しています。

<p>... 以下の結果はテストされた機能のサポート内容を示します。</p>
<div role="note">
  <p>このページ公開時点では全ての結果は正確であることをご留意ください。</p>
  <p>もし結果に違いを見つけた場合はご連絡ください!</p>
</div>
<p>...</p>

noteロールを持つ要素が、補足する内容とプログラムで関連付ける必要がある場合、著者は次のいずれかの方法で要素を関連付けできます。

  • noteに構造化またはインタラクティブな内容(例: リンク、ボタン、リスト、テーブル等)が含まれる場合は、aria-detailsを使用します。
  • noteが短く静的なテキストで構成される場合は、aria-describedbyを使用します。
 <!-- aria-detailsを使ってリンクを含むnoteを参照 -->
 ...
<button aria-details="info-note">はじめに</button>
...
<div role="note" id="info-note">
  <p>使い始める前にさらに情報が必要ですか?</p>
  <p><a href="...">製品説明ページ</a>を参照して必要な情報をご確認ください。</p>
</div>
特性:
特性
親ロール: section
継承される状態・プロパティ:
名前の由来: author

option ロール

listbox内の項目です。

著者は要素role optionを付与する際、必ずaccessibility childとして、 rolelistboxか、またはrolegroupで、そのグループ自身がaccessibility childとしてrole listboxとなっている必要があります。listboxに関連付けられていないoptionは、アクセシビリティAPIに正しくマッピングされない場合があります。

特定の条件下では、ユーザーエージェントはaria-selectedの暗黙値をlistbox内の各optionに対して提供してもよいですが、その場合は次の条件を満たす必要があります。

  • aria-multiselectableの値がfalseまたはundefinedであること。
  • そのlistbox内のどのoptionにもaria-selectedaria-checkedの明示的値が指定されていないこと。

ユーザーエージェントがaria-selected暗黙値をoptionに提供する場合、そのoptionがDOMフォーカスを持っている、もしくはlistboxDOMフォーカスを持ち且つそのoptionがaria-activedescendantで参照されている場合、値はtrueであるべきです。 それ以外の場合は、暗黙値がfalseであるべきです

著者はoption要素の選択状態を次のいずれかで示すべきです

  • 単一選択のlistbox内で、選択されたoptionにaria-selected="true"を、非選択optionにaria-selected="false"を設定(後者は任意)。
  • 複数選択のlistbox内の全optionに、aria-selectedまたはaria-checkedを設定し、選択項目はtrue、非選択項目はfalse

著者は同じlistbox内のoptionaria-selectedaria-checkedを同時に指定すべきではありません。ただし例外的に、以下全ての条件を満たす場合のみ許容されます。

  • ユーザーインターフェイス上でaria-selectedaria-checkedの意味・目的が異なる。
  • 各状態の意味・目的がUIで明確に示されている。
  • 各状態を制御する個別の方法がUIにある。
特性:
特性
親ロール: input
サブクラスロール:
基底概念: <option>HTML
関連概念:
必要なアクセシビリティ親ロール:
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブル名必須: True
子要素の提示のみ: True

paragraph ロール

段落コンテンツ。

特性:
特性
親ロール: section
関連概念:
継承される状態・プロパティ:
禁止されている状態・プロパティ:
名前の由来: prohibited

presentation ロール

要素の暗黙的なネイティブロールセマンティクスがアクセシビリティ APIへマッピングされません。同義語についてはnoneを参照してください。

ARIA 1.1のnoneロールについての注記。

ARIA 1.1では、"presentation"や"presentational"という用語の意味を巡る著者の混乱があったため、presentationロールの推奨される同義語としてnoneが導入されました。多くの人がrole="presentation"aria-hidden="true"と同じと誤解していますが、ARIAワーキンググループはrole="none"のほうが本来の意味をより明確に伝えると考えています。

progressbar ロール

長時間かかるタスクの進行状況を表示する要素です。

progressbarは、ユーザーのリクエストを受け付け、アプリケーションが要求された処理の完了に向けて進行していることを示します。

著者はaria-valueminaria-valuemaxを設定して、進捗インジケーターの最小値・最大値を示してもかまいません。それ以外の場合、暗黙の値は <input type="range">HTML)と同じ規則に従います。

  • aria-valueminが省略されているか数値でない場合、デフォルトは0(ゼロ)です。
  • aria-valuemaxが省略されているか数値でない場合、デフォルトは100です。

著者は値が不定でない限り、aria-valuenowを指定するべきです。不定の場合はaria-valuenow属性を省略するべきです。 視覚的な進捗インジケーターが更新された際には、この値も更新するべきですprogressbarがページ内の特定領域の読み込み進捗を表す場合、著者はaria-describedbyでプログレスバーの状態を参照し、完全に読み込みが終わるまでその領域にaria-busy属性をtrueするべきですprogressbarの値は常に読み取り専用で、ユーザーが値を変更することはできません。

支援技術は通常、aria-valuenowの値をaria-valueminからaria-valuemaxまでの範囲のパーセントとして表示しますが、aria-valuetextが指定されている場合はそちらを使用します。

特性:
特性
親ロール:
関連する概念:
継承される状態・プロパティ:
名前の由来: author
アクセシブル名必須: True
子要素の提示のみ: True
ロールの暗黙値: aria-valueminのデフォルトは0です。
aria-valuemaxのデフォルトは100です。

radio ロール

一度に一つだけ選択できる、同じロールを持つ要素グループ内の選択可能な入力項目です。

著者は、role radioを持つ要素が、同じ値に影響を与えるものとして明確にグループ化されていることをするべきです。これはradio要素をradiogroupロールを持つ要素内にまとめることで達成できます。radioボタンがDOM上でradiogroupの子にできない場合は、著者はradiogroup要素でaria-owns属性を使用し、その子との関連を示すべきです

特性:
特性
親ロール:
関連する概念:
必須状態・プロパティ:
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブル名必須: True
子要素の提示のみ: True

radiogroup ロール

radioボタンのグループです。

radiogroupは、一度に一つだけ選択できるselectリストの一種です。著者はグループ内で同時に選択できるradioボタンは1つだけであることを保証するべきです。グループの項目のうち1つが選択されると、前に選択されていた項目は非選択(そのaria-checked属性がfalse)になります。

特性:
特性
親ロール: select
関連する概念: list
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来: author
アクセシブル名必須: True

range ロール

値の範囲を表す要素です。

range抽象ロールであり、オントロジーのために使われます。著者はrangeロールをコンテンツで使用してはいけません

特性:
特性
抽象ロールか: True
親ロール: structure
サブクラスロール:
対応する状態・プロパティ:
継承される状態・プロパティ:

region ロール

landmarkの一種で、特定の著者が指定した目的に関連し、ユーザーがそのセクションに簡単に移動したり、ページの要約一覧に表示されることが望ましいほど重要な内容を持つ領域です。このようなページ要約は、ユーザーエージェントや支援技術によって動的に生成される場合があります。

著者は、regionロールの使用を、他のランドマークロール(例えばmaincomplementarynavigationなど)で正確に表現できない目的を持つ内容を含むセクションに限定するべきです

著者はregionロールを持つ各要素に、その領域内の内容の目的を簡潔に説明するラベルを必ず付与しなければなりません。視覚的ラベルがある場合はaria-labelledbyで参照するべきです。ラベルは可能な限り見出し要素内に含めるべきです。その見出しは、標準のホスト言語見出し要素またはheadingロールを持つ要素でも構いません。

支援技術は、ユーザーがregionロールを持つ要素に迅速に移動できるようするべきですユーザーエージェントは、regionロールかつアクセシブル名を持つ要素をナビゲーションランドマークとして扱うべきです。 ユーザーエージェントは、ユーザーがrole regionの要素に迅速に移動できるようしてもよい

特性:
特性
親ロール: landmark
関連する概念:
継承される状態とプロパティ:
名前の由来: author
アクセシブル名必須: True

roletype ロール

全ての他のロールが継承する基底のロールです。

このロールのプロパティは、このロールを割り当てられたオブジェクトの構造的および機能的目的を説明します。ロールはインスタンスの理解と操作に使える概念です。

roletype抽象ロールであり、オントロジーのために使われます。著者はroletypeロールをコンテンツで使用してはいけません

特性:
特性
抽象ロールか: True
サブクラスロール:
対応する状態・プロパティ:

row ロール

表形式コンテナ内の1行のセルです。

rowはcellまたはgridcell要素を含み、tablegridtreegridを構成するために使います。

rowロールはtablegridtreegridで利用できますが、aria-expandedaria-posinsetaria-setsizearia-levelの意味は、インタラクティブなツリーグリッドの階層構造でのみ該当します。したがって、著者はtablegridの子孫としてのrowにこれら4プロパティを適用してはいけませんし、ユーザーエージェントもrowtreegridの子孫でない限り支援技術にこれらのプロパティを公開すべきではありません

著者は、要素role row を付与する際、必ずaccessibility childとしてtablegridrowgrouptreegridのいずれかを親としなければなりません。

: aria-disabled の利用について

現在aria-disabledrowでサポートされていますが、将来的にはgridtreegridの文脈以外でのrowでは禁止される予定です。

特性:
特性
親ロール:
基底概念: <tr>HTML
必要なアクセシビリティ親ロール:
許可されるアクセシビリティ子ロール:
対応する状態・プロパティ:
継承される状態とプロパティ:
名前の由来:
  • contents
  • author

rowgroup ロール

表形式コンテナ内で1つ以上のrow要素を持つ構造です。

rowgroupロールは、そのaccessibility childであるrowロールとの関係を確立します。これはHTMLのtable要素でのtheadtfoottbody要素と構造的に同等です。

著者は、要素role rowgroupを付与する際には、必ずaccessibility childとしてgridtabletreegridのいずれかを親ロールとしなければなりません。

rowgroupロールは部分的に、HTMLでのロール対称性を補完し、明示的なpresentationロールが適用されたHTML table要素でのpresentationの継承を伝播できることを目的としています。

このロールはrowグループの種類(例:theadtbody)を区別しませんが、WAI-ARIA 2.0でこの件について課題が挙げられています。

特性:
特性
親ロール: structure
基底概念: <tbody>, <tfoot> および <thead>HTML
必要なアクセシビリティ親ロール:
許可されるアクセシビリティ子ロール: row
継承される状態とプロパティ:
名前の由来: author

rowheader ロール

行の見出し情報を含むセルです。

rowheaderロールは、tablegridtreegrid内のセルを行の見出しとして識別するために使用できます。rowheaderは、該当行内の全てのセルとの関係を確立します。これはHTMLth要素でscope="row"を指定した場合と構造的に等価です。

著者は、要素role rowheaderを指定する場合、必ずaccessibility childとしてrowロールの要素内に含めなければなりません。

aria-selected状態をrowheaderに適用しても、ユーザーエージェントがその行の全てのセルに自動的にaria-selected状態を伝播してはなりません。ただし、著者がアプリケーション固有の理由でこのように選択状態を伝播することは可能です

rowheaderロールはインタラクティブなグリッド・非インタラクティブなテーブルのどちらにも使用できますが、aria-expandedaria-readonlyaria-requiredの使用はインタラクティブな要素のみに適用されます。したがって、著者はtableの子孫としてのrowheaderにはこれらのプロパティを指定すべきではありませんし、ユーザーエージェントもrowheadergridまたはtreegridの子孫でない限り支援技術に露出すべきではありません

: aria-disabled の利用について

現在aria-disabledrowheaderでサポートされていますが、将来的にはgridtreegridの文脈以外でのrowheaderには禁止される予定です。

特性:
特性
親ロール:
基底概念: <th scope="row">HTML
必要なアクセシビリティ親ロール: row
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブル名必須: True

scrollbar ロール

コンテンツの表示領域内で、すべての内容が表示されているかに関わらず、スクロール操作を制御するグラフィカルオブジェクトです。

スクロールバーは、そのサム(つまみ)の大きさや位置を通じて、可能な値の範囲および現在の値を、制御している表示範囲の方向(横/縦)に対し表します。スクロールバーの方向は、スクロールバー自体と、その効果が及ぶ表示領域のスクロール方向を表します。一般的に、矢印キーなどの方向キーで現在値を増減可能です。

著者は、スクロールバー要素にaria-controls属性を設定し、制御対象となるスクロール可能エリアを参照しなければなりません

著者はaria-valueminaria-valuemaxを設定して、サム位置の最小・最大値を示してもよいです。未指定の場合、HTMLの <input type="range"> と同じ暗黙値となります。

  • aria-valuemin未指定または数値でなければ、デフォルトは0(ゼロ)。
  • aria-valuemax未指定または数値でなければ、デフォルトは100。

著者は、現在のサム位置を示すaria-valuenow属性を必ず設定しなければなりません。aria-valuenowが欠落または不正な場合、ブラウザは 状態やプロパティ誤記の取扱いに記載された修復テクニック(HTMLの <input type="range"> と同様)を実装してもよいです。

scrollbarロールの要素は、暗黙的にaria-orientationverticalをもちます。

支援技術は通常aria-valuenowの値を、aria-valueminaria-valuemaxの範囲のパーセントとして表示しますが、aria-valuetextが指定されている場合はそちらを優先します。これらの値はこの計算に適する形で設定してください。

特性:
特性
親ロール:
必須状態・プロパティ:
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来: author
子要素の提示のみ: True
ロールの暗黙値: aria-orientationのデフォルトはverticalです。
aria-valueminのデフォルトは0です。
aria-valuemaxのデフォルトは100です。

section ロール

ページ上で描画される構造的な包含単位。

sectionはオントロジー用の抽象ロールです。著者はsectionロールをコンテンツで使用してはいけません

特性:
特性
抽象ロールか: True
親ロール: structure
サブクラスロール:
継承される状態・プロパティ:

sectionhead ロール

関連するsectionのトピックをラベルまたは要約する構造。

sectionheadはオントロジー用の抽象ロールです。著者はsectionheadロールをコンテンツで使用してはいけません

特性:
特性
抽象ロールか: True
親ロール: structure
サブクラスロール:
継承される状態・プロパティ:

select ロール

ユーザーが選択肢の中から選択を行えるフォームウィジェット。

selectはオントロジー用の抽象ロールです。著者はselectロールをコンテンツで使用してはいけません

特性:
特性
抽象ロールか: True
親ロール:
サブクラスロール:
対応する状態・プロパティ: aria-orientation
継承される状態・プロパティ:

separator ロール

コンテンツやメニュー項目のグループを区切ったり区別するための区切り線。

separatorには2種類あります:表示上の境界のみを提供する静的なstructureと、フォーカス可能かつ移動可能なインタラクティブなwidgetです。separatorがフォーカス可能でない場合、支援技術には静的な構造要素として公開されます。例えば、静的なseparatorは、メニュー内で2つのメニュー項目グループを視覚的に分けたり、ページの2つのセクション間に横線を表示するのに使えます。

著者は、separatorをフォーカス可能にすることで、2つのセクションの間に視覚的な境界を設けつつ、separatorの位置を変更して領域サイズを調節できるwidgetを作成してもよいです。可変型separatorウィジェットは範囲内で連続的に動かせますが、固定型separatorウィジェットは2つの離散位置のみを持ちます。通常、固定型separatorは、いずれかの領域を展開/折りたたみ状態で切り替える用途で使います。

separatorがフォーカス可能な場合、著者はaria-valuenowにseparatorの現在位置を示す数値を設定し、位置が変化したらこの値を更新しなければなりません。また、aria-valuemin0でない場合や、aria-valuemax100でない場合はその値も設定するべきです。未指定または数値でない場合、これら属性の暗黙値は次の通りです:

  • aria-valueminの暗黙値は0です。
  • aria-valuemaxの暗黙値は100です。

複数のフォーカス可能なseparatorを含むアプリケーションでは、それぞれにアクセシブル名を付与するべきです

separatorロールの要素はaria-orientation値がhorizontal(横)であることが暗黙的に設定されています。

特性:
特性
親ロール:
  • structure(フォーカス不可の場合)
  • widget(フォーカス可能の場合)
関連概念:
必須状態・プロパティ: aria-valuenow(フォーカス可能な場合)
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来: author
子要素の提示のみ: True
ロールの暗黙値: aria-orientationのデフォルト値はhorizontalです。
aria-valueminのデフォルト値は0です。
aria-valuemaxのデフォルト値は100です。

slider ロール

ユーザーが指定された範囲内から値を選択する入力欄です。

スライダーは、つまみの位置やサイズによって現在値と可能な値の範囲を示します。一般に、矢印キーなどの方向キーを使って現在値を増減することもできます。

著者はaria-valueminおよびaria-valuemax属性を設定してもよいです。未指定の場合、その暗黙値は <input type="range">HTML)と同じになります:

  • aria-valueminが省略されている、または数値でない場合、デフォルト値は0(ゼロ)です。
  • aria-valuemaxが省略されている、または数値でない場合、デフォルト値は100です。

著者はaria-valuenow属性を必ず設定しなければなりません。aria-valuenowが省略または不正な場合、ブラウザは状態やプロパティ誤記の取扱いに記載された修復テクニック(HTMLの <input type="range"> と同等)を実装してもよいです。

sliderロールの要素は、暗黙的にaria-orientationhorizontal(横)を持ちます。

特性:
特性
親ロール:
必須状態・プロパティ:
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来: author
アクセシブル名必須: True
子要素の提示のみ: True
ロールの暗黙値: aria-orientationのデフォルトはhorizontalです。
aria-valueminのデフォルトは0です。
aria-valuemaxのデフォルトは100です。

spinbutton ロール

ユーザーが離散値から選択することを期待されるrange型入力です。

spinbuttonは通常、インクリメント/デクリメントボタンで許可された値を順に増減させて表示値を変更できます。実装によっては値を編集・入力できるテキストボックスを表示しつつ、不正な値が入力できないよう制限を加えることもあります。

spinbuttonは外観がselectに似ていることもありますが、特定の範囲(特に大きな範囲)の場合は明確な選択肢ではなくspinbuttonを使うほうが推奨されます。たとえば1〜1,000,000の範囲であれば、同じ値のselectウィジェットより遥かに高いパフォーマンスを発揮します。

著者はspinbuttonaccessibility childを持たせてもよいですが、その要素はtextbox及び最大2つのbuttonのみに制限しなければなりません。あるいは、テキスト入力にspinbuttonロールを設定し、インクリメント/デクリメント用ボタンを兄弟要素として配置してもかまいません。

キーボード対応にするため、全てのspinbuttonインスタンスの子孫要素のフォーカス管理をManaging Focusに記載の通り管理するべきです。spinbuttonがフォーカスを受け取った時、textboxがあればそこに、なければspinbutton自体にフォーカスするべきです。またキーボードのおよびキーで増減でき、ボタン要素はプライマリナビゲーション(例:HTMLにおけるTabによる巡回)には含めないようにしてください。

spinbuttonに値がある場合、著者はaria-valuenow属性を設定するべきです。最小値がある場合はaria-valuemin、最大値がある場合はaria-valuemax設定するべきです。

特性:
特性
親ロール:
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来: author
アクセシブル名必須: True
ロールの暗黙値: aria-valueminのデフォルトは「最小値なし」。
aria-valuemaxのデフォルトは「最大値なし」。
aria-valuenowのデフォルトは「現在値なし」。

status ロール

ライブリージョンの一種で、内容はユーザへの助言情報ですが、alertほど重要ではなく、しばしば(必ずしもそうとは限りませんが)ステータスバーとして表示されます。

著者はstatusロールの要素が状態変化によってフォーカスを受け取らないようにするべきです

Statusはライブリージョンの一つです。もしページの別の場所がstatusの表示内容を制御するなら、著者は関係aria-controls属性で明示するべきです

支援技術は、一部の点字ディスプレイのセルをstatusの表示専用にしてもよいです。

statusロールの要素は、暗黙的にaria-livepoliteと、aria-atomictrueを持ちます。

特性:
特性
親ロール: section
サブクラスロール:
関連概念:
継承される状態・プロパティ:
名前の由来: author
ロールの暗黙値: aria-liveのデフォルト値はpoliteです。
aria-atomicのデフォルト値はtrueです。

strong ロール

重要・深刻・緊急なコンテンツです。関連ロール:emphasis

strongロールは、強い重要性、深刻さ、緊急性を伝えるためのものです。内容の意味に直接関わらない文字スタイルの強調には使いません。strongロールは、その有無によって内容の意味が変わる場合のみに使うべきです

strongロールは強調やストレスを示すものではありません。その用途にはemphasisロールの方が適切です。

特性:
特性
親ロール: section
関連概念:
継承される状態・プロパティ:
禁止されている状態・プロパティ:
名前の由来: prohibited

structure ロール

ドキュメント構造の要素

ドキュメント構造用のロールは、支援技術が動的コンテンツと静的な文書コンテンツを区別できるようにし、動的Webコンテンツのアクセシビリティをサポートします。構造ロールそのものはすべてがアクセシビリティAPIにマッピングされるわけではありませんが、ウィジェットロールの作成や、支援技術によるコンテンツ適応を補助するために使われます。

structureはオントロジー用の抽象ロールです。著者はstructureロールをコンテンツで使用してはいけません

特性:
特性
抽象ロールか: True
親ロール: roletype
サブクラスロール:
継承される状態・プロパティ:

subscript ロール

一つ以上の下付き文字。関連:superscript

subscriptロールは、特別な意味を持つ組版上の慣習をマークアップする用途のみを想定しています。見た目のためだけの下付き表現には使わないでください。一般に、下付き表現が無いと内容の意味が変化する場合のみ、このロールを使うべきです

特性:
特性
親ロール: section
関連概念:
継承される状態・プロパティ:
禁止されている状態・プロパティ:
名前の由来: prohibited

suggestion ロール

コンテンツに対する単一の提案変更。

例えば、複数ユーザーが編集できるシステムにおいて、一人が変更を提案し、別のユーザーがその提案を承認または却下する場合があります。

著者は、suggestionには必ず insertion子要素1つ、またはdeletion子要素1つ、もしくは insertiondeletionをそれぞれ1つずつ持つ2要素のみを子として持たせなければなりませんsuggestionに他の子要素を含めてはいけません。

著者はaria-detailsaria-descriptionを使い、コメントや著者情報、タイムスタンプなど関連情報とsuggestionを関連付けてもよいです。

<p>
  The best pet is a
  <span role="suggestion">
    <span role="deletion">cat</span>
    <span role="insertion">dog</span>
  </span>
</p>

提案が承認されたら、著者はsuggestionロールを削除すべきです。これにより提案修正済みであることを示します。suggestionロールが削除された後、子のinsertiondeletion要素は、修正履歴記録として残すか、修正版コンテンツに置き換えることができます。

特性:
特性
親ロール: section
許可されるアクセシビリティ子ロール:
継承される状態・プロパティ:
禁止されている状態・プロパティ:
名前の由来: prohibited

superscript ロール

一つ以上の上付き文字。関連:superscript

superscriptロールは、特別な意味を持つ組版上の慣習をマークアップする用途のみを想定しています。見た目のためだけの上付き表現には使わないでください。一般に、上付き表現が無いと内容の意味が変化する場合のみ、このロールを使うべきです

特性:
特性
親ロール: section
関連概念:
継承される状態・プロパティ:
禁止されている状態・プロパティ:
名前の由来: prohibited

switch ロール

on/off値を表現するタイプのチェックボックスです(checked/unchecked値ではありません)。関連:checkbox

switcharia-checked 属性は、その入力がオン(true)かオフ(false)かを示します。mixed値は無効であり、ユーザーエージェントはmixed値をこのロールに対してfalseと同等に扱わなければなりません

switchは、checkboxやトグルbuttonとほぼ同じ機能を提供しますが、支援技術が画面上の見た目に一貫した形でウィジェットを提示できるようになります。

特性:
特性
親ロール: checkbox
関連概念:
必須状態・プロパティ:
継承される状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブル名必須: True
子要素の提示のみ: True

tab ロール

グループ化ラベルであり、ユーザーに表示するタブコンテンツを選択する仕組みを提供します。

tabpanelやその内の項目がフォーカスされている場合、対応するtabtablist内で現在アクティブなタブとなります(Managing Focusで定義)。tablist要素(関連する複数のtab要素を含む)は、通常tabpanel要素の直前に配置されます。タブセット実装の詳細はWAI-ARIA Authoring Practicesを参照してください。

著者は、要素roletab を指定する場合、必ずaccessibility childとしてtablistロール要素に含めなければなりません。

著者は、現在アクティブなタブと関連付くtabpanelがユーザーにとって知覚可能であることを推奨します

単一選択可能なtablistでは、他のtabpanel要素をユーザーに非表示にすべきです。複数選択可能型tablistでは、各可視tabpanelに対応するタブのaria-expanded属性をtrueに、残りの非表示tabpanelに対応するタブのaria-expanded属性はfalseすべきです

選択されたタブにはaria-selected属性をtrueに、非アクティブなタブにはfalseにし、現在の選択タブは視覚的にも選択状態だとわかる表示をすべきです

一定条件下では、ユーザーエージェントがtablist内の各tabに対してaria-selectedの暗黙値を与える場合がありますが、その場合は次の条件を必ず満たしている必要があります:

特性:
特性
親ロール:
必要なアクセシビリティ親ロール: tablist
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブル名必須: True
子要素の提示のみ: True
ロールの暗黙値: aria-selectedのデフォルトはfalseです。

table ロール

データが行と列に配列されたsection。関連:grid

tableロールはインタラクティブでない表コンテナ向けです。もし選択状態を管理したり、独自の2次元ナビゲーションを持つ、内容や表示を直接操作可能な表なら、gridtreegrid使用することを推奨します

著者は、可能な限りホスト言語のテーブル用セマンティクス(例:HTMLの<table>要素)を優先して使用するべきです。

特性:
特性
親ロール: section
サブクラスロール:
基底概念: <table>HTML
許可されるアクセシビリティ子ロール:
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来: author
アクセシブル名必須: True

tablist ロール

tab要素のリストであり、それぞれがtabpanel要素を参照します。

キーボード操作に対応させるには、このロールの全インスタンスで子孫のフォーカス管理をManaging Focusに記載のとおり行うべきです。

単一選択可能なtablistでは、他のtabpanel要素をユーザーに非表示にすべきです。複数選択可能型tablistでは、各可視tabpanelに対応するタブのaria-expanded属性をtrueに、残りの非表示tabpanelに対応するタブのaria-expanded属性はfalseすべきです

tablist要素は、通常tabpanel要素の直前に配置されます。タブセット実装の詳細はWAI-ARIA Authoring Practicesを参照してください。

tablistロール要素は暗黙的にaria-orientationhorizontalを持ちます。

特性:
特性
親ロール:
許可されるアクセシビリティ子ロール: tab
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来: author
ロールの暗黙値: aria-orientationのデフォルトはhorizontalです。

tabpanel ロール

tabに関連付けられるリソースを含むコンテナであり、各tabtablist内に含まれます。

著者は、tabpanel要素をそのtabと関連付けするべきです。具体的には、タブ側にaria-controls属性でタブパネルIDを参照させる方法や、タブパネル側にaria-labelledby属性でタブIDを参照させる方法があります。

tablist要素は、通常、連続するtabpanel要素の前など近くに配置されます。タブセットパターンの実装方法はWAI-ARIA作成実践に詳細があります。

特性:
特性
親ロール: section
継承される状態・プロパティ:
名前の由来: author
アクセシブル名必須: True

term ロール

著者が(またはユーザーが)定義を与える語や句。関連:definition

termロールは著者が定義を付与した(あるいは今後付与が期待される)語や句を明示的に識別するために使います。すでに該当するdefinitionが存在する場合や、定義を入力するフォーム・コントロールがある場合、著者はaria-detailsを関連要素へ設定するべきです

インタラクティブな要素(例:リンク等)にはtermロールを使用しないでください。これにより支援技術ユーザーの操作を妨げる可能性があります。

特性:
特性
親ロール: section
関連概念:
継承される状態・プロパティ:
禁止されている状態・プロパティ:
名前の由来: prohibited

textbox ロール

自由入力テキスト値を受け付けるタイプの入力欄。

aria-multiline 属性trueの場合、このウィジェットはHTMLのtextareaのように改行を含めて入力できます。それ以外の場合は単純なテキストボックスです。テキスト入力要素を持たない言語や、セマンティクスの異なる要素をテキストフィールドとして再利用する場合の用途です。

ほとんどのユーザーエージェント実装では、ENTER または RETURN キーのデフォルト動作は HTML の単一行/複数行テキストフィールドで異なります。1行<input type="text"> ではたいてい送信ですが、複数行<textarea> では改行が入力されます。WAI-ARIAのtextboxロールは aria-multiline 属性でこれらを区別するので、フィールド設計時にこの差異に注意してください。

特性:
特性
親ロール: input
サブクラスロール:
関連概念:
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来: author
アクセシブル名必須: True

time ロール

特定の時刻・タイミングを表す要素です。

現時点では、HTMLの <time>datetime属性に対応するWAI-ARIAプロパティはありません。このプロパティ追加はARIAバージョン1.3で検討予定です。

著者は、テキスト内容が有効な日付または時刻関連の文字列となるように制限するべき、もしくは将来対応予定のdatetime同等プロパティをtimeロール要素へ適用してください。

特性:
特性
親ロール: section
関連概念:
継承される状態・プロパティ:
禁止されている状態・プロパティ:
名前の由来: prohibited

timer ロール

ライブリージョンの一種で、スタート時点から経過した時間、または終了時点まで残っている時間を示す数値カウンターを含みます。

タイマーオブジェクトのテキスト内容は現在の計時値を示し、その値が変化するごとに更新されます。タイマー値は必ずしも機械的に解釈可能とは限りませんが、著者は定期的にテキスト内容を更新するべきです。ただし一時停止中や終了時は除きます。

timerロールを持つ要素は暗黙的にaria-liveoffとなります。

特性:
特性
親ロール: status
継承される状態・プロパティ:
名前の由来: author
ロールの暗黙値: aria-liveのデフォルト値はoffです。

toolbar ロール

よく使う機能のボタン・コントロールをコンパクトな形でまとめたグループです。

ツールバーは多くの場合、menubarの中の一部機能を抜き出し、ユーザー操作の手間を省く目的で設置されます。アプリケーション内に2つ以上のツールバーがある場合、著者はそれぞれにラベルを必ず付与しなければなりません。

著者は、このロールの全てのインスタンスで子孫要素のフォーカス管理をManaging Focusに記載された通りに行ってもよいです。

toolbarロール要素は暗黙的にaria-orientationhorizontalを持ちます。

特性:
特性
親ロール: group
関連概念:
対応する状態・プロパティ: aria-orientation
継承される状態・プロパティ:
名前の由来: author
ロールの暗黙値: aria-orientationのデフォルト値はhorizontalです。

tooltip ロール

要素の説明を表示するコンテキストメニューのポップアップ。

tooltipは一般に、マウスオーバーから短い遅延の後か、アクセシビリティ親がキーボードフォーカスを得たときに現れます。WAI-ARIAのtooltipは、ユーザーエージェント既定のツールチップ動作を補う目的で使われます。

一般的なツールチップの表示遅延は1~5秒です。

著者はrole tooltipを持つ要素が、ツールチップ表示の前または表示時aria-describedbyで参照されていることを推奨します

特性:
特性
親ロール: section
継承される状態・プロパティ:
名前の由来:
  • contents
  • author

tree ロール

ユーザーが階層的にまとめられたコレクションから、1つ以上の項目を選択できるwidgetです。

キーボード対応とするには、このロールの全てのインスタンスについて、Managing Focus記載の方法で子孫要素のフォーカス管理を推奨します

treeロール要素は暗黙的にaria-orientationverticalを持ちます。

特性:
特性
親ロール: select
サブクラスロール:
許可されるアクセシビリティ子ロール:
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来: author
アクセシブル名必須: True
ロールの暗黙値: aria-orientationのデフォルト値はverticalです。

treegrid ロール

treeのように行を展開・折りたたみできるgridです。

aria-readonly要素かつtreegridロールの要素に設定されている場合、ユーザーエージェントは、その値をtreegridgridcell全てのaccessibility descendantへ伝播し、アクセシビリティAPIで公開しなければなりません。著者は個々のgridcell要素で伝播値を上書きしてもよいです。

aria-readonly属性がフォーカス可能なgridcellに適用されると、そのgridcell内の内容が編集可能か否かを示します。aria-readonly属性はtreegrid自体のナビゲーション・操作機能の有無を示すものではありません。

内容編集機能付きtreegridで、フォーカスできるgridcellの内容が編集不可の場合、著者はそのgridcellaria-readonlytrueで設定してもよいです。ただしリンク等aria-readonlyをサポートしない要素集合の場合は値の指定は必須ではありません。

キーボード操作に対応させるには、このロールの全インスタンスで子孫要素のフォーカス管理をManaging Focus記載通り行うべきです。

特性:
特性
親ロール:
許可されるアクセシビリティ子ロール:
継承される状態・プロパティ:
名前の由来: author
アクセシブル名必須: True

treeitem ロール

tree内の項目です。

treeitem要素は、展開・折りたたみ可能な下位グループ要素を含むこともできます。展開可能なtreeitem集合は、groupロール要素で囲われます。

著者は、treeitemロールの要素treeロール要素、またはtreeitemロール要素のgroupロールaccessibility childとして配置しなければなりません

特定条件下で、ユーザーエージェントはtree内各treeitemaria-selectedの暗黙値を与えることがありますが、その場合は次の条件すべてを満たしている必要があります

ユーザーエージェントがtreeitemaria-selectedの暗黙値を与える場合、そのtreeitemがDOMフォーカスされている、またはtreeがフォーカスされそのtreeitemaria-activedescendantで参照されているならtrueすべきです。それ以外の場合はfalseすべきです。

著者は、treeitemの選択状態をaria-selectedまたはaria-checkedのいずれかで示してもよいです。UIにより、単一選択ツリーではaria-selected、複数選択ツリーではaria-checkedを使う例があります。同一ツリー内で両方を指定するのは極めて稀な状況(各状態の意味・制御方法が明確に独立している場合)を除き、推奨されません

  • aria-selectedaria-checkedの意味・目的がUIで異なることを表現している。
  • UI上で両者の意味・目的が明確に伝わる。
  • それぞれの状態を個別に制御できるメソッドをUIが備えている。
特性:
特性
親ロール:
必要なアクセシビリティ親ロール:
対応する状態・プロパティ:
継承される状態・プロパティ:
名前の由来:
  • contents
  • author
アクセシブル名必須: True

widget ロール

グラフィカルユーザーインターフェース(GUI)のインタラクティブなコンポーネントです。

ウィジェットはユーザー操作可能な独立したUIオブジェクトです。ウィジェットのロールは、アクセシビリティAPI標準機能にマッピングされます。ユーザーがwidgetのサブクラスかつ非抽象ロールの要素をナビゲートすると、通常キーボードイベントを捕捉する支援技術はアプリケーション閲覧モードになり、キーボードイベントをWebアプリケーションにパススルーするべきです。これは、一部の支援技術で通常の閲覧モードからWebアプリ操作モードへ切替を促す意図です。いくつかのユーザーエージェントでは、矢印キー等を文書内移動に使う「ブラウズナビゲーションモード」があり、これがWebアプリ側によるキー利用を妨げるケースへの対応になります。

widgetはオントロジー用の抽象ロールです。著者はwidgetロールをコンテンツで使用してはいけません

特性:
特性
抽象ロールか: True
親ロール: roletype
サブクラスロール:
継承される状態・プロパティ:

window ロール

ブラウザまたはアプリケーションのウィンドウ。

この要素windowロールを指定すると、実装がOS上のネイティブウィンドウでなくても、文書内のウィンドウ風にスタイルされたセクションでも、グラフィカルユーザーインターフェース(GUI)コンテキストでウィンドウ様の動作となります。

windowはオントロジー用の抽象ロールです。著者はwindowロールをコンテンツで使用してはいけません

このロールの説明にある"application"は、applicationロール(支援技術向けの特別な挙動を指定するもの)を指しません。

特性:
特性
抽象ロールか: True
親ロール: roletype
サブクラスロール:
対応する状態・プロパティ: aria-modal
継承される状態・プロパティ:

6. サポートされるステートおよびプロパティ

6.1 ステートとプロパティの区別

「ステート(states)」および「プロパティ(properties)」という用語は、類似した機能を指します。どちらもオブジェクトについての特定の情報を提供し、どちらもロールの性質を定義する一部となっています。本仕様書では、ステートもプロパティも aria プレフィックス付きのマークアップ属性として扱われます。ただし、意味の微妙な差異を明確にするため、概念的に区別されています。主な違いのひとつは、プロパティ(例えば aria-labelledby)のは、ユーザー操作などによって頻繁に変化するステート(例えば aria-checked)の値よりも、アプリケーション・ライフサイクル全体を通して変化しにくいことが多い点です。ただし、変化頻度の違いは厳密な規則ではありません。aria-valuetextのように頻繁に変化するプロパティもあります。多くのWebコンテンツ著者にとって、ステートとプロパティの区別は重要ではないため、本仕様では両方をまとめて「属性(attributes)」と呼ぶことが多いです。詳細は state および propertyの定義を参照してください。

6.2 ステートとプロパティの特性

ステートとプロパティは、以下のセクションで記述される特性を持ちます。

この仕様や他の言語における類似機能の参考情報。ステートまたはプロパティに対応します。完全に一致しない場合もありますが、そのステートやプロパティの意図を理解する手助けになります。

6.2.2 使用されるロール

このステートまたはプロパティを利用するロールに関する参考情報です。この情報は該当するステートやプロパティの適切な使い方を理解するためのものです。リストに無いロールで当該ステートやプロパティを使用した場合、動作は規定されません。

6.2.3 ロールへの継承

祖先ロールからステートプロパティを継承するロールに関する参考情報です。

6.2.4

ステート または プロパティの値の型。値型は以下のいずれかです:

true/false
trueまたはfalseのみをとる値型。この型の既定値は特に指定がない限りfalseです。
tristate
truefalsemixedundefinedのいずれかの値をとります。既定値は特に指定がない限りundefinedです。
true/false/undefined
truefalseundefined(非該当)から1つ。既定値は指定がない場合undefinedです。例:aria-expandedfalseの場合は展開されていません。aria-expandedundefinedの場合は展開不可です。
ID reference
同一文書内の他の要素のIDへの参照
ID reference list
1つまたは複数のID参照のリスト。
integer
小数部を持たない数値。
number
任意の実数値。
string
制約のない値型。
token
あらかじめ定められた値セットから1つをとります。既定値は属性値項の各属性の値表で定めます。
token list
1つ以上のトークンのリスト。

上記はステートやプロパティの汎用的な型であり、具体的な値の表現方法までは規定しません。具体的な表現や処理についてはステート・プロパティ属性の処理を参照してください。

6.3 ARIA属性

6.3.1 複数値属性値

ARIA属性の定義に、属性がとれるを列挙した表が含まれている場合、その属性は複数値(nullable)属性です。表に記されている各値は、同名のステートに対応するキーワードです。

6.3.2 ARIA属性のIDLリフレクション

全てのARIA属性はIDL上、nullableDOMString属性としてリフレクトされます。これはboolean型に似たtrue/false型や、その他すべてのARIA属性も含まれます。

ARIAの値表で規定される既定値は、値未指定時の既定値や、無効値時の既定値としてIDLに反映してはいけません。値取得時、ARIA属性が無い場合はnullを返します。ARIA属性へのget時には値の検証は行いません。不正なARIA値があった場合も、値取得時はリテラルな文字列値のまま返却され、不正時既定値は返しません。

6.3.3 OSアクセシビリティAPIにおける複数値ARIA属性のマッピング

IDLリフレクションと異なり、OSアクセシビリティAPI側ではARIA属性に既定値が設定されることがあります。ARIA値表に定めた既定値は5.2.3 サポートされるステートとプロパティや、Core Accessibility API Mappings 1.1に記載された通り、OSのアクセシビリティAPIへ公開されます。

6.3.4 ARIA nullable DOMString 属性

A. WAI-ARIA値型と言語のマッピングで述べた通り、属性はホスト言語上に含まれ、WAI-ARIA型の表現方法はホスト言語の構文に従います。

HTML でのARIA nullableなDOMString属性には、次のアルゴリズムを使用します:

取得:対応する内容属性が存在しなければ、IDL属性はnullを返し、それ以外の場合は大文字小文字を保持したまま属性値を取得して返します。設定:新しい値がnullなら内容属性を削除し、それ以外は指定の新値を大文字小文字を保持したまま内容属性へセットします。

注:ARIA 1.2以降、IDLで公開される全ARIA属性は nullableなDOMStringとして定義されています。これは現時点の主要なレンダリングエンジンの実装と一致しています。この仕様変更は、実装上の変更をもたらすものではなく、現行Webエンジンの実態を反映するためのものです。ただし、将来のドラフトでは、ARIAワーキンググループが一部のARIA属性を非nullable DOMStringへ変更し、実装者へも変更を求める予定です。この変更によりARIAがHTML列挙属性の仕様と整合します。

6.3.4.1 属性使用例

この節は規範的ではありません。

6.4 翻訳可能な属性

HTML仕様では、他の仕様書が翻訳可能属性を定義できるとしています。各属性値の言語と書字方向は、言語および書字方向と同じになります。

支援技術ユーザーにとってわかりやすくするため、次に挙げるステートプロパティの値は翻訳可能属性であり、ページをローカライズする際は翻訳されるべきです:

6.5 グローバルステート・プロパティ

一部のステートプロパティは、ホスト言語の要素すべてに(ロールの有無に関係なく)適用可能です。以下のグローバル・ステートおよびプロパティは、全ロールおよびすべての基本マークアップ要素にサポートされます(禁止されていない限り)。ロールが特定のグローバル・ステートやプロパティの利用を禁止する場合は、そのロール定義節の特性テーブルで禁止される旨を明記します。

6.6 WAI-ARIAステート・プロパティの分類

ステートとプロパティは次のように分類されます:

  1. ウィジェット属性
  2. ライブリージョン属性
  3. ドラッグ&ドロップ属性
  4. 関連属性

6.6.1 ウィジェット属性

この節では、GUIシステムまたはリッチインターネットアプリケーションでユーザー入力や操作に反応する、一般的なユーザーインターフェース要素用の属性について記載します。これらの属性はウィジェットロールをサポートする目的で使用されます。

ウィジェット属性はユーザーエージェントによってプラットフォームアクセシビリティAPIステートにマッピングされ、支援技術でアクセスされたり、DOMから直接アクセスされる場合もあります。

6.6.2 ライブリージョン属性

この節では、リッチインターネットアプリケーションのライブリージョン専用の属性について記載します。これらの属性はどの要素にも適用できます。要素にフォーカスがなくても内容が変化しうること、またその更新の通知・扱い方に関する情報を支援技術へ伝える目的があります。いくつかのロールは、そのロール固有のaria-live属性の既定値を指定しています。ライブリージョンの例としては、株価などが更新され続けるティッカー欄などが挙げられます。ユーザーエージェントは、ライブリージョン内の要素に対する直接的なユーザー操作(例:テキストフィールドの編集等)で発生した変化を無視してもよいです。

6.6.3 ドラッグ&ドロップ属性

この節では、ドラッグ可能な要素やそのドロップターゲットについてのインターフェース要素に関する情報を示す属性を列挙します。ドロップターゲット情報は著者によって視覚的に表現され、支援技術へは別の手段で提供されます。

6.6.4 関連属性

この節では、文書構造のみでは自明でない関連や関連付けを示す属性を列挙します。

6.7 状態変更の通知

ユーザーエージェントは、状態が変更されたときに支援技術へ通知できる手段を、DOM属性変更イベントまたはプラットフォームのアクセシビリティAPIイベントを通じて必ず提供しなければなりません。

6.8 ステートおよびプロパティ(全aria-*属性)の定義

以下は、リッチインターネットアプリケーションの著者が利用できるWAI-ARIAステートおよび プロパティのアルファベット順リストです。各WAI-ARIAステートおよびプロパティの詳細な定義は、この簡潔なリストの後に記載されています。

aria-activedescendant
識別します DOM フォーカスが composite ウィジェット、comboboxtextboxgroup、または application にあるときの現在アクティブな要素を。
aria-atomic
示します 補助技術(assistive technologies)が、aria-relevant 属性で定義された変更通知に基づいて、変更された領域の全体を提示するか一部のみを提示するかを。
aria-autocomplete
示します テキスト入力が comboboxsearchbox、または textbox のユーザーの意図する値の1つ以上の予測を表示する可能性があるかどうか、および予測が行われた場合にどのように提示されるかを指定します。
aria-braillelabel
定義します 現在の要素をラベル付けする文字列値(点字に変換されることを意図したもの)。関連項目は aria-label を参照してください。
aria-brailleroledescription
定義します 要素の role に対する、人間が読める著者ローカライズ済みの短縮された説明(点字に変換されることを意図したもの)。関連項目は aria-roledescription を参照してください。
aria-busy
示します 要素が変更中であり、補助技術が変更の完了を待ってからユーザーに公開する可能性があることを。
aria-checked
示します チェックボックス、ラジオボタン、その他のウィジェットの現在の「checked」状態を。関連項目は aria-pressed および aria-selected を参照してください。
aria-colcount
定義します tablegrid、または treegrid における列の総数を。関連項目は aria-colindex を参照してください。
aria-colindex
定義します 要素の列インデックスまたは列位置を、tablegrid、または treegrid 内の総列数に対して。関連項目は aria-colindextextaria-colcount、および aria-colspan を参照してください。
aria-colindextext
定義します aria-colindex の人間が読めるテキスト代替を。関連項目は aria-rowindextext を参照してください。
aria-colspan
定義します セルまたは gridcell が tablegrid、または treegrid 内でまたがる列数を。関連項目は aria-colindex および aria-rowspan を参照してください。
aria-controls
識別します 現在の要素によって内容や存在が制御されている要素(または要素群)を。関連項目は aria-owns を参照してください。
aria-current
示します コンテナ内または関連する要素群の中で現在の項目を表す要素を。
aria-describedby
識別します オブジェクトを記述する要素(または要素群)を。関連項目は aria-labelledby および aria-description を参照してください。
aria-description
定義します 現在の要素を説明または注釈する文字列値を。関連項目は aria-describedby を参照してください。
aria-details
識別します オブジェクトに関連する追加情報を提供する要素(または要素群)を。関連項目は aria-describedby を参照してください。
aria-disabled
示します 要素が知覚可能だが無効化されており、編集不可またはその他の意味で操作できないことを。関連項目は aria-hidden および aria-readonly を参照してください。
aria-dropeffect
[ARIA 1.1 で非推奨] ドラッグされたオブジェクトをドロップターゲットでドロップしたときに実行できる機能を示します。
aria-errormessage
識別します オブジェクトに対するエラーメッセージを提供する要素(または要素群)を。関連項目は aria-invalid および aria-describedby を参照してください。
aria-expanded
示します この要素によってコントロールされる、またはこの要素のアクセシビリティ子であるグループ化要素が展開されているか折りたたまれているかを。
aria-flowto
識別します 代替の読み順における次の要素(または要素群)を。これにより、ユーザーの裁量で補助技術が通常のドキュメントソース順を上書きして内容を読み上げることができます。
aria-grabbed
[ARIA 1.1 で非推奨] ドラッグアンドドロップ操作における要素の「grabbed」状態 を示します。
aria-haspopup
示します 要素によってトリガーされ得る、メニューやダイアログなどのインタラクティブなポップアップ要素の利用可能性と種類を。
aria-hidden
示します 要素がアクセシビリティ API に公開されているかどうかを。関連項目は aria-disabled を参照してください。
aria-invalid
示します 入力された値がアプリケーションが期待する形式に合致しないことを。関連項目は aria-errormessage を参照してください。
aria-keyshortcuts
定義します 要素をアクティブにしたりフォーカスを与えたりするために著者が実装したキーボードショートカットを。
aria-label
定義します 現在の要素をラベル付けする文字列値を。関連項目は aria-labelledby を参照してください。
aria-labelledby
識別します 現在の要素をラベル付けする要素(または要素群)を。関連項目は aria-label および aria-describedby を参照してください。
aria-level
定義します 構造内における要素の階層レベルを。
aria-live
示します 要素が更新されること、及び ユーザーエージェントassistive technologies、およびユーザーがライブリージョンから期待できる更新の種類を説明します。
aria-modal
示します 表示時に要素がモーダルであるかどうかを。
aria-multiline
示します テキストボックスが複数行の入力を受け付けるか単一行のみかを。
aria-multiselectable
示します ユーザーが現在の選択可能な子孫要素から複数の項目を選択できることを。
aria-orientation
示します 要素の向きが水平、垂直、または不明/曖昧であるかを。
aria-owns
識別します ビジュアル、機能的、またはコンテキスト上の親子関係を定義するための要素(または要素群)を、DOM 階層でその関係を表現できない場合に。関連項目は aria-controls を参照してください。
aria-placeholder
定義します コントロールに値がないときに入力に役立つ短いヒント(単語または短いフレーズ)。ヒントはサンプル値や期待されるフォーマットの簡単な説明であることがあります。
aria-posinset
定義します 現在の listitem または treeitem の集合内における要素の番号または位置を。集合内のすべての要素が DOM に存在する場合は必須ではありません。関連項目は aria-setsize を参照してください。
aria-pressed
示します トグルボタンの現在の「pressed」状態を。関連項目は aria-checked および aria-selected を参照してください。
aria-readonly
示します 要素が編集不可であるが、それ以外の点では操作可能であること。関連項目は aria-disabled を参照してください。
aria-relevant
示します ライブリージョン内のアクセシビリティツリーが変更されたときにユーザーエージェントがトリガーする通知の種類を。関連項目は aria-atomic を参照してください。
aria-required
示します フォームを送信する前に要素へのユーザー入力が必要であることを。
aria-roledescription
定義します 要素の role に対する人間が読める著者ローカライズ済みの説明を。
aria-rowcount
定義します tablegrid、または treegrid における行の総数を。関連項目は aria-rowindex を参照してください。
aria-rowindex
定義します 要素の行インデックスまたは位置を、tablegrid、または treegrid 内の総行数に対して。関連項目は aria-rowindextextaria-rowcount、および aria-rowspan を参照してください。
aria-rowindextext
定義します aria-rowindex の人間が読めるテキスト代替を。関連項目は aria-colindextext を参照してください。
aria-rowspan
定義します セルまたは gridcell が tablegrid、または treegrid 内でまたがる行数を。関連項目は aria-rowindex および aria-colspan を参照してください。
aria-selected
示します さまざまなウィジェットの現在の「selected」状態を。関連項目は aria-checked および aria-pressed を参照してください。
aria-setsize
定義します 現在の listitem または treeitem の集合内のアイテム数を。集合内のすべての要素が DOM に存在する場合は必須ではありません。関連項目は aria-posinset を参照してください。
aria-sort
示します テーブルやグリッド内の項目が昇順または降順にソートされているかどうかを。
aria-valuemax
定義します range ウィジェットの許容される最大値を。
aria-valuemin
定義します range ウィジェットの許容される最小値を。
aria-valuenow
定義します range ウィジェットの現在の値を。関連項目は aria-valuetext を参照してください。
aria-valuetext
定義します range ウィジェットの aria-valuenow に対する人間が読めるテキスト代替を。

aria-activedescendant プロパティ

識別しますDOMフォーカスがcompositeウィジェット、comboboxtextboxgroup、またはapplicationにあるときの現在アクティブな要素を。

aria-activedescendant プロパティは、メニューやグリッド、ツールバーなど複数のフォーカス可能な子孫を持つインタラクティブ要素のフォーカスを管理するための代替手段を提供します。DOM フォーカスをアクセシビリティ子孫の間で移動する代わりに、著者はMAYDOMフォーカスをaria-activedescendantをサポートするコンテナ要素上に設定し、aria-activedescendantでアクティブな要素を参照することができます。

著者はMUSTDOM フォーカスを持つ要素でaria-activedescendantの値を設定する場合、次のいずれかの条件を満たすことを確認しなければなりません:

  1. aria-activedescendantの値がアクセシビリティ子孫を参照している。
  2. DOM フォーカスを持つ要素が comboboxtextbox または searchbox であり、aria-controlsaria-activedescendantをサポートする要素を参照し、そのaria-activedescendantの値が、そのコントロールされた要素内のアクセシビリティ子孫を参照している。 例えば、combobox では、フォーカスは combobox 上に保持でき、aria-activedescendant の値で combobox 要素によって制御されるポップアップ listbox の子孫を参照できる。

また、著者は、現在アクティブな子孫がフォーカス時に可視かつ表示領域内(または表示領域にスクロールイン)となることをSHOULD確認するべきです。

特性:
特性
関連概念:
利用されるロール:
継承されるロール:
値: ID参照

aria-atomic プロパティ

支援技術が、aria-relevant属性で定義された変更通知に基づき、変更領域全体を提示するか、一部だけを提示するかを示します。

アクセシビリティAPIDocument Object Model [DOM]はいずれも、支援技術が文書内の変更箇所を判定するためのイベントを提供します。

ライブリージョン内のコンテンツが変更された場合、ユーザーエージェントは変更された要素を調べて祖先を辿り、最初にaria-atomicが指定された要素を見つけて、以下のケースごとに適切な動作をすべきです。

  1. 祖先に明示的なaria-atomicが無い場合、既定はfalseとみなされ、支援技術は変更ノードのみをユーザーに提示します。
  2. aria-atomicが明示的にfalseの場合、祖先探索をそこで止め、その変更ノードのみを提示します。
  3. aria-atomicが明示的にtrueの場合、その要素全体の内容(著者定義のライブリージョンラベルがあればそれも含めて)を提示します。

aria-atomictrueの場合、支援技術は複数の変更をまとめて、変化した領域全体を一括して提示することができます。

特性:
特性
利用されるロール: 全てのベースマークアップの要素
値: true/false
値:
説明
false 支援技術は変化したノードだけを提示します。
true 支援技術はその領域全体(著者定義のラベルがあればそれも含む)を一括して提示します。

aria-autocomplete プロパティ

テキスト入力でユーザーの入力値候補の予測を1つ以上表示できる comboboxsearchboxtextbox で、その予測候補の提示方法を指定します。

aria-autocompleteプロパティは、textboxsearchboxcomboboxが動的に入力補完動作を提供する際のインタラクションモデル型を記述します。補完候補をテキスト入力欄の直後(カーソル後)にインラインで表示する aria-autocomplete="inline" モデルと、候補を入力欄近くの別要素としてリスト表示する aria-autocomplete="list" モデルとを区別します。両方を同時併用するaria-autocomplete="both"も指定可能です。

aria-autocompleteプロパティは、入力要素の予測動作のみを表します。ユーザー入力内容とは無関係な候補リストを持つ入力要素の場合、著者はaria-autocompleteの値を省略するかnoneに設定するべきです。例:ユーザー入力内容によるフィルタを行わず「最近5件の検索語」を常にリスト表示するような combobox では aria-autocomplete="none" とします。対応ロールの既定値も none です。

ユーザー入力に応じて候補がインライン表示される場合、推奨値を入力欄内でカーソル直後に動的に追加し、ユーザーがフィールドからフォーカス離脱時に自動補完値を確定できます。aria-autocompleteinlinebothのときは、自動補完された部分が選択状態として表示される設計が推奨されます。これにより支援技術はユーザー入力と自動候補を識別し、不要なら削除や上書きもしやすくなります。

aria-autocompletelistまたはbothの場合、著者は下記両条件を必ず満たさなければなりません:

  1. aria-controlsで、候補リスト表示要素を参照している。
  2. aria-haspopup値が候補リスト要素のロールに一致している。

listモデルの一部実装ではユーザーが(↓キーで候補移動やクリック等)明示的な操作で選択し確定する形ですが、この場合はaria-activedescendantサポート対応要素であればそれを使う、または直接DOMフォーカスを移してもよいです。一方で、候補リスト内の1つが自動で「選択済み」状態となり、入力欄のフォーカス喪失(Tabキーや他フィールドクリック等)でそれが確定される場合もあります。もし自動選択型(自動で候補がアクティブ状態)かつaria-autocompletelistbothなら、著者は以下すべてを必ず守る必要があります:

  1. 候補リストはaria-activedescendantをサポートするロールを持つ要素で表示される。
  2. 入力欄側のaria-activedescendant値が常に自動選択候補を指し、定義通り動的更新される。
  3. 候補が表示中はDOMフォーカスが常にテキスト入力欄にある。

aria-autocompleteは「候補が表示中かどうか」を通知する目的には使うべきではありません。候補表示状態の伝達にはaria-expandedの活用が推奨されます

特性:
特性
利用されるロール:
継承されるロール:
値: トークン
値:
説明
inline ユーザー入力中、候補テキストがキャレット(入力カーソル)直後にインラインで挿入提案される場合。
list ユーザー入力中、候補値コレクションを含む要素が表示される場合。
both ユーザー入力中、候補値コレクションを表示し、その1つが自動選択に。また入力値欄のキャレット直後に自動選択補完テキストが出現する場合。
none (default) ユーザー入力時に、入力補完候補を自動表示しない場合。

aria-braillelabel プロパティ

定義 現在の要素にラベルを付ける文字列値を定義します。このラベルは点字に変換されることを想定しています。関連: aria-label

aria-braillelabel の目的は aria-label の目的と似ています。点字でオブジェクトの認識しやすい名前をユーザーに提供します。

aria-braillelabel プロパティは、著者が支援技術が要素のアクセシブル名を点字でローカライズおよび表現する方法を上書きする能力を与えます。そのため、aria-braillelabel を不適切に使用すると、点字インターフェース上で要素を理解するユーザーの能力を妨げる可能性があります。著者は SHOULDaria-braillelabel の使用を、要素の名前を点字に変換したときに望ましいユーザー体験とならない場合に限定するべきです。

aria-braillelabel を使用する場合、著者は SHOULD 次の点も確認する必要があります:

  1. aria-braillelabel が適用される要素に有効なアクセシブル名があること。
  2. aria-braillelabel の値が空でないこと、または 空白文字 のみで構成されていないこと。
  3. aria-braillelabel の値に Unicode点字パターン の文字が含まれていないか、または Unicode点字パターン の文字だけで構成されておらず、その値が点字パターンのdots-0 のみでないこと。
  4. aria-braillelabel の値が要素のアクセシブル名と同一でないこと。

著者は、明示的または暗黙的な WAI-ARIA ロールに対して aria-braillelabel禁止 されている場合、その要素に aria-braillelabel を指定してはなりません(MUST NOT)。

点字サポートを備えた 支援技術 は、アクセシブル名を点字に変換できます。さらに、支援技術はユーザーの設定に従ってその点字出力をカスタマイズすることが可能です。コンテンツや aria-label によるアクセシブル名だけを使用することは、ほとんどの場合 より良いユーザー体験であり、著者は aria-braillelabel を使って aria-label を複製することを 強く控えるべきです。代わりに、aria-braillelabel は、アクセシブル名では十分な点字表現が得られない場合、すなわち専門的な点字説明がテキスト説明の点字変換とは大きく異なる場合にのみ使用することを意図しています。aria-braillelabel を使用する際、属性値が文書の言語に合わせてローカライズされていることを著者が単独で保証する必要がある点に特に注意してください。さらに、著者はこの属性の使用をユーザーに明確に伝える方法を設計する必要があります。たとえば製品ドキュメントで説明することが考えられます。値が Unicode点字パターン で構成される場合は特に重要であり、支援技術 はそのような内容をユーザーへユーザー固有の点字翻訳を適用せずに直接渡すことになります。そのため一般に著者は aria-braillelabel に Unicode点字パターン を使用することを 強く控えるべきです

支援技術 は、要素のアクセシブル名を点字で提示する際に aria-braillelabel の値を SHOULD 使用すべきですが、その他の機能を変更してはなりません(SHOULD NOT)。例えば、音声出力を提供する支援技術はアクセシブル名を使用するべきです(SHOULD)。

支援技術aria-braillelabel プロパティを次のように公開することを SHOULD します:

  1. aria-braillelabel の値に Unicode点字パターン の文字が含まれていない場合、ユーザーの好みの変換表に従ってその値を翻訳すること。
  2. それ以外の場合は、値を翻訳せずにそのままユーザーに渡すこと。

以下の例は、点字出力におけるボタンの名前をカスタマイズするために aria-braillelabel を使用する方法を示しています。

<button aria-braillelabel="****">
  <img alt="4 stars" src="images/stars.jpg">
</button>

前の例では、点字ディスプレイは冗長な "btn gra 4 stars" の代わりに点字で "btn ****" と表示します。

特性:
特性
利用されるロール: ベースマークアップ内、下記ロールを除き全要素: captioncodedefinitiondeletionemphasisgenericinsertionmarknoneparagraphstrongsubscriptsuggestionsuperscripttermtime
値: 文字列

aria-brailleroledescription プロパティ

人間が読める作成者ローカライズ済みの省略記法を、roleを持つ要素に定義し、点字に変換されることを想定しています。関連項目: aria-roledescription

一部の支援技術(スクリーンリーダーなど)は、要素のroleをユーザー体験の一部として提示します。これらの支援技術は通常、role名をローカライズし、カスタマイズする場合もあります。このような支援技術の利用者は、「region」や「button」、「slider」などのロール名の提示をもとに要素の目的やウィジェットの場合は利用方法を理解します。

aria-brailleroledescriptionプロパティは、支援技術による点字でのロール名のローカライズや表現を上書きするために使用できます。不適切にaria-brailleroledescriptionを使用すると、点字インターフェースでユーザーが要素を理解・操作することを妨げる場合があります。作成者は、aria-brailleroledescriptionの使用を、groupregionなど非インタラクティブなコンテナロールの目的を明確にする場合、またはwidgetの点字におけるより具体的な説明を提供する場合に限定すべきです。

作成者は必ずaria-brailleroledescriptionを使用する際、aria-roledescriptionも必ず提供してください。またaria-roledescriptionと同様に、aria-brailleroledescriptionWAI-ARIA ロールで明示的または暗黙的にaria-brailleroledescription禁止されている要素に指定してはいけません

一般的に、aria-brailleroledescriptionaria-roledescriptionが点字化した際に長すぎる場合など、稀なケースで使用されることを意図しています。

aria-brailleroledescriptionを使う場合、作成者はまた以下を確認する必要があります:

  1. aria-brailleroledescriptionを適用する要素が有効なWAI-ARIAロールまたは暗黙のWAI-ARIAロールセマンティクスを持っていること。
  2. aria-brailleroledescriptionの値が空でない、または空白文字だけでないこと。
  3. aria-brailleroledescriptionの値がUnicode点字パターンの文字を含まないか、Unicode点字パターンのみで構成されないこと;値が点字パターン dots-0 のみを含まないこと。
  4. aria-brailleroledescriptionの値が要素のWAI-ARIA aria-roledescriptionWAI-ARIA role、または暗黙のWAI-ARIAロールセマンティクスと同一でないこと。
注記

点字をサポートする支援技術は、aria-roledescriptionの内容を点字に変換できます。また、支援技術はユーザーの好みに合わせて点字出力をカスタマイズできます。aria-roledescriptionのみの使用がほとんどの場合より良いユーザー体験であり、aria-brailleroledescriptionaria-roledescriptionをコピーすることは強く推奨されませんaria-brailleroledescriptionは、aria-roledescriptionだけでは十分な点字表現ができない場合、つまり点字とテキスト変換された点字説明が大きく異なる場合にのみ、使うべきです。aria-brailleroledescriptionを使用するときは、その値を文書言語にあわせてローカライズする責任は作成者にある点に注意してください。また、この属性の利用をユーザーに明確に伝える設計も必要です。たとえば製品ドキュメントで情報提供することが考えられます。値がUnicode点字パターンで構成される場合は、支援技術はユーザー固有の点字に変換せずそのままユーザーに伝えるため、aria-brailleroledescriptionでのUnicode点字パターン使用も強く推奨されません

次のいずれかの場合、ユーザーエージェントはaria-brailleroledescription プロパティを露出してはいけません:

  1. aria-brailleroledescriptionの値が空または空白文字のみ(標準の空白やdots-0 (U+2800) を含む)である場合。
  2. aria-brailleroledescriptionを適用した要素が、そのプロパティが禁止されている明示的・暗黙的WAI-ARIAロールの場合。
  3. aria-brailleroledescriptionを適用した要素に、有効なWAI-ARIA aria-roledescriptionが存在しない場合。

支援技術は、要素の点字でロールを提示する際に aria-brailleroledescriptionの値を推奨して使用しますが、 推奨されない用途でロールによる他の機能変更はしないでください。例えば、次のregionbuttonへのナビゲーション機能はaria-brailleroledescriptionがあってもそれらを区別せず使用できるべきです。

支援技術は、次のように aria-brailleroledescriptionプロパティを提示推奨します:

  1. aria-brailleroledescriptionの値にUnicode点字パターンの文字が含まれない場合、ユーザーの優先翻訳テーブルで翻訳する。
  2. それ以外の場合は、その値を変換せずそのままユーザーへ伝える。

以下の2つの例は、Webベースのプレゼンテーションアプリで繰り返し使われる非インタラクティブな「slide」コンテナのロールを省略した点字用表現にする際のaria-brailleroledescriptionの使い方を示しています。

<div role="article" aria-roledescription="slide" aria-brailleroledescription="sld" id="slide" aria-labelledby="slideheading">
<h1 id="slideheading">Quarterly Report</h1>
<!-- remaining slide contents -->
</div>
<article aria-roledescription="slide" aria-brailleroledescription="sld" id="slide" aria-labelledby="slideheading">
<h1 id="slideheading">Quarterly Report</h1>
<!-- remaining slide contents -->
</div>

上記の例では、点字スクリーンリーダーユーザーは「sld Quarterly Report」と読み上げられ、「slide Quarterly Report」と比べて簡潔になります。

特徴:
特性
適用ロール: 以下のロールを除くすべてのベースマークアップ要素: generic
値: string

aria-busy 状態

要素が変更中であり、支援技術が変更完了まで処理を保留できることを示します。

aria-busyのデフォルト値はすべての要素でfalseです。aria-busytrueの間は、その要素のアクセシビリティ子孫コンテンツの変更を支援技術は無視し、aria-busyfalseになった時に変更をまとめて1度の原子的な更新として反映できます。

すでに部分的または全部レンダリング済みのコンテナ要素に複数の追加・変更・削除を行う必要がある場合、作成者は任意で、最初の変更前にコンテナのaria-busytrueに、最後の変更完了後にfalseにできます。たとえば複数のライブリージョン変更が、ひとつの発話単位で読み上げられるべき場合などに使えます。

roleがfeedの要素がbusyの場合、ユーザーが読んでいるarticle内のユーザー主導の変更を除き、それ以外のfeed内変更は支援技術が描画を遅延する可能性があります。

レンダリング済みのwidgetへの変更によって、そのwidgetがスクリプト実行中に許可アクセシビリティ子ロールを変更することになる場合、作成者は任意で、更新処理中aria-busyをそのwidgetでtrueにできます。たとえばツリーグリッドの複数不連続なブランチを一斉に更新する場合、全体置換の代わりにツリーをbusyにすることができます。

特徴:
特性
適用ロール: すべてのベースマークアップ要素
値: true/false
値:
説明
false(デフォルト): 要素に対して想定される更新はありません。
true 要素が更新されています。

aria-checked 状態

チェック済み状態を、チェックボックスやラジオボタン、その他のウィジェットで表します。関連項目として、aria-pressedaria-selected も参照してください。

aria-checked 属性は、その要素がチェックされている(true)、未チェック(false)、もしくはチェック済みと未チェックが混在するグループを表している(mixed)かどうかを示します。ほとんどの入力はtruefalseの値のみサポートしていますが、mixed値は特定の三状態入力、たとえば checkboxmenuitemcheckbox などでサポートされています。

mixed値は、radiomenuitemradioswitch あるいはこれらを継承する要素ではサポートされていませんユーザーエージェントは、これらのロールにおいてmixed値をfalseと同等に扱う必要があります(MUST)

三状態入力のmixed値の使用例については、WAI-ARIA オーサリングプラクティスで紹介されています。

特徴:
特性
適用ロール:
継承ロール:
値: tristate
値:
説明
false 要素はチェック可能だが、現時点では未チェックです。
mixed 三状態チェックボックスやmenuitemcheckboxで混在モード値を示します。
true 要素はチェックされています。
undefined(デフォルト) 要素はチェック状態をサポートしていません。

aria-colcount プロパティ

テーブルtable)、gridtreegridの総列数を定義します。関連項目:aria-colindex

すべての列がDOMに存在する場合、この属性を設定する必要はありません。ユーザーエージェントが自動的に総列数を計算できます。ただし、一部の列だけが特定のタイミングでDOMに存在する場合は、この属性でテーブル全体の列数を明示的に示す必要があります。

作成者はaria-colcountの値を、テーブル全体の列数と等しい整数に必ず設定しなければなりません。総列数が不明な場合は、必ず値に-1を指定し、ユーザーエージェントが計算しないことを示します。

次の例は、16列中2,3,4,9列のみ表示されたグリッドを示します。

<div role="grid" aria-colcount="16">
  <div role="rowgroup">
    <div role="row">
      <span role="columnheader" aria-colindex="2">First Name</span>
      <span role="columnheader" aria-colindex="3">Last Name</span>
      <span role="columnheader" aria-colindex="4">Company</span>
      <span role="columnheader" aria-colindex="9">Phone</span>
    </div>
  </div>
  <div role="rowgroup">
    <div role="row">
      <span role="gridcell" aria-colindex="2">Fred</span>
      <span role="gridcell" aria-colindex="3">Jackson</span>
      <span role="gridcell" aria-colindex="4">Acme, Inc.</span>
      <span role="gridcell" aria-colindex="9">555-1234</span>
    </div>
    <div role="row">
      <span role="gridcell" aria-colindex="2">Sara</span>
      <span role="gridcell" aria-colindex="3">James</span>
      <span role="gridcell" aria-colindex="4">Acme, Inc.</span>
      <span role="gridcell" aria-colindex="9">555-1235</span>
    </div></div>
</div>
特徴:
特性
適用ロール:
継承ロール:
値: integer

aria-colindex プロパティ

定義する要素の、tablegrid、またはtreegrid内における、合計列数に対するカラムのインデックスまたは位置を示します。関連項目:aria-colindextextaria-colcountaria-colspan

すべての列がDOMに存在する場合、この属性を設定する必要はありません。ユーザーエージェントが自動的に各セルやgridcellの列インデックスを計算できます。しかし、一部の列のみがその時点でDOM上に存在する場合は、この属性を用いて、フルテーブルにおける各セル/グリッドセルの列を明示的に示す必要があります。

作成者は必ずaria-colindexの値を1以上で同じ行内の前の要素のaria-colindex値より大きく、かつテーブル全体の列数以下の整数値に設定しなければなりません。セルやグリッドセルが複数列にまたがる場合、その開始列のインデックスがaria-colindexとなります。

もしDOMに存在する列が連続しており、かつそのセット内にまたがるセルがない場合、作成者は任意で各行にaria-colindexを付与し、そのセットの先頭列のインデックスを設定できます。それ以外の場合、作成者は推奨で各行のアクセシビリティ子すべてにaria-colindexを指定します。

次の例は16列のグリッドのうち2〜5列が表示されている場合を示します。列セットが連続しているため、aria-colindexは各行に付与することができます。

<div role="grid" aria-colcount="16">
  <div role="rowgroup">
    <div role="row" aria-colindex="2">
      <span role="columnheader"></span>
      <span role="columnheader"></span>
      <span role="columnheader">会社</span>
      <span role="columnheader">住所</span>
    </div>
  </div>
  <div role="rowgroup">
    <div role="row" aria-colindex="2">
      <span role="gridcell">Fred</span>
      <span role="gridcell">Jackson</span>
      <span role="gridcell">Acme, Inc.</span>
      <span role="gridcell">123 Broad St.</span>
    </div>
    <div role="row" aria-colindex="2">
      <span role="gridcell">Sara</span>
      <span role="gridcell">James</span>
      <span role="gridcell">Acme, Inc.</span>
      <span role="gridcell">123 Broad St.</span>
    </div></div>
</div>

次の例は、16 列のうち2〜5列を表示するグリッドで、一部のセルが複数行にまたがっているケースです。そのためaria-colindexは各行のアクセシビリティ子すべてに指定する必要があります。

<div role="grid" aria-colcount="16">
  <div role="rowgroup">
    <div role="row">
      <span role="columnheader" aria-colindex="2"></span>
      <span role="columnheader" aria-colindex="3"></span>
      <span role="columnheader" aria-colindex="4">会社</span>
      <span role="columnheader" aria-colindex="5">住所</span>
    </div>
  </div>
  <div role="rowgroup">
    <div role="row">
      <span role="gridcell" aria-colindex="2">Fred</span>
      <span role="gridcell" aria-colindex="3">Jackson</span>
      <span role="gridcell" aria-colindex="4" aria-rowspan="2">Acme, Inc.</span>
      <span role="gridcell" aria-colindex="5" aria-rowspan="2">123 Broad St.</span>
    </div>
    <div role="row">
      <span role="gridcell" aria-colindex="2">Sara</span>
      <span role="gridcell" aria-colindex="3">James</span>
    </div></div>
</div>

次の例は16列のうち2,3,4,9列が表示されているグリッドです。列セットが非連続なため、各行のアクセシビリティ子すべてに aria-colindexを指定する必要があります。

<div role="grid" aria-colcount="16">
  <div role="rowgroup">
    <div role="row">
      <span role="columnheader" aria-colindex="2"></span>
      <span role="columnheader" aria-colindex="3"></span>
      <span role="columnheader" aria-colindex="4">会社</span>
      <span role="columnheader" aria-colindex="9">電話</span>
    </div>
  </div>
  <div role="rowgroup">
    <div role="row">
      <span role="gridcell" aria-colindex="2">Fred</span>
      <span role="gridcell" aria-colindex="3">Jackson</span>
      <span role="gridcell" aria-colindex="4">Acme, Inc.</span>
      <span role="gridcell" aria-colindex="9">555-1234</span>
    </div>
    <div role="row">
      <span role="gridcell" aria-colindex="2">Sara</span>
      <span role="gridcell" aria-colindex="3">James</span>
      <span role="gridcell" aria-colindex="4">Acme, Inc.</span>
      <span role="gridcell" aria-colindex="9">555-1235</span>
    </div></div>
</div>
特徴:
特性
使用できるロール:
継承先ロール:
値: integer

aria-colindextext プロパティ

定義するaria-colindexの人間に読みやすいテキスト代替を定義します。関連項目:aria-rowindextext

作成者は、提供されたまたは計算されたaria-colindex値が意味を持たなかったり、表示されているインデックスを反映していない場合(スプレッドシートやチェスボードなど)、aria-colindextextのみ使用推奨します。

作成者は、一部の支援技術がユーザーの位置追跡やテーブル操作のために数値インデックスに依存しているため、aria-colindexの代替としてaria-colindextext使用しないでください

注記

aria-colindexと異なり、 aria-colindextextrowのサポートプロパティではありません。ユーザーエージェントはcellgridcellでこの値を露出させるために信頼性のある方法で計算ができないからです。

特徴:
特性
使用できるロール:
継承先ロール:
値: string

aria-colspan プロパティ

定義するtablegrid、またはtreegrid内でセルやグリッドセルがまたがる列数を定義します。関連項目:aria-colindexaria-rowspan

この属性は、ネイティブのテーブルに含まれていないセルやグリッドセルのためのものです。ネイティブテーブル内のセルまたはグリッドセルの列スパンを定義する場合、作成者はaria-colspanではなく、ホスト言語の属性を使用推奨します。ホスト言語で同等の属性が提供されている要素にaria-colspanを使用した場合、ユーザーエージェント必ずaria-colspanの値を無視し、代わりにホスト言語の属性値を支援技術へ公開してください。

作成者は必ずaria-colspanの値を1以上、かつ同じ行の次のセルやグリッドセルと重複しない範囲の整数値に設定してください。

特徴:
特性
使用できるロール:
継承先ロール:
値: integer

aria-controls プロパティ

識別する:現在の要素が制御する要素または複数要素の内容や存在を示します。関連項目:aria-owns

例:

  • 目次のツリービューが隣接するドキュメントペインの内容を制御する。
  • チェックボックスグループが、テーブルまたはグラフでライブ追跡される商品の価格を制御する。
  • タブが関連付けられたタブパネルの表示を制御する。
特徴:
特性
使用できるロール: すべてのベースマークアップ要素
値: ID参照リスト

aria-current 状態

示す:コンテナーや関連する要素セットの中で、現在のアイテムを表す要素を指します。

aria-current属性はトークン型です。許可値リストに含まれない値は支援技術によってtrueが指定されたものとして処理推奨です。属性が存在しない、値が空文字列やundefinedの場合、デフォルト値falseが適用され、aria-current状態はユーザーエージェントや支援技術から公開されてはいけません

aria-currentは、関連要素群の中で、現在のアイテムとして視覚的にスタイルされている要素に使用します。例:

  • ページセット内で現在のページとして表示されている要素にpageトークンを使用する。
  • プロセス内で現在のステップとして表示されている要素にstepトークンを使用する。
  • フローチャート内の現在の構成要素など、現在位置として視覚的に示される要素にlocationトークンを使用する。
  • カレンダーや日付コレクション内で現在の日付にdateトークンを使用する。
  • タイムテーブルや時刻コレクション内で現在の時刻にtimeトークンを使用する。

作成者は、要素セット内でaria-current付与するのは1つだけ推奨です。

作成者は、ウィジェットでaria-selectedが同じ意味を持つ場合にaria-current属性を代用として使わないでください。例:tablistでは、現在表示のtabpanelを示すためにタブにaria-selectedを使用します。

注記

aria-selectedをサポートするウィジェットによっては、「current(現在)」と「selected(選択)」が異なる意味を持ち、同じ要素セット内で両方使用できる場合もあります。例:ナビゲーションtreearia-current="page"が今表示中のページを示し、aria-selected="true"はユーザーがアクティブ化した場合に表示されるページを示します。同じツリーで、コンテキストメニューで「削除」や「移動」を使い一つまたは複数の選択ページ(treeitem)に操作を適用することも可能です。

特徴:
特性
使用できるロール: すべてのベースマークアップ要素
値: トークン
値:
説明
page ページセット内の現在のページを表す。
step プロセス内の現在のステップを表す。
location 環境や状況内の現在位置を表す。
date 日付コレクション内の現在日付を表す。
time 時刻セット内の現在時刻を表す。
true セット内の現在のアイテムを表す。
false(デフォルト) セット内の現在のアイテムではありません。

aria-describedby プロパティ

識別する要素(複数でも可)がオブジェクトを説明するものとします。関連項目:aria-labelledbyaria-description

aria-labelledby属性は、aria-describedbyと同様に他要素を参照し、テキスト代替(アクセシブルネームや説明)を計算します。アクセシブルネームは簡潔なものが推奨されますが、説明は簡潔なものにも冗長なものにもできます。

aria-describedbyで参照された要素が説明の全体を構成します。複数要素が必要な場合はID参照を複数含めるか、一式の要素(例:複数pタグなど)を、参照したIDで囲ってください。

特徴:
関連概念 説明
関連コンセプト:
使用できるロール: すべてのベースマークアップ要素
値: ID参照リスト

aria-description プロパティ

現在の要素を説明または注釈する文字列値を定義します。関連項目:aria-describedby

aria-description属性は、aria-labelと同じく、要素に紐づく単一の文字列(アクセシブルな説明や名前)を提供します。アクセシブルネームは一般的に簡潔であることが好ましいですが、説明は必要に応じてより詳細な情報を持たせることができます。

aria-descriptionの目的は、aria-describedbyと同じです。これは、オブジェクトについてユーザーに追加の説明テキストを提供します。説明のためのもっとも一般的なアクセシビリティ APIマッピングは、accessible descriptionプロパティです。ユーザーエージェントは、アクセシブルな説明プロパティの計算時、aria-descriptionよりもaria-describedbyを優先しなければなりません

可視の説明を提供したくない場合、作成者は任意aria-descriptionを使って要素のアクセシブルな説明を設定できます。ただし、説明テキストがDOM上に存在する場合は、使用すべきではなく、代わりに以下のいずれかを使うべきです:

  • 簡潔な説明がテキストとして伝わるのが望ましい場合、作成者は推奨aria-describedbyを使用してください。
  • 説明や注釈となる要素に意味や構造があり、内容が多い場合やフラットな文字列として伝えるのが難しい場合は、作成者は推奨aria-detailsを使ってください。この場合、支援技術利用者は構造化された内容を体験したり、詳細ナビゲーションコマンドで理解しやすくすることができます。
特徴:
特性
関連概念:
使用できるロール: すべてのベース・マークアップ要素
値: string

aria-details プロパティ

オブジェクトに関連する追加情報を提供する要素(複数も可)を識別します。関連項目:aria-describedby

aria-detailsプロパティは、通常aria-describedbyで提供されるより詳細な情報を参照するためのものです。aria-detailsがあることで、支援技術は拡張情報が利用可能であることをユーザーに伝え、そこへナビゲートできるようにします。作成者は、aria-detailsで参照される要素が全ユーザーに見える状態であることを推奨します。

支援技術は、aria-detailsで参照される要素のロールを利用して、要素に関連付けられた情報の種類をユーザーへ伝えることができます。作成者は任意で以下のように詳細の種類を伝えることもできます:

  • コメント: aria-detailscommentロールを持つ要素を参照
  • 定義: aria-detailstermロール要素に付与し、definitionロール要素を参照
  • キャプション: aria-detailsfigureロール要素に付与し、captionロール要素またはcaption内の要素を参照
  • 脚注: aria-detailsdoc-footnoteロール要素を参照。役割は[DPUB-ARIA-1.0]で定義
  • エンドノート: aria-detailsdoc-endnoteロール要素を参照。役割は[DPUB-ARIA-1.0]で定義
  • 説明または一般注釈: aria-detailsがその他のロールの要素を参照

aria-describedbyで参照される要素とは異なり、aria-detailsで参照された要素は、アクセシブルネーム&ディスクリプション仕様のDescription Computationに使われません。したがって、aria-detailsで参照された要素の内容は支援技術に提示される際、文字列化されたりしません。このため、情報を文字列へ変換してしまうと意味が失われる場合や、拡張情報が理解しづらくなる場合に特に有用です。

aria-detailsプロパティは複数の要素を参照できます。例えば、ドキュメントエディタ内のパラグラフが意味の異なる複数のコメントを参照する場合などです。もし利用するアクセシビリティAPIが複数の記述的関連付けをサポートしない場合、ユーザーエージェントはaria-detailsで最初に参照される要素への関連付けを推奨します。

同じ要素にaria-detailsaria-describedbyまたはaria-descriptionで説明が指定されることも有効です。もし利用するアクセシビリティAPIが複数の記述的関連付けをサポートせず、かつ要素に両方が指定されている場合、ユーザーエージェントはaria-detailsの関連付けと、aria-describedbyで計算された説明文字列を推奨して公開します。

aria-detailsの一般的な用途は、書籍などで拡張説明を明示的な構造付きマークアップや埋め込み技術で提供する必要があるデジタルパブリッシング分野です。以下にこのシナリオを示す例があります。

<!-- 拡張説明を提供 -->
<img src="pythagorean.jpg" alt="ピタゴラスの定理" aria-details="det">
<details id="det">
  <summary></summary>
  <p>
    ピタゴラスの定理は、ユークリッド幾何学における直角三角形の三辺の関係性であり、斜辺の二乗が他の二辺の二乗和となります。
  </p>
  <p>
    次の図は、スケートボードのランプを作る際にピタゴラスの定理を適用する例です。
  </p>
  <object data="skatebd-ramp.svg"  type="image/svg+xml"></object>
  <p>
    この例では、幅を持つランプ台(ベース)と垂直な板があるスケートボードランプが見えます。ランプの長さを求めるには、ベース長を二乗し、その値と高さの二乗を加算し、その和の平方根を取ってください。
  </p>
</details>

あるいは、次の例のように、aria-detailsが拡張説明のあるウェブページへのリンクを参照することもできます。

<!-- 拡張説明を提供 -->
<img src="pythagorean.jpg" alt="ピタゴラスの定理" aria-details="det">
<p>
  <a href="http://foo.com/pt.html" id="det">ピタゴラスの定理の応用</a>をご覧ください。
</p>
特徴:
特性
使用できるロール: すべてのベース・マークアップ要素
値: ID参照リスト

aria-disabled 状態

要素が知覚可能だが無効化(disabled)されていて編集や操作不可であることを示します。関連項目:aria-hiddenaria-readonly

例えば、ラジオグループで関係ない選択肢を無効化できます。無効な要素はTabキー順でフォーカスを受け取れない場合があります。一部の無効要素については、アプリケーションが子孫ナビゲーション非対応とする場合もあります。aria-disabled属性を設定する際は、推奨で外観(グレーアウトなど)も変更してください。

無効状態(disabled)はaria-disabledを持つ要素および、その全てのフォーカス可能な子孫に適用されます。

注記

aria-disabled と適切なスクリプトでlinkロール要素を無効化できますが、ホスト言語側の同等機能では完全な無効化が困難な場合もあります。このため、ホスト言語だけで無効化できない要素で aria-disabled を使うのは避けてください。

注記: columnheader, rowheader, rowでの使用

現在aria-disabledcolumnheaderrowheaderrowでサポートされていますが、将来的なバージョンではこれら3ロールでは、gridtreegrid以外では使用禁止予定です。

注記

この状態はARIA 1.2でグローバルステートから廃止予定です。将来のバージョンではロール限定でのみ許可されます。

特徴:
特性
使用できるロール:
継承先ロール:
値: true/false
値:
説明
false(デフォルト) 要素は有効です。
true 要素および全てのフォーカス可能な子孫が無効化され、値はユーザーによって変更できません。

aria-dropeffect プロパティ

[ARIA 1.1で廃止] ドラッグしたオブジェクトをドロップターゲットで離したときにどんな操作が可能かを示します。

注記

aria-dropeffectプロパティは将来のWAI-ARIAで新機能に置き換わる見込みです。したがって、aria-dropeffect廃止予定としてください。

このプロパティは、支援技術が利用者に可能なドラッグ操作(アプリケーション独自のポップアップメニューの有無も含む)を伝えるのに使われます。通常ドロップ効果の機能は、オブジェクトがドラッグ操作でつかまれた後にのみ提供され、その時点のドロップ効果もオブジェクトに依存します。

1つの要素で複数のドロップ効果をサポート可能です。そのため、この属性の値はスペース区切りのトークンセットまたは操作不可の場合はnoneになります。aria-dropeffect属性を設定する際は、推奨で可能なドロップターゲットに視覚的なヒントも表示してください。

特徴:
特性
使用できるロール: すべてのベース・マークアップ要素
値: トークンリスト
値:
説明
copy 元のオブジェクトの複製がターゲットにドロップされます。
execute ドロップターゲットでサポートされる機能がドラッグ元を入力値として実行されます。
link 元オブジェクトへの参照やショートカットがターゲットオブジェクトに作成されます。
move 元オブジェクトが元の位置から削除され、ターゲットにドロップされます。
none(デフォルト) どんな操作もできません。ドロップ操作が試みられてもキャンセル扱いです。他のトークンと同時指定なら無視されます(例: 'none copy' は 'copy' と同じ)。
popup ポップアップメニューやダイアログでユーザーがドラッグ操作(copy, move, link, execute等)の選択やキャンセルも可能です。

aria-errormessage プロパティ

オブジェクトのエラーメッセージを提供する要素(複数も可)を識別します。関連項目:aria-invalidaria-describedby

aria-errormessage属性は、エラーメッセージ本文が含まれる他要素を参照します。作成者は必ずaria-invalidaria-errormessageと併用しなければなりません。

オブジェクトの値が無効な場合、aria-invalidtrueに設定され、aria-errormessageで参照した要素のメッセージが関連付きになります。

オブジェクトが有効な状態なら、aria-invalidfalseか、そもそも属性がありません。作成者は現在有効なオブジェクトにもaria-errormessage任意で付与できますが、その場合は参照された要素がすべてのユーザーから隠されていることが必要です。

aria-errormessageが関連する状態では、その内容がすべてのユーザーから隠れないよう作成者は必ずしてください。逆に関連しないなら、必ずどちらかを実施:内容を全ユーザーから隠す/aria-errormessage属性(またはその値)を消す。

ユーザーエージェントは、aria-invalid値がfalseの場合はaria-errormessage決して公開してはいけません。

作成者は新たに表示したエラーメッセージをライブリージョンで強調する目的で、aria-liveプロパティやライブリージョンロール(例:alert)を使う任意もあります。値が無効の後でエラーメッセージが出る場面にはライブリージョンが適しています。

典型的なメッセージは問題点と対処情報を伝えます。たとえば「無効な時刻です: 9:00〜17:00の間にしてください」といった具合です。下例は初回の有効状態から無効状態になった時のマークアップ例です。aria-invalid属性や、エラーメッセージを含む要素のaria-live変更に注目してください:

<!-- 初回(有効状態) -->
<label for="startTime">ミーティングの開始時刻を入力してください:</label>
<input id="startTime" type="text" aria-errormessage="msgID" value="" aria-invalid="false">
<span id="msgID" aria-live="assertive"><span style="visibility:hidden">無効な時刻:9:00~17:00の間にしてください</span></span>

<!-- ユーザーが無効値を入力 -->
<label for="startTime">ミーティングの開始時刻を入力してください:</label>
<input id="startTime" type="text" aria-errormessage="msgID" aria-invalid="true" value="11:30 PM" >
<span id="msgID" aria-live="assertive"><span style="visibility:visible">無効な時刻:9:00~17:00の間にしてください</span></span>
注記

この例ではaria-live="assertive"を使って支援技術がエラーメッセージを即時通知することを示しています。これにより、ユーザーが入力からフォーカスを外す前にエラーを把握しやすくなります。

注記

この状態はARIA 1.2でグローバルステートから廃止予定です。将来のバージョンではロール限定でのみ許可されます。

特徴:
特性
使用できるロール:
継承先ロール:
値: ID参照リスト

aria-expanded 状態

この要素がアクセシビリティ子またはコントロールするグループ要素の展開/折りたたみ状態を示します

aria-expanded属性は、他の要素の内容表示を切り替えるフォーカス可能かつインタラクティブな要素に付けます。たとえば、親treeitemに付けて子ツリーの表示状況を示したり、あるいはセクション表示制御のbuttonに付与できます。

展開・折りたたみ可能なグループコンテナが、この属性を持つ要素のアクセシビリティ子でない場合、作成者は推奨aria-controlsプロパティで制御関係先としてグループコンテナIDを明示してください。

特徴:
特性
使用できるロール:
継承先ロール:
値: true/false/undefined
値:
説明
false この要素がコントロールするまたは親となるグループ要素は折りたたまれています。
true この要素がコントロールするまたは親となるグループ要素は展開されています。
undefined(デフォルト) 要素が展開可能なグループ要素を所有・制御していません。

aria-flowto プロパティ

コンテンツの代替読み順における次の要素(または複数要素)を識別します。ユーザーの判断で、支援技術によって一般的な文書ソース順での読み上げを上書きできるようになります。

aria-flowtoが1つのID参照の場合、ユーザーの要求により通常の文書読み順をスキップして対象のオブジェクトへ移動できるよう、支援技術を許可します。ただし、aria-flowtoに複数のID参照が設定されている場合、支援技術は推奨でパス選択肢として参照要素を提示します。

1つ以上のID参照が指定された場合、ユーザーエージェントや支援技術は推奨で、どのターゲット要素にも移動できるナビゲーション手段をユーザーに提供します。パス名はaria-flowto属性のターゲット要素の名前から決定できます。アクセシビリティAPIは名前付きパスの関係を提供できます。

特徴:
特性
使用できるロール: すべてのベースマークアップ要素
値: ID参照リスト

aria-grabbed 状態

[ARIA 1.1で廃止] ドラッグ&ドロップ操作における要素の「つかまれた」状態を示します。

注記

aria-grabbed状態は将来のWAI-ARIAバージョンで新機能に置き換えられる予定です。そのため、aria-grabbed廃止予定と考えてください。

aria-grabbedtrueにすると、その要素がドラッグ操作用に選択されたことを意味します。aria-grabbedfalseにすると、その要素はドラッグ&ドロップ操作用につかめるが現在はつかまれていないことを示します。aria-grabbedが指定されていない場合やundefined(デフォルト値)なら、その要素はつかまれることができません。

aria-grabbedtrueのとき、作成者は推奨で全てのポテンシャルドロップターゲットのaria-dropeffect属性を更新すべきです。要素がつかまれていない(値がfalseまたはundefined、または属性を削除)場合、作成者は推奨で関連するドロップターゲットのaria-dropeffect属性をnoneへ戻してください。

特徴:
特性
使用できるロール: すべてのベースマークアップ要素
値: true/false/undefined
値:
説明
false この要素はドラッグ可能であることを示します。
true この要素がドラッグのために「つかまれた」ことを示します。
undefined(デフォルト) この要素はドラッグをサポートしないことを示します。

aria-haspopup プロパティ

メニューやダイアログなど、インタラクティブなポップアップ要素の有無や種類を、要素がトリガーできるかどうか示します。

ポップアップ要素は通常、他のコンテンツ上に重なって表示されるブロックとして現れます。作成者は必ず、ポップアップコンテンツのコンテナ要素のroleをmenulistboxtreegridまたはdialogのいずれかとし、aria-haspopup値がポップアップコンテナのロールと一致することを保証してください。

キーボードでポップアップを利用可能にするには、作成者は、ポップアップをトリガーできる要素にフォーカスが当たること、キーボードでポップアップを開く手段があること、ポップアップ内のすべての子孫要素のフォーカス管理を行うことを推奨します。詳細はManaging Focus参照。

aria-haspopupプロパティはトークン型です。ユーザーエージェント必ず、許可値リストに含まれない値や空文字列などはfalseと同じとみなしてください。ARIA 1.0コンテンツとの後方互換のため、aria-haspopupの値がtrueであればmenuと同等と必ずみなします。

支援技術やユーザーエージェントは非推奨で、値がfalseの場合aria-haspopupを公開しないでください。

注記

tooltipはこの文脈でポップアップとはみなされません。

注記

aria-haspopupは、ポップアップをトリガーする要素に視覚的な指標(下向き三角やチェブロン、三点リーダー「…」等)がある場合に特に有用です。何らかの視覚的バリエーションによる機能の違いを示す場合、その違いは支援技術ユーザーにも伝える価値があります。逆に、視覚的にポップアップになることを示さない場合は、aria-haspopupの使用が必要か再検討し、不必要な場合は避けてください。

注記

このプロパティはARIA 1.2でグローバルプロパティとして非推奨です。将来バージョンでは専用ロールでのみ利用可となります。

特徴:
特性
関連概念:
使用できるロール:
継承ロール:
値: トークン
値:
説明
false(デフォルト) 要素がポップアップを持たないことを示します。
true ポップアップがmenuであることを示す。
menu ポップアップがmenuであることを示す。
listbox ポップアップがlistboxであることを示す。
tree ポップアップがtreeであることを示す。
grid ポップアップがgridであることを示す。
dialog ポップアップがdialogであることを示す。

aria-hidden 状態

示す は、その 要素 がアクセシビリティ API に公開されているかどうかを示します。関連: aria-disabled

ユーザーエージェントは、要素がレンダリングされているかどうかに基づいて要素の hidden 状態を判定し、レンダリングは通常 CSS によって制御されます。たとえば、要素の display プロパティが none に設定されている場合、その要素はレンダリングされません。要素自身またはその先祖のいずれかがレンダリングされていないか、または aria-hidden 属性値が true に設定されている場合、その要素は hidden と見なされます。

著者は注意を払ったうえで、重複または不要なコンテンツを除去することで支援技術利用者の体験を改善することを意図している場合に限り、可視的にレンダリングされたコンテンツを支援技術から隠すために aria-hidden を使用してもよい (MAY)。スクリーンリーダーから可視コンテンツを隠すために aria-hidden を使用する著者は、同一または同等の意味と機能が支援技術に対して公開されていることを確実にしなければならない (MUST)。

著者は、可視的にレンダリングされたコンテンツを支援技術から隠す際には極めて慎重に扱い、さまざまな障害を考慮することが推奨されます。たとえば、視覚はあるが操作性に制限のある利用者が音声操作の支援技術を使って視覚インターフェースにアクセスする場合、著者が可視のリンクテキスト "Go to checkout" を隠し、アクセシビリティ API には類似するが同一でないリンクテキスト "Check out now" を公開したとすると、その利用者は音声操作で認識しているインターフェースにアクセスできない可能性があります。同様の問題はスクリーンリーダー利用者にも生じ得ます。たとえば、視覚を持つ電話サポート担当者が盲目のスクリーンリーダー利用者に "Go to checkout" リンクをクリックするよう案内しても、その利用者はタイプアヘッド検索("Go to…")でそのリンクを見つけられないかもしれません。

本稿執筆時点では、aria-hidden="false" はブラウザで一貫して動作しないことが知られています。将来の実装が改善されるにつれて、この手法に依存する前に注意を払い十分にテストしてください。

特徴:
特性
使用できるロール: すべてのベースマークアップ要素
値: true/false/undefined
値:
説明
false 要素は描画されるものとしてアクセシビリティAPIに公開されます。
true 要素は非表示となり、アクセシビリティAPIに公開されません。
undefined(デフォルト) 要素の非表示状態は、描画状況からユーザーエージェントが決定します。

aria-invalid 状態

入力値がアプリケーションの期待するフォーマットと一致しないことを示します。関連項目:aria-errormessage

値が無効または範囲外に判定されたら、アプリケーション作成者は推奨でこの属性trueにしてください。ユーザーエージェント推奨でユーザーに通知します。作成者は修正サジェストもわかっている場合推奨でそれも提示してください。

ユーザーがaria-requiredtrueなフィールドでデータ送信しようとした場合、任意aria-invalid属性でエラーを示せます。ただし、未送信の段階でまだデータ未入力なだけの場合は、非推奨で必須ウィジェットにaria-invalidを設定しない方がよいです。

将来の拡張のため、aria-invalid属性はトークン型です。許可値リストにない値はユーザーエージェントによってtrueとみなされ必須です。属性がなければ値false(または空文字列)のデフォルトになります。

注記

この状態はARIA 1.2でグローバルステートから廃止予定です。将来は専用ロールでのみ許容されます。

特徴:
特性
使用できるロール:
継承ロール:
値: トークン
値:
説明
grammar 文法エラーが検出されたことを示します。
false(デフォルト) 値にエラーは検出されていません。
spelling スペルミス(綴り間違い)が検出されました。
true ユーザーが入力した値がバリデーションに失敗しています。

aria-keyshortcuts プロパティ

作成者が実装した、要素をアクティブ化またはフォーカスするためのキーボードショートカットを定義します。

aria-keyshortcuts属性の値は、コマンドやテキストボックスウィジェットを操作するために押すことのできるキーボードショートカットをスペース区切りで列挙したものです。ショートカットで定義されるキーは物理的に押下するキーを示し、実際に生成される文字ではありません。各キーボードショートカットは「+」記号で区切られた1つ以上のトークンで構成され、「0個以上のモディファイアキー+ちょうど1つの非モディファイアキー」から成り、同時押しでショートカットとなります。

作成者は必ずモディファイアキーはUI Events KeyboardEvent key Values仕様(例:"Alt", "Control", "Shift", "Meta", "AltGraph" 等)に厳密に従って指定してください。MetaはApple製品ではコマンドキー、Altはオプションキーです。

非モディファイアキーの有効名は「A」「B」「1」「2」「$」「Plus(プラス記号)」や「Space(スペースバー)」、あるいはUI Events KeyboardEvent key Values仕様に記載の「Enter」「Tab」「ArrowRight」「PageDown」「Escape」「F1」などの名称です。スペースバーのみ、「Space」を使用します(本仕様の例外)。

ショートカット内ではモディファイアキーを必ず先に、必要な非モディファイアキーは必ず最後に指定必須です。それ以外は順不同なので、"Alt+Shift+T" と "Shift+Alt+T" は等価ですが、"T+Shift+Alt" は不正ですし "Alt" だけの指定も不正です。

アルファベットキーは大文字小文字どちらでも等価です:"a"も"A"も同じ意味です。

キーボードショートカットを実装する際は、対象とするキーボードの設計や言語ごとのレイアウト違いによる予期せぬ挙動を考慮すべきです。たとえば国際的なキーボードでは、数値や記号入力にモディファイアキーが必要な場合もあります。

多くのキーボード設計を考慮するには、ASCII英字以外のキーを避けると衝突の危険を減らせます(レイアウトにより数字・記号は修飾が不要だったり要だったりするため)。

モディファイアキーで文字が入力される場合、必ず「入力で押すキー名」を指定してください。たとえば米国英語配列で%(パーセント記号)はShift+5で入力しますので、「Shift+5」が正しい指定となり、「%」「Shift+%」は誤りです。ただし一部海外配列では単独「%」もあり、その場合は正規です。

ホスト言語で禁止文字や文字列終端文字を指定する必要があれば、そのエスケープ手段を使って記述必須です。例:「'」はHTMLなら"&#39;"として指定。

ショートカットの例:

  • "A"
  • "Shift+Space"
  • "Control+Alt+."
  • "Control+Shift+&#39;"
  • "Alt+Shift+P Control+F"
  • "Meta+C Meta+Shift+C"

ユーザーエージェントは決してaria-keyshortcuts属性によってキーボード動作を変更してはいけません。作成者が自身でキーイベント処理と対処必須です。この属性は支援技術がユーザーへショートカットを伝える用途のみです。

作成者は推奨でツールチップ等により全ユーザーがショートカット内容を確認できる方法を用意してください。またaria-keyshortcutsを無効な要素へ設定した場合は必ず無効であることを保証必須です。

作成者はOSや利用環境・支援技術の機能を妨げるショートカット実装は避けるべきです。割り当てるキー・有効な文脈・条件等を慎重に検討してください。参考:「WAI-ARIAオーサリング実践集」のショートカット部分も参照ください。

作成者は、各言語やキーボード配列でショートカットが妥当か検証・ローカライズも検討してください。

特徴:
特性
関連概念:
使用できるロール: すべてのベースマークアップ要素
値: string

aria-label プロパティ

現在の要素のラベルとなる文字列値を定義します。関連項目:aria-labelledby

aria-label の目的は aria-labelledby と同じです。ユーザーにオブジェクトの判別しやすい名前を提供します。ラベルのもっとも一般的な アクセシビリティAPIマッピングは アクセシブルネーム プロパティです。

多くのホスト言語には要素名を指定するための属性(例: title 属性など、HTMLにおける)が用意されていますが、これはブラウザーのツールチップとして表示される場合があります。DOMコンテンツやツールチップが不要な場合、作成者は任意で、要素が禁止でない限り aria-label を使ってアクセシブルネームを設定できます。ラベルテキストがDOM上(=通常の可視テキスト)で利用できる場合、作成者は aria-labelledby利用しaria-label利用しないべきです。要素の名前がDOMから自動取得できない場合や、DOMを参照するUXが望ましくないときがあります。決して明示または暗黙のWAI-ARIA roleでaria-label禁止されている要素に aria-label を指定してはいけません。アクセシブルネーム・説明計算に従い、ユーザーエージェントは名前プロパティ計算時に aria-labelledbyaria-label より優先します。

特徴:
特性
適用ロール: 以下のロールを除くすべてのベースマークアップ要素:captioncodedefinitiondeletionemphasisgenericinsertionmarknoneparagraphstrongsubscriptsuggestionsuperscripttermtime
値: string

aria-labelledby プロパティ

現在の要素をラベル付けする要素(複数でも可)を識別します。関連項目:aria-labelaria-describedby

aria-labelledbyの目的は aria-label と同一であり、ユーザーに判別できるオブジェクト名を提供します。ラベルのもっとも一般的なアクセシビリティAPIマッピングはアクセシブルネームプロパティです。

もしインターフェイス上で可視ラベルが表示できない場合、作成者は推奨aria-label を使い、aria-labelledby使わないでください。明示的または暗黙のWAI-ARIAロールで aria-labelledby禁止されている場合は決して指定しないでください。アクセシブルネーム・説明計算仕様に従い、ユーザーエージェントは計算時 aria-labelledbyaria-label より優先します。

aria-labelledby属性は aria-describedbyと似ており、両者とも他要素を参照してテキスト代替(アクセシブルネームや説明)を計算できます。アクセスネームは簡潔なものが望ましいですが、説明は簡潔でも詳細でもかまいません。

注記

このプロパティの米国英語での正しい綴りは "labeledby" ですが、マッピング先のアクセシビリティAPIの仕様上 "labelledby" と綴られています。このプロパティはその慣例に揃え、開発者の混乱を防ぐためにそう表記されています。

特徴:
関連概念 説明
関連コンセプト:
適用ロール: 以下のロールを除くすべてのベースマークアップ要素:captioncodedefinitiondeletionemphasisgenericinsertionmarknoneparagraphstrongsubscriptsuggestionsuperscripttermtime
値: ID参照リスト

aria-level プロパティ

要素の階層レベルを定義します。element

これはツリー内のツリー項目、文書内の見出し、ネストしたグリッドやタブリスト、コンテナや階層に参加するほかの構造的要素などで利用できます。値は1以上の整数です。

レベル値は階層が深くなるごとに増加します。DOMの継承構造が正しくレベルを表現していない場合、作成者は推奨aria-level 属性を明示的に定義するべきです。

この属性は、セットの向きにおけるリーフノード(例:treeitem roleの要素など)に適用されます。そのため、同一セットの複数要素で同じ属性値になることもあります。コンテナに一括指定すればもっと簡単ですが、リーフノードへの指定に限定することで、支援技術が属性を利用する方法を一つにしやすくなります。

DOMの継承関係が正しくレベルを表せる場合はユーザーエージェントが自動でアイテムのレベルを計算できます。そうでない場合や aria-owns 属性があり計算不可な場合、明示指定が有用です。自動判定対応状況は実装依存のため、作成者は推奨で複数のユーザーエージェントと支援技術でこの属性の必要有無を検証してください。自動計算で十分なら本属性は省略推奨です。

注記

treegridの場合、aria-levelrowロール要素でサポートされ、gridcellではありません。一見、treeitem要素への適用と矛盾するようですが、rowgrid の縦方向におけるリーフノードであり、gridcellは横方向の各row内のリーフノードとなるためです。行内のセル群にはレベル指定されませんので、aria-level属性はrow要素に付きます。

注記

headingロール要素で、aria-level値が6より大きいとユーザーの体験が損なわれることがあります。また執筆時点でほとんどのユーザーエージェントと支援技術の組み合わせで見出し(heading)のレベル整数は1~9のみがサポートされています。

特徴:
特性
適用ロール:
値: integer

aria-live プロパティ

要素が更新されることを示し、elementユーザーエージェント支援技術、ユーザーがライブリージョンからどのような更新を受けるか説明します。

この属性の は重要度のレベルで示されます。polite設定時は支援技術はユーザーに変更を通知しますが通常現在の作業を割り込まず後回しにします。assertive設定時は支援技術が即座にユーザーへ通知し、場合によっては以前の通知キューを消去します。

ポライトネス(礼儀)レベルは基本的に更新の順序付けであり、ユーザーエージェントや支援技術側への強い提案です。値はユーザーエージェントや支援技術またはユーザー本人により上書きできる場合があります。例えばキー押下やマウスクリックにより発生した場合、属性値がどうであれ即時に通知されたりします。

ニーズは多様なので、ユーザーがライブリージョンのポライトネスレベルごとの支援技術反応を調整できます。支援技術には処理キューや割り込みの制御を細かく扱えるものもあります。

プロパティが更新通知を必要とするオブジェクトに未設定の場合、最も近い祖先のaria-live値が適用されます。

aria-live属性が、ライブリージョン更新の通知順序を決める主要な基準です。実装では、祖先属性が未設定時はロールごとのデフォルト値も考慮されます(例:logのデフォルトはpolite)。assertiveは即時通知、politeは後回しにされ、assertive発生時はキューされた通知がクリアされる場合もあります。

politeにすると、支援技術は推奨で現在の文が終わる、または入力作業の合間に通知します。assertiveだと支援技術は推奨ですぐ通知します。割り込みはユーザーの混乱や操作妨害要因となるため、差し込みが本当に必要なとき以外はassertiveの利用は控えてください。

特徴:
特性
適用ロール: すべてのベースマークアップ要素
値: トークン
値:
説明
assertive リージョンの更新は最優先で扱われ、即座にユーザーに通知されます。
off(デフォルト) このリージョンへの更新は、ユーザーがその領域にフォーカスしていない限り通知されません。
polite リージョンの更新は現在の文読み上げや入力作業の合間など、適切なタイミングで通知されます。

aria-modal プロパティ

要素が表示時にモーダル(排他的UI)か示します。

aria-modal属性は、その「モーダル」な要素が表示されている間、ページ内の他の内容を使えないことを示すために使います。たとえばモーダルダイアログ表示中は、ユーザーはダイアログ内に限り操作でき、ダイアログのフォーカスが外れるか非表示になるまで他には操作できません。

モーダル要素表示時、支援技術は推奨でその要素に移動します(明示的な別フォーカス指定があれば除く)。一部支援技術はモーダル要素の内容だけに移動を制限します。フォーカスがモーダル外へ移動した場合、支援技術も移動制限非推奨です。

モーダル要素表示時、作成者は必ずUIをモーダルの子孫のみで完結できるよう設計してください。たとえばクローズボタンは必ずダイアログ内の要素にします。モーダル表示時は他全内容をinert(無効)にすることがアクセス可能なら推奨です(HTMLの場合"inert subtree"など)。

特徴:
特性
適用ロール:
継承ロール:
値: true/false
値:
説明
false(デフォルト) 要素はモーダルではありません。
true 要素はモーダルです。

aria-multiline プロパティ

テキストボックスが複数行の入力を受け付けるか、1行のみを許可するかを示します。

注記

多くのユーザーエージェント実装では、ENTERRETURNキーの動作はHTML中の1行用と複数行用テキストフィールドで異なります。1行用<input type="text">では通常、そのキーがフォーム送信になります。複数行用<textarea>では、そのキーが改行を入力します。WAI-ARIAのtextboxロールは、この区別を aria-multiline 属性で明示できるため、フィールド設計時はこの違いに注意してください。

特徴:
特性
適用ロール:
継承ロール:
値: true/false
値:
説明
false(デフォルト) これは1行テキストボックスです。
true これは複数行テキストボックスです。

aria-multiselectable プロパティ

ユーザーが選択可能な子孫の中から複数項目を選択できることを示します。

作成者は推奨で、選択済みの子孫にはaria-selected属性trueにし、選択されていない選択可能な子孫にはfalseに設定してください。選択不可能な子孫にはaria-selected属性を使用しないでください

注記

リストやツリーなどは、同時に複数項目選択を許可するロールの例です。

特徴:
特性
適用ロール:
継承ロール:
値: true/false
値:
説明
false(デフォルト) 一度に選択できる項目は1つのみです。
true ウィジェット内で複数の項目を同時に選択できます。

aria-orientation プロパティ

この要素の方向が水平・垂直・未定(曖昧)かを示します。

注記

ARIA 1.1ではaria-orientationのデフォルト値がhorizontalからundefinedへ変更されました。一部ロールには暗黙のデフォルト値があります(例:sliderは水平がデフォルト、scrollbarは垂直がデフォルト)が、明確な期待値がないもの(例:radiogroup)では未定義のままとなっています。

特徴:
特性
適用ロール:
継承ロール:
値: トークン
値:
説明
horizontal 要素は水平方向です。
undefined(デフォルト) 要素の方向が不明・不定です。
vertical 要素は垂直方向です。

aria-owns プロパティ

識別する 要素(または複数の要素)を指定し、DOM 階層でその関係を表現できない場合において、DOM 要素間の視覚的、機能的、または文脈上の親子関係(relationship)を定義します。関連項目: aria-controls

aria-owns 属性の値は、ドキュメント内の1つ以上の要素を ID で参照するスペース区切りの ID 参照リストです。aria-owns を追加する理由は、DOM からは推測できない親子の文脈的関係を支援技術(assistive technologies)に露出させるためです。

要素が aria-owns と DOM の子要素の両方を持つ場合、親子関係に関する子要素の順序はまず DOM の子要素が先に来て、その後に aria-owns で参照された要素が続きます。もし著者が DOM の子要素が先でないことを意図する場合は、望ましい順序で DOM の子要素を aria-owns に列挙してください。著者は SHOULD NOTaria-owns を DOM 階層の代替として使用すべきではありません。もし関係が DOM で表現されているなら、aria-owns を使用しないでください。

著者は、ある要素の ID が同時に他の複数の要素の aria-owns 属性に指定されないようにすることを必ずMUST)保証しなければなりません。言い換えれば、要素は明示的な所有者を 1 つだけ持つことができます。著者は MUST NOTaria-owns で循環参照を作成してはなりません。著者による aria-owns の誤った記述があった場合、ユーザーエージェントは一貫したコンテンツモデルを構築するために一部の aria-owns の要素参照を無視してもよい(MAY)場合があります。

特徴:
特性
適用ロール: すべてのベースマークアップ要素
値: ID参照リスト

aria-placeholder プロパティ

コントロールに値がない時、ユーザーのデータ入力を支援する簡単なヒント(単語や短い文)を定義します。ヒントはサンプル値やフォーマット説明などが例です。

作成者は、aria-placeholder をラベルの代わりに使うべきではありません。両者の目的は異なり、ラベルは期待される情報種別を示し、placeholderは期待値のヒントです。関連項目:aria-labelledbyaria-label

作成者はこのヒントテキストを、コントロールの値が空文字列のとき常に表示推奨です。これはコントロールが最初にフォーカスされた時や、入力値が削除された後にも該当します。

注記

HTMLの placeholder 属性と同じく、ラベルの代用としてplaceholderを用いると高齢者や認知・身体・視覚障害者も含む多くの利用者でアクセシビリティ・ユーザビリティが低下します。ラベルによるヒントは常時示されますが、プレースホルダの短いヒントは値入力前のみ表示です。更にプレースホルダが初期値と誤認されることもあり、デフォルト色はコントラスト不足、視認ラベルが無いとフォーカス可能な領域も狭まる等問題があります。

次の例では、HTMLlabel要素を使用していません。これは、labelHTML要素に対してcontenteditableを指定した場合にラベル付けするために使用できないためです。

次の例は、ユーザーが値を入力したsearchboxを示します:

<span id="label">Birthday:</span>
<div contenteditable role="searchbox" aria-labelledby="label" aria-placeholder="MM-DD-YYYY">03-14-1879</div>

次の例は、値が未入力または入力値を削除した同じsearchboxを示します:

<span id="label">Birthday:</span>
<div contenteditable role="searchbox" aria-labelledby="label" aria-placeholder="MM-DD-YYYY">MM-DD-YYYY</div>
特徴:
関連概念 説明
関連コンセプト:
適用ロール:
継承ロール:
値: string

aria-posinset プロパティ

現在の要素がリストアイテムまたはツリーアイテム集合内で何番目か(または番号)を定義します。すべての要素がDOMに存在している場合は不要です。関連項目:aria-setsize

もし集合内の全アイテムが文書構造上に存在するなら、この属性の設定は不要です。ユーザーエージェントがセットサイズや各アイテムの順序を自動計算できます。しかし、その時DOMに一部しか存在しない場合は明示的な位置情報として本プロパティが必要です。

次の例は16個中の5〜8番目を示します。

<h2 id="label_fruit"> Available Fruit </h2>
<ul role="listbox" aria-labelledby="label_fruit">
  <li role="option" aria-setsize="16" aria-posinset="5"> apples </li>
  <li role="option" aria-setsize="16" aria-posinset="6"> bananas </li>
  <li role="option" aria-setsize="16" aria-posinset="7"> cantaloupes </li>
  <li role="option" aria-setsize="16" aria-posinset="8"> dates </li>
</ul>

aria-posinset指定時は、必ず値を1以上かつセットサイズ以下の整数で指定してください。aria-posinset指定時はaria-setsize必ず設定してください。

aria-posinsetmenuitemmenuitemcheckboxmenuitemradioに使う場合は、区切り要素(separator)は含めずメニュー全体の要素数に従い値を指定推奨です。

特徴:
特性
適用ロール:
継承ロール:
値: integer

aria-pressed 状態

トグルボタンの現在の「押下」状態を示します。関連項目: aria-checkedaria-selected を参照してください。

トグルボタンは値を変更するために、完全な押下および解放のサイクルが必要です。1回アクティブにすると値はtrueになり、さらにもう一度アクティブにすると値はfalseに戻ります。mixedの場合は、そのボタンが制御する複数の項目の値がすべて同じでないことを意味します。属性が存在しない場合、そのボタンはトグルボタンではありません。

aria-pressed属性はaria-checked属性と似ていますが、同じではありません。オペレーティングシステムでは、ボタンにpressed、チェックボックスにcheckedがサポートされています。

特徴:
特性
適用ロール:
値: 三状態
値:
説明
false 要素は押下可能だが、現在は押されていません。
mixed 三状態トグルボタンで「混合」モードを示します。
true 要素は押されています。
undefined(デフォルト) 要素は押下状態をサポートしません。

aria-readonly プロパティ

要素が編集不可だが、それ以外の操作が可能であることを示します。関連項目:aria-disabled

これはユーザーがウィジェットの値を読み取ることはできても、値を設定できないことを意味します。readonly要素はユーザーが利用可能な状態であり、アプリケーション作成者はナビゲーションや子孫要素(フォーカス可能なものを含む)への移動を制限すべきではありません 他にも値のコピーなどの操作もサポートされます。これは無効化(disabled)要素(アプリケーションが子孫へのナビゲーションを許可しない場合がある)と対照的です。

例として:

  • 定数を表すフォーム要素
  • スプレッドシートグリッドの行・列ヘッダー
  • ショッピングカートの合計金額といった計算結果
特徴:
特性
関連概念:
適用ロール:
継承ロール:
値: true/false
値:
説明
false(デフォルト) ユーザーは要素の値を設定(編集)できます。
true ユーザーは要素の値を変更できません。

aria-relevant プロパティ

示す ライブリージョン内の アクセシビリティツリー が変更されたときにユーザーエージェントがトリガーする通知の種類を。関連: aria-atomic.

この属性は、次ののスペース区切りリストとして表されます: additions, removals, text; または単一の包括的な値 all

これは単なる表示上の変更ではなく、意味的に重要な変更を記述するために使用されます。例えば、ログの先頭からノードが削除される場合は、単に他のエントリのための空間を作るために削除されているだけであり、その削除自体に意味はありません。しかし、バディリストの場合、バディ名の削除はそのユーザーがオンラインでなくなったことを示し、これは意味のあるイベントです。その場合、aria-relevantall に設定されます。aria-relevant 属性が提供されていない場合、デフォルト値の additions text はテキストの修正とノードの追加が関連し、ノードの削除は無関係であることを示します。

aria-relevant の値として removalsall を用いることは慎重に行うべきです。支援技術は、削除が重要な変更(例: チャットルームからバディが退出する場合)の意味を持つときにのみコンテンツ削除を通知する必要があります。

テキストの削除は、指定された値のうち 'removals' または 'all' のいずれかが含まれている場合にのみ関連があると見なされるべきです。例えば、デフォルトの aria-relevant 値を持つライブリージョンで 'foo' から 'bar' へのテキスト変更があった場合、テキストの追加('bar')は読み上げられますが、テキストの削除('foo')は読み上げられません。

aria-relevant はライブリージョンのオプション属性です。これは支援技術への提案であり、支援技術がすべての関連タイプの変更を提示することを要求するものではありません。

aria-relevant が定義されていない場合、その要素の値は定義された値を持つ最も近い先祖から継承されます。値はトークンリストですが、継承された値は加算的ではなく、子孫要素に指定された値は先祖要素から継承された値を完全に上書きします。

テキストの変更が関連ありと指定されている場合、ユーザーエージェントはライブリージョンのアクセシブル名および説明の計算(accessible name and description computation)に影響を与える子孫ノードの変更を、アクセシブル名がコンテンツから決定されるかのように監視しなければなりません(nameFrom: contents)。例えば、含まれる画像の HTML の alt 属性が変更された場合にテキスト変更がトリガーされます。ただし、そのノードがライブリージョンの外部にあり、たとえそのノードがライブリージョン内の要素から aria-labelledby によって参照されていたとしても、変更はトリガーされません。

特徴:
特性
適用ロール: すべてのベースマークアップ要素
値: トークンリスト
値:
説明
additions ライブリージョン内のアクセシビリティツリーへ要素が追加される。
additions text(デフォルト) 値「additions text」と同義です。
all 値「additions removals text」と同義。
removals ライブリージョン内のアクセシビリティツリーからテキスト内容・テキスト代替・要素ノードが削除される。
text ライブリージョン内のアクセシビリティツリーの任意の子孫へテキスト内容またはテキスト代替が追加される。

aria-required プロパティ

フォーム送信の前にユーザーの入力が必須であることを示します。

例えば住所入力欄にユーザー入力が必要な場合、作成者はそのフィールドのaria-required属性をtrueにします。

注記

必須要素であることは、しばしば視覚的に示されます(ウィジェットの後ろに記号等)。aria-required 属性を使うと要素が必須であることを支援技術に明示的に伝えられます。

完全に等価なネイティブ属性が提供されていない限り、ホスト言語ではユーザー入力や選択が必須のフォーム要素にaria-required属性を使えるように推奨です。

特徴:
特性
関連概念:
適用ロール:
継承ロール:
値: true/false
値:
説明
false(デフォルト) ユーザー入力はフォーム送信に不要です。
true ユーザーはフォーム送信前に要素へ入力する必要があります。

aria-roledescription プロパティ

定義 要素のroleに対する、人間が読める著者ローカライズされた説明を定義します。

スクリーンリーダーのような一部の支援技術は、要素の役割をユーザー体験の一部として提示します。こうした支援技術は通常、役割名をローカライズし、さらにカスタマイズすることがあります。これらの支援技術の利用者は、要素の目的や、ウィジェットであればどのように操作するかを理解するために、「region」や「button」、「slider」といった役割名の提示に依存しています。

aria-roledescription プロパティは、著者が支援技術による役割名のローカライズや表現方法を上書きする能力を与えます。そのため、aria-roledescription を不適切に使用すると、ユーザーが要素を理解したり操作したりする能力を阻害する可能性があります。著者は SHOULDaria-roledescription の使用を、groupregion のような非対話型コンテナロールの目的を明確にする場合や、widget のより具体的な説明を提供する場合に限定するべきです。

aria-roledescription を使用する際、著者は SHOULD 次の点も確認する必要があります:

  1. aria-roledescription が適用される要素に有効な WAI-ARIA ロールがあるか、あるいは暗黙の WAI-ARIA ロール意味論があること。
  2. aria-roledescription の値が未定義や空文字列でないこと、または空白文字のみで構成されていないこと。

支援技術、ユーザーの冗長性設定、その他の要因によっては、特定の要素のロール記述が伝えられない場合があります。そのような要素に aria-roledescription を指定した場合、カスタムのロール記述もこれらの支援技術によって伝えられない可能性があります。

さらに、著者は MUST NOTaria-roledescription を、明示的または暗黙的な WAI-ARIA ロールに対して aria-roledescription禁止 されている要素に指定してはなりません。

ユーザーエージェントは、以下のいずれかの条件が存在する場合、MUST NOT aria-roledescription プロパティを公開してはなりません:

  1. aria-roledescription が適用される要素が、aria-roledescription禁止 されている明示的または暗黙的な WAI-ARIA ロールを持つ場合。
  2. aria-roledescription の値が未定義または空文字列である場合。

支援技術 は、要素の役割を提示する際に aria-roledescription の値を SHOULD 使用すべきですが、aria-roledescription の値を持つ要素の役割に基づいて他の機能を変更してはなりません(SHOULD NOT)。例えば、次のような機能を提供する支援技術は、SHOULD aria-roledescription を持つ region や button へ移動するためのナビゲーションをそのまま許可すべきです。

以下の2つの例は、非対話型コンテナがウェブベースのプレゼンテーションアプリケーション内の「slide」であることを示すために aria-roledescription を使用する方法を示しています。

<div role="article" aria-roledescription="slide" id="slide" aria-labelledby="slideheading">
<h1 id="slideheading">Quarterly Report</h1>
<!-- remaining slide contents -->
</div>
<article aria-roledescription="slide" id="slide" aria-labelledby="slideheading">
<h1 id="slideheading">Quarterly Report</h1>
<!-- remaining slide contents -->
</article>

前の例では、スクリーンリーダーの利用者は漠然とした "Quarterly Report, article" や "Quarterly Report, group" ではなく、"Quarterly Report, slide" と聞くかもしれません。

特徴:
特性
適用ロール: 以下以外のすべてのベースマークアップ要素:generic
値: string

aria-rowcount プロパティ

定義する tablegrid、またはtreegridの総行数を。関連: aria-rowindex

すべての行がDOM内に存在する場合、ユーザーエージェントが総行数を自動的に計算できるため、この属性を設定する必要はありません。しかし、ある時点で行の一部のみがDOM内に存在する場合は、テーブル全体の行数を明示的に示すためにこの属性が必要です。

著者は、aria-rowcount の値を、テーブル全体の行数と等しい整数に設定しなければなりません(MUST)。総行数が不明な場合、著者はユーザーエージェントによる計算が行われないことを示すために、aria-rowcount の値を -1 に設定しなければなりません(MUST)。

次の例は、2000 行のグリッドを示しており、そのうち最初の行と 100 行目から 102 行目がユーザーに表示されます。

<div role="grid" aria-rowcount="2000">
  <div role="rowgroup">
    <div role="row" aria-rowindex="1">
      <span role="columnheader">First Name</span>
      <span role="columnheader">Last Name</span>
      <span role="columnheader">Company</span>
      <span role="columnheader">Phone</span>
    </div>
  </div>
  <div role="rowgroup">
    <div role="row" aria-rowindex="100">
      <span role="gridcell">Fred</span>
      <span role="gridcell">Jackson</span>
      <span role="gridcell">Acme, Inc.</span>
      <span role="gridcell">555-1234</span>
    </div>
    <div role="row" aria-rowindex="101">
      <span role="gridcell">Sara</span>
      <span role="gridcell">James</span>
      <span role="gridcell">Acme, Inc.</span>
      <span role="gridcell">555-1235</span>
    </div>
    <div role="row" aria-rowindex="102">
      <span role="gridcell">Taylor</span>
      <span role="gridcell">Johnson</span>
      <span role="gridcell">Acme, Inc.</span>
      <span role="gridcell">555-1236</span>
    </div>
  </div>
</div>
特徴:
特性
適用ロール:
継承ロール:
値: integer

aria-rowindex プロパティ

定義する 要素のtablegrid、またはtreegrid内の総行数に対する行のインデックスまたは位置を。関連: aria-rowindextextaria-rowcount、および aria-rowspan

すべての行が DOM に存在する場合、この属性を設定する必要はありません。ユーザーエージェントが各行のインデックスを自動的に計算できるためです。しかし、ある時点で行の一部しか DOM に存在しない場合は、テーブル全体に対する各行の位置を明示するためにこの属性が必要になります。

著者は MUSTaria-rowindexを 1 以上の整数に設定し、前の行の aria-rowindex 値より大きく、かつテーブル全体の行数以下にしなければなりません。複数行にまたがるセルまたは gridcell の場合、著者は MUSTaria-rowindex の値をスパンの開始位置に設定しなければなりません。

著者は SHOULD 各行に aria-rowindex を配置すべきです。著者はまた、各行のすべての accessibility children にも aria-rowindex を配置してよい (MAY)。

次の例は、2000 行のグリッドを示しており、そのうち最初の行と 100 行目から 102 行目がユーザーに表示されます。

<div role="grid" aria-rowcount="2000">
  <div role="rowgroup">
    <div role="row" aria-rowindex="1">
      <span role="columnheader">First Name</span>
      <span role="columnheader">Last Name</span>
      <span role="columnheader">Company</span>
      <span role="columnheader">Phone</span>
    </div>
  </div>
  <div role="rowgroup">
    <div role="row" aria-rowindex="100">
      <span role="gridcell">Fred</span>
      <span role="gridcell">Jackson</span>
      <span role="gridcell">Acme, Inc.</span>
      <span role="gridcell">555-1234</span>
    </div>
    <div role="row" aria-rowindex="101">
      <span role="gridcell">Sara</span>
      <span role="gridcell">James</span>
      <span role="gridcell">Acme, Inc.</span>
      <span role="gridcell">555-1235</span>
    </div>
    <div role="row" aria-rowindex="102">
      <span role="gridcell">Taylor</span>
      <span role="gridcell">Johnson</span>
      <span role="gridcell">Acme, Inc.</span>
      <span role="gridcell">555-1236</span>
    </div>
  </div>
</div>

次の例は、上記例のグリッドに各行のすべてのアクセシビリティ子にもaria-rowindexを指定しています。

<div role="grid" aria-rowcount="2000">
  <div role="rowgroup">
    <div role="row" aria-rowindex="1">
      <span role="columnheader" aria-rowindex="1">First Name</span>
      <span role="columnheader" aria-rowindex="1">Last Name</span>
      <span role="columnheader" aria-rowindex="1">Company</span>
      <span role="columnheader" aria-rowindex="1">Phone</span>
    </div>
  </div>
  <div role="rowgroup">
    <div role="row" aria-rowindex="100">
      <span role="gridcell" aria-rowindex="100">Fred</span>
      <span role="gridcell" aria-rowindex="100">Jackson</span>
      <span role="gridcell" aria-rowindex="100">Acme, Inc.</span>
      <span role="gridcell" aria-rowindex="100">555-1234</span>
    </div>
    <div role="row" aria-rowindex="101">
      <span role="gridcell" aria-rowindex="101">Sara</span>
      <span role="gridcell" aria-rowindex="101">James</span>
      <span role="gridcell" aria-rowindex="101">Acme, Inc.</span>
      <span role="gridcell" aria-rowindex="101">555-1235</span>
    </div>
    <div role="row" aria-rowindex="102">
      <span role="gridcell" aria-rowindex="102">Taylor</span>
      <span role="gridcell" aria-rowindex="102">Johnson</span>
      <span role="gridcell" aria-rowindex="102">Acme, Inc.</span>
      <span role="gridcell" aria-rowindex="102">555-1236</span>
    </div>
  </div>
</div>
特徴:
特性
適用ロール:
継承ロール:
値: integer

aria-rowindextext プロパティ

定義する aria-rowindex の人間が読めるテキスト代替を。関連: aria-colindextext

著者は SHOULD、提供されるまたは計算された aria-rowindex の値が意味をなさないか表示されているインデックスを反映しない場合(例: Battleship のようなゲーム)にのみ aria-rowindextext を使用するべきです。

著者は SHOULD NOTaria-rowindex の代替として aria-rowindextext を使用してはなりません。なぜなら一部の支援技術はユーザーの位置を追跡したり代替のテーブルナビゲーションを提供したりするために数値の行インデックスに依存しているからです。

著者は SHOULD 各行に aria-rowindextext を配置すべきです。著者は MAY、各行のすべての アクセシビリティ子要素 にも aria-rowindextext を配置してよいです。

特徴:
特性
使用できるロール:
継承ロール:
値: string

aria-rowspan プロパティ

定義する tablegrid、またはtreegrid内のセルまたはgridcellが跨る行数を。

この属性は、ネイティブな表に含まれないセルやgridcellを対象としています。ネイティブな表でセルやgridcellの行結合(row span)を定義する場合、著者はホスト言語の属性を SHOULD 使用し、aria-rowspan を用いるべきではありません。もしホスト言語が同等の属性を提供する要素に対して aria-rowspan が使用された場合、ユーザーエージェントMUST aria-rowspan の値を無視し、代わりにホスト言語の属性の値を 支援技術 に公開しなければなりません。

著者は MUSTaria-rowspanを 0 以上の整数に設定し、同じ列にある次のセルまたはgridcellと重なってしまう値より小さくしなければなりません。値を 0 に設定すると、そのセルまたはgridcell が行グループ内の残りのすべての行に跨ることを示します。

特徴:
特性
使用できるロール:
継承ロール:
値: integer

aria-selected 状態

示す 様々な ウィジェット の現在の「選択」状態 を示します。関連: aria-checkedaria-pressed

この 属性 は、単一選択および複数選択の composite ウィジェット内でどの要素が選択されているかを示すために使用されます。

optiontab、 および treeitem ロールは、指定された条件が満たされた場合にユーザーエージェントが aria-selected の暗黙的な値を提供できるようにします。ユーザーエージェントはその他の状況で aria-selected に対して暗黙的な値を提供してはなりません(MUST NOT)。

特徴:
特性
使用できるロール:
継承ロール:
値: true/false/undefined
値:
説明
false 選択可能な要素が選択されていません。
true 選択可能な要素が選択されています。
undefined(デフォルト) 要素は選択可能ではありません。

aria-setsize プロパティ

現在のリストアイテムまたはツリーアイテム集合のアイテム総数を定義します。すべての要素がDOM上に存在する場合は不要です。関連項目:aria-posinset

このプロパティはセットの各メンバー要素に付け、コンテナ要素(親)には付けません。「アイテムX/Y」の情報を支援技術が案内する場合、Xはaria-posinset、Yはaria-setsize値です。

集合内で現在要素までの全要素が文書構造上に存在する場合、本属性は不要です。ユーザーエージェントが順序を自動計算できます。もし途中に存在しないアイテムがある場合、著者は構成要素の位置情報として必ずこの属性を設定してください。

aria-setsize指定時は、セット総数に等しい整数を必ず値にしてください。総数が不明な場合は値-1推奨します。

aria-setsizemenuitemmenuitemcheckboxmenuitemradioに使う場合、区切り要素(separator)は含めずメニュー全体の要素数に従い推奨で値を指定してください。

次の例は、全16個のうち5〜8番目を示します。

<h2 id="label_fruit"> Available Fruit </h2>
<ul role="listbox" aria-labelledby="label_fruit">
  <li role="option" aria-setsize="16" aria-posinset="5"> apples </li>
  <li role="option" aria-setsize="16" aria-posinset="6"> bananas </li>
  <li role="option" aria-setsize="16" aria-posinset="7"> cantaloupes </li>
  <li role="option" aria-setsize="16" aria-posinset="8"> dates </li>
</ul>

次の例は、総数不明な集合のうち5〜8番目を示します。

<h2 id="label_fruit"> Available Fruit </h2>
<ul role="listbox" aria-labelledby="label_fruit">
  <li role="option" aria-setsize="-1" aria-posinset="5"> apples </li>
  <li role="option" aria-setsize="-1" aria-posinset="6"> bananas </li>
  <li role="option" aria-setsize="-1" aria-posinset="7"> cantaloupes </li>
  <li role="option" aria-setsize="-1" aria-posinset="8"> dates </li>
</ul>
特徴:
特性
使用できるロール:
継承ロール:
値: integer

aria-sort プロパティ

テーブルやグリッドの項目が昇順または降順でソートされているかどうかを示します。

作成者はこのプロパティをテーブル見出しまたはグリッド見出しのみに推奨で指定してください。未指定時は並び順は定義されません。各テーブル・グリッドにつき一度に1つの見出しのみaria-sortを付与する推奨です。

特徴:
特性
使用できるロール:
値: トークン
値:
説明
ascending 項目が昇順でソートされています。
descending 項目が降順でソートされています。
none(デフォルト) 定義済みのソートはありません。
other 昇順・降順以外のソートアルゴリズムが適用されています。

aria-valuemax プロパティ

範囲ウィジェットの最大許容値を定義します。

作成者は必ずaria-valuemaxの値がaria-valuemin以上になるようにしてください。aria-valuenowの最大・最小値が既知のときは推奨aria-valuemaxおよびaria-valueminも指定してください。

注記

範囲ウィジェットはある値から始まり、最大値(このプロパティで定義)まで増やせます。最小・最大値を宣言すると、支援技術がユーザーに範囲サイズを伝えられます。

特徴:
特性
関連概念:
使用できるロール:
継承ロール:
値: number

aria-valuemin プロパティ

範囲ウィジェットの最小許容値を定義します。

作成者は必ずaria-valueminの値がaria-valuemax以下になるようにしてください。aria-valuenowの最大・最小値が既知のときは推奨aria-valuemaxおよびaria-valueminも指定してください。

注記

範囲ウィジェットはある値から始まり、最小値(このプロパティで定義)まで減らせます。最小・最大値を宣言すると、支援技術がユーザーに範囲サイズを伝えられます。

特徴:
特性
関連概念:
使用できるロール:
継承ロール:
値: number

aria-valuenow プロパティ

範囲ウィジェットの現在値を定義します。 関連項目:aria-valuetext

このプロパティはスライダーやプログレスバーなどの範囲ウィジェットで使われます。

現在値が不明(例:不確定なプログレスバー)な場合、著者はaria-valuenow属性を指定しないでください。属性がなければ、値に関する情報は何も示されません。最大・最小値が既知なら推奨aria-valuemaxaria-valueminも指定してください。

aria-valuenowの値は10進数です。範囲が数値セットの場合、その数値が有効値です。例:範囲が[0, 1]なら0.5が有効、-2.5や1.1は無効です。

progressbarscrollbar要素では、支援技術は値をパーセント(最小~最大間での割合。両方未設定時は実値+%)で推奨で伝えます。sliderspinbuttonは実際の値で伝える推奨です。

表示値を数値で適切に表せない場合は推奨aria-valuetextも併用し、ユーザーに親しみやすい値としてください。例:スライダーで表示値がsmallmediumlargeの場合、aria-valuetext値は「small」「medium」「large」のいずれかになります。

注記

aria-valuetextが指定されている場合、支援技術はaria-valuenowよりそちらの値を読み上げます。

特徴:
特性
関連概念:
使用できるロール:
継承ロール:
値: number

aria-valuetext プロパティ

定義する 範囲のウィジェットにおける aria-valuenow の人間が読めるテキスト代替。

このプロパティは、例えばスライダーやプログレスバーのような範囲ウィジェットで使用されます。

もし aria-valuetext 属性が設定されている場合、著者はその値が不明でない限り(例えば、不定の progressbar の場合)SHOULD aria-valuenow 属性も設定すべきです。

著者は、レンダリングされた値が数値として有意義に表現できない場合にのみ SHOULD aria-valuetext 属性を設定するべきです。例えば、スライダーがレンダリング上で smallmedium、および large の値を持つことがあります。この場合、aria-valuenow の値は 1 から 3 の範囲になり得て、各値が値空間内で占める位置を示しますが、aria-valuetext は文字列のいずれか(smallmedium、または large)になります。もし aria-valuetext 属性が存在しない場合、assistive technologies は現在の値について aria-valuenow 属性のみに依存します。

もし aria-valuetext が指定されている場合、支援技術は SHOULD その値を aria-valuenow の値の代わりにレンダリングするべきです。

特徴:
特性
使用できるロール:
継承ロール:
値: string

7. アクセシビリティツリー

アクセシビリティツリーDOMツリーは並列構造です。アクセシビリティツリーにはユーザーエージェントのユーザーインターフェースオブジェクトと、文書内のオブジェクトが含まれます。アクセシブルオブジェクトは、DOMの各要素のうち、支援技術に公開すべき要素(アクセシビリティイベントを発火する可能性がある、あるいは公開すべきプロパティ関係・機能がある場合)ごとにアクセシビリティツリー内に生成されます。

7.1 アクセシビリティツリーから要素を除外する

以下の要素アクセシビリティAPI に公開されず、ユーザーエージェントは決してアクセシビリティツリーに含めてはいけません:

上記ルールですでに除外されていない場合でも、ユーザーエージェントは以下の要素をできる限りアクセシビリティツリーに含めるべきではありません:

7.2 アクセシビリティツリーに要素を含める

上記除外ルールで除外されていない場合、ユーザーエージェントは、下記のいずれかを満たすDOM要素について、アクセシブルオブジェクトアクセシビリティツリー必ず提供しなければなりません:

7.3 アクセシビリティツリー内の関係

以下の用語はDOM要素間の関係を表現するために使われます。

アクセシビリティ子は、DOM要素に対応するアクセシブルオブジェクトアクセシビリティツリー内の全ての子要素です。DOM観点で見ると、(下記除外をのぞき)次のものが含まれます:

下記は除外されます:

次の例では、list要素には4つのアクセシビリティ子がいます:

<div role="list" aria-owns="child3 child4">
  <div role="listitem">アクセシビリティ子 1</div>
  <div>
    <div role="listitem">アクセシビリティ子 2</div>
  </div>
</div>
<div id="child3" role="listitem">アクセシビリティ子 3</div>
<div id="child4">
  <div role="listitem">アクセシビリティ子 4</div>
</div>

次の例では、最初のlist要素にはアクセシビリティ子がなく、2つ目のlist要素にはID値 "reparented" のlistitemが1つアクセシビリティ子となります。

<div role="list">
  <div role="listitem" aria-hidden="true">除外された要素</div>
  <div role="listitem" id="reparented">親変更済み要素</div>
</div>
<div role="list" aria-owns="reparented"></div>

アクセシビリティ子孫は、DOM要素に対応するアクセシブルオブジェクトアクセシビリティツリーに持つすべての子孫に該当するDOM要素です。

アクセシビリティ親は、DOM要素に対応するアクセシブルオブジェクトの親であり、DOM観点では次のいずれかとなります:

次の4例は、いずれもlistitem要素のアクセシビリティ親がlistとなるケースです:

<div role="list">
  <div role="listitem">この「list」が私のアクセシビリティ親です。</div>
</div>
<div role="list">
  <div>
    <div role="listitem">この「list」が私のアクセシビリティ親です。</div>
  </div>
</div>
<div role="list" aria-owns="child"></div>
<div id="child" role="listitem">この「list」が私のアクセシビリティ親です。</div>
<div role="list" aria-owns="child"></div>
<div id="child">
  <div role="listitem">この「list」が私のアクセシビリティ親です。</div>
</div>

8. ホスト言語への実装

この仕様で定義されたロール状態、およびプロパティは完全なウェブ言語やフォーマットを構成するものではありません。これらはホスト言語の文脈で利用されることを目的としています。本節では、ホスト言語がWAI-ARIAをどのように実装すべきかを示し、ここで規定されたマークアップがホスト言語のマークアップと円滑かつ効果的に統合できるようにします。

マークアップ言語は見た目が似ていても、言語定義の基盤は共有していません。言語構築手法の違いに対応するため、要件は一般的かつモジュール化可能としてあります。仕様の書き方の違いを許容しつつ、著者目線でのWAI-ARIA情報の一貫性と、スクリプトによるDOMでの操作一貫性が保たれることを意図しています。

WAI-ARIAのロール・状態・プロパティは、属性として要素で実装されます。ロールはホスト言語のrole属性値のトークンのひとつにロール名を記述します。状態・プロパティはそれぞれ自身の属性で定義され、本仕様で定められた各状態・プロパティごとの値を持ちます。属性名はaria接頭語付きの状態・プロパティ名です。

8.1 role属性

実装するホスト言語は role 属性について、以下の特徴を持たせます:

8.2 状態属性およびプロパティ属性

実装するホスト言語は属性について以下の特徴を必須で許容しなければなりません:

XML Namespaces [XML-NAMES] をサポートするホスト言語は、WAI-ARIA属性で名前空間利用を許可してもよい。この場合、状態・プロパティ属性の名前空間としてhttp://www.w3.org/ns/wai-aria/必須とします。ホスト言語が明示的にサポートを表明していなくても、その言語が名前空間をサポートしユーザーエージェントがWAI-ARIA名前空間認識が期待されるなら、著者はこの名前空間の使用を推奨です。接頭辞は仕様では定めませんが一般的には"aria"です。

注記

WAI-ARIA状態・プロパティ属性は全て"aria-"から始まる命名規則です。これは名前空間プレフィックスではなく、属性名そのものの一部である点に注意してください。したがって名前空間付きで利用する場合は"aria:aria-foo"のようになります。

一部ホスト言語ではWAI-ARIA状態・プロパティ属性で名前空間を使いません。これはホスト言語が名前空間を持たないか、WAI-ARIAをコア機能に組み込む設計だからです。こうしたケースでは名前空間名値なし(プレフィックスなし)が使われます。このとき属性名にコロンはつきません。DOMのgetAttributeNSのECMAScriptバインディングでは空文字("")がこのケースで、getAttribute("aria-busy")getAttributeNS("", "aria-busy")DOM上の同じaria-busy属性にアクセスできます。

注記

本節の要件によると、一部ユーザーエージェントは名前空間ありのWAI-ARIA状態・プロパティ属性を認識し、他は名前空間なし、または両方サポートする可能性があります。著者は自分が使うホスト言語にどの形が対応しているか確認してください。ホスト言語やユーザーエージェントが明示的に名前空間を要求していない限り、名前空間なし属性の利用を推奨します。ユーザーエージェントが名前空間をサポートしていても、名前空間付きでWAI-ARIA状態・プロパティをアクセシビリティAPIに公開しないことが一般的です。特に現在のHTMLやXHTMLではこの名前空間はサポートされていません。

8.3 フォーカスナビゲーション

実装するホスト言語は、すべてのインタラクティブ要素(描画可能またはイベント取得可能な要素)をフォーカス可能とする機能を必須で提供しなければなりません。また、これらをデフォルトのタブ移動順序に含めるか否かをウェブ著者が定義できる仕組みも必須です。HTMLのtabindex属性はその一例です。

8.4 暗黙のWAI-ARIAセマンティクス

WAI-ARIAは、ホスト言語がオブジェクトのネイティブセマンティクスを欠いている場合にセマンティクス情報を与えるために設計されました。ただし多くのホスト言語で追加セマンティクスとしても使えます。またホスト言語は進化して将来WAI-ARIAと対応する新たなネイティブ機能を持つ場合もあります。このため、WAI-ARIAのセマンティクスがホスト言語セマンティクスと重複する状況が多々あります。

ホスト言語のこうした機能は「暗黙のWAI-ARIAセマンティクス」を持つとみなされます。該当機能のユーザーエージェント処理はWAI-ARIA該当機能と類似しますが、字義上の違いなどから完全一致でないこともあります。ただし概ねアクセシビリティAPIへの公開情報は同一です。暗黙のWAI-ARIAセマンティクスを持つものは、必要な親ロール・子ロールや必須状態・プロパティなどWAI-ARIAの構造要件を満たし、明示的なWAI-ARIAセマンティクス指定は不要になります。また、暗黙ロール要素上では対応ロールがサポートするWAI-ARIA状態・プロパティを明示的なロール指定なしで利用できます。

たとえば既存機能(チェックボックスやラジオボタンなど)があれば、ホスト言語のネイティブセマンティクスを利用してください。WAI-ARIAマークアップはネイティブセマンティクスを強化する(例:aria-requiredで必須を示す)用途や標準機能意図以外の意味を与える場合のみ使います。

暗黙のWAI-ARIAセマンティクスは次節「ホスト言語セマンティクスとの衝突」に記載の解決手順に影響します。そのため暗黙WAI-ARIAセマンティクスは、ホスト言語仕様やCore Accessibility API Mappingsなどの規範的仕様で定義する必要があります。

8.5 ホスト言語セマンティクスとの衝突

WAI-ARIAのロール・状態・プロパティは、これらのセマンティクスを持つネイティブホスト言語要素が存在しない場合に意味付け情報を付加するために設計されており、基本的には本来ネイティブの意味(セマンティクス)を持たない要素に使います。ただし、類似だが同一でないセマンティクス要素(例:ネストリストでツリー表現など)にも使えます。これは古いブラウザーにWAI-ARIA未対応の場合のフォールバックや、既存要素の活用によるスタイル・スクリプト削減効果狙いでもあります。下記例外を除き、ユーザーエージェントは常にWAI-ARIAセマンティクスでアクセシビリティAPI公開値を定める必要があり、ホスト言語セマンティクスでは公開しません。

通常のケースでWAI-ARIAが上書きしてよいとされる以外にも、WAI-ARIA上書きが不適切なケースがあります。例えば同一ホスト言語セマンティクスが既に存在しWAI-ARIA不要な場合や、WAI-ARIAセマンティクスがホスト言語と直接衝突する場合です。ホスト言語で同一ロールの意味と値を持つ機能があるなら、著者はWAI-ARIAによる上書きではなく、ホスト言語機能を使う推奨です。

ホスト言語はロールに対応する暗黙WAI-ARIAセマンティクスを持つ機能を有することがあります。WAI-ARIAロールが指定されたときは、ユーザーエージェントは必ずWAI-ARIAロールの意味を使い、ネイティブセマンティクスではなく処理します。ただしネイティブ要素でWAI-ARIA属性が明示的に禁止されている場合を除きます。ロールの値自体は状態・プロパティ値のような競合とは異なり、著者に妥当な理由があれば標準使いではない要素にもWAI-ARIAロールを付与できます。

WAI-ARIA状態・プロパティがホスト言語の同じ暗黙WAI-ARIAセマンティクスに対応する機能と競合する場合は特に注意が必要です。WAI-ARIA機能・ホスト言語機能双方を指定し値の同期を怠ると、ユーザーエージェントや支援技術側がどちらの値を使うかわからなくなります。したがって競合回避のため、必ずホスト言語ではどの要素でWAI-ARIA属性指定が当該ネイティブ機能と衝突するか明記しなければなりません。直接衝突するWAI-ARIA属性が指定された場合、ユーザーエージェントは必ずWAI-ARIA属性は無視し、同じ意味のホスト言語機能を使います。

ホスト言語はWAI-ARIAで上書きできない(「強いネイティブセマンティクス」)機能も文書化可能です。暗黙WAI-ARIAセマンティクス機能や、WAI-ARIAでセマンティクス変更すると処理が不明瞭になるものなどが該当します。こうした要素にWAI-ARIAロールを使うと、バリデータはエラーや警告を許可しますが、前述の通りユーザーエージェントは必ずAPI公開時はWAI-ARIAロールの値を使うべきです(ネイティブのセマンティクスが永続的にpresentation指定されている場合を除く)。

ホスト言語によるWAI-ARIAオーバーライド例外は、著者ミスやホスト言語機能固有の処理問題の回避を目的としています。例えば類似だが非同一機能がある場合、両属性指定がアクセスAPI上どう影響するか曖昧になる危険があります。こうした場合はホスト言語側でARIAの利用を制限する意味がありますが、単に「使わせない」ため個別に禁止を連打するのは不適切です。本当に必要な時だけ制限すべきです。

以下のARIA属性は完全なアクセシビリティモデル構築に必須であり、ネイティブセマンティクスで禁止されることは禁止です:

8.6 状態属性・プロパティ属性の処理

状態・プロパティ属性はホスト言語に組み込まれるため、その値型の構文はホスト言語仕様に基づきます。で定義された各値型に対し、ホスト言語の対応する値型が使われます。WAI-ARIA値型と各種言語値型の対応は値型対応表に非規範的一覧があります。これは新規ホスト言語での対応を考慮した非規範的情報です。

ID参照リスト・トークンリストといったリスト値型は、値を複数与えられます。区切り文字にはホスト言語でリスト属性向けに認識される文字(空白・カンマなど)を使います。言語によっては1種のみ、あるいは複数の区切り記号を許容します。

グローバルな状態・プロパティはホスト言語内の任意要素で利用可能です。ただし非グローバル属性は、それをサポートするロールが付いた要素(明示的なWAI-ARIAロール、またはホスト言語の暗黙WAI-ARIAセマンティクスで対応するロール)のみ必須で利用してください。ロール属性を付与すると、その要素のセマンティクス・挙動(対応WAI-ARIA属性含む)はロール由来で上書き・拡張されます。ユーザーエージェントは、対応ロールなし要素上の非グローバル状態・プロパティは必ず無視してください。例としてaria-valuetext属性はprogressbarで使えます。

WAI-ARIAロールには「サポート」あるいは「必須」として定義された状態・プロパティがあります。例:comboboxロールでサポートされるプロパティはaria-autocompleteです(オートコンプリート未実装のcomboboxがあり得るため)。一方comboboxロールは、展開可能性を示すaria-expanded状態を必須で持ちます。comboboxは外部にlistbox等のポップアップ要素を制御し、それが開いている場合は展開状態、閉じていれば折りたたみ状態です。

WAI-ARIAロールを利用する場合、サポート属性はDOMに未記載なら既定値として扱われます。combobox例ではaria-autocomplete属性がなければaria-autocomplete="none"として扱われ、オートコンプリートなしの意味となります。

ただし必須の属性が欠落していればマークアップエラーであり、処理は著者エラーの処理に従います。

暗黙WAI-ARIAセマンティクスを持つ要素は、そのロールでサポートされる全状態・プロパティが原則利用可能です(ロール指定を省略可)。ロール指定が必要なのは暗黙ロールから異なるロールを与えたい場合のみです。

DOMに属性があっても値が空文字列("")の場合があります。サポート(必須でない)属性なら空文字列指定も許可です。ユーザーエージェントは""値のサポート属性を未指定と同じ扱い推奨です。これはデフォルト値扱いですが、必須属性なら著者エラーとなり著者エラーの処理に従います。

8.6.1 ID参照エラー処理

ユーザーエージェントは、同一文書内に一致するID要素が存在しないID参照を無視してもよいです。

IDは著者が一意であることを担保します。重複IDがある場合、ユーザーエージェントは先頭一致要素を採用してもよいです(getElementById相当動作)。

1つのWAI-ARIAリレーションで同一要素が複数回参照される場合、ユーザーエージェントは同一要素への複数ポインタを返してもよいです。

aria-activedescendantは単一ID参照のみ可と定義されています。該当IDが1つも存在しない場合は著者エラーとなりDOM中に一致要素は見つかりません。

8.7 CSS セレクタ

注記

この節は将来の版で削除される可能性があります。

属性セレクタの対応状況は、WAI-ARIA 属性も必須で含めなければなりません。例:.fooMenuItem[aria-haspopup="true"]は、クラスfooMenuItemかつWAI-ARIA プロパティaria-haspopuptrueな全要素を選択します。WAI-ARIA属性の動的変化にも必須で対応し、それに合わせて表示も更新されなければなりません。これにより、著者がWAI-ARIAセマンティクスに合わせたスタイル指定が可能となります。

9. 著者エラーの取り扱い

9.1 ロール

ユーザーエージェントはWAI-ARIAロールの検証を行うことが想定されています。

ロール定義節に記載のとおり、抽象ロールをコンテンツで使用することは著述エラーとなります。ユーザーエージェントは、アクセシビリティAPIの標準ロール機構を使って抽象ロールをマッピングしてはなりません

role属性に非抽象WAI-ARIAロール名に一致するトークンが含まれない場合、ユーザーエージェントは必ずその要素はロールが指定されていないものとして扱います。例えば<table role="foo"><table>と同じように、<input type="text" role="structure"><input type="text">と同じように公開する必要があります。

一部のランドマークロールは著者による名前指定が必須です。これらランドマークへの名前指定が省略された場合は著述エラーと見做され、ユーザーエージェントは必ずロールが指定されていないかのように扱います。フォールバックロールが指定されている場合や暗黙ARIAロールがある場合はそちらを公開します。該当ロール例:

9.2 状態とプロパティ

一般的に、ユーザーエージェントWAI-ARIAプロパティの検証はほとんど行いません。ユーザーエージェントは要請があれば多少の検証のみ認められ、例えばaria-posinsetの値が1からaria-setsizeの範囲内かの強制など。以下のような論理的検証には責任を負いません:

  1. リレーションによる循環参照(例:2つの要素が相互に所有しているとする関係を記述)
  2. DOM構造としての正しい使用(例:ある要素が複数の他要素により所有されているなど)
  3. WAI-ARIAロールが正しく振る舞いを実装しているかの確認。例えばroleがcheckboxでも、実際にチェックボックスとして機能するかまでは確認しません。
  4. 必要な子/親ロール関係を守らない要素や、必須親要素以外に登場する要素。
  5. aria-activedescendantが本当にコンテナウィジェットのアクセシビリティ子孫を指しているかの検証。
  6. aria-setsizearia-posinsetがセット内全要素ではなく一部要素だけに指定された場合の暗黙値判定。

十進数または整数値型の属性に数値でない値が指定された場合、ユーザーエージェントは推奨で次のように処理します:

WAI-ARIAプロパティが未知または禁止値の場合、ユーザーエージェントはプラットフォームアクセシビリティAPIに次のように公開推奨です:

注記

UIA(User Interface Automation)ではユーザーエージェントが該当プロパティを"unsupported"と残す場合があります。

ユーザーエージェントはWAI-ARIAで未解決IDを参照する属性を公開してはなりません。例:

ロールに必須のWAI-ARIA属性が欠落している場合、ユーザーエージェントは下記表の値が指定されたとみなして処理推奨です。

必須属性未指定時のフォールバック値
WAI-ARIAロール 必須属性 フォールバック値
checkbox aria-checked false
combobox aria-controls no mapping
combobox aria-expanded false
heading aria-level 2
menuitemcheckbox aria-checked false
menuitemradio aria-checked false
radio aria-checked false
scrollbar aria-controls no mapping
scrollbar aria-valuenow 未指定またはnumberでない場合は(aria-valuemax - aria-valuemin) / 2aria-valuemin未満ならaria-valueminaria-valuemaxを超えたらaria-valuemax
separator(フォーカス可の場合) aria-valuenow 未指定またはnumberでない場合は(aria-valuemax - aria-valuemin) / 2aria-valuemin未満ならaria-valueminaria-valuemaxを超えたらaria-valuemax
slider aria-valuenow 未指定またはnumberでない場合は(aria-valuemax - aria-valuemin) / 2aria-valuemin未満ならaria-valueminaria-valuemaxを超えたらaria-valuemax
switch aria-checked false
meter aria-valuenow 暗黙値、もしくは明示指定されたaria-valueminと同じ値。
注記

非必須状態・プロパティの暗黙値は各ロールの特徴表に記載があります。これらはフォールバック値ではないためここには載っていません。

9.3 プレゼンテーションロール競合解決

プレゼンテーションロールの競合解決方法はいくつかあります。

ユーザーエージェントは、明示的または継承されたプレゼンテーションロールが付与された要素について、次の例外を除き、アクセシビリティツリーに公開してはなりません

例えばaria-describedbyはグローバル属性であり常に反映されます。aria-levelは非グローバル属性なので要素がプレゼンテーション状態でなければのみ反映されます。

<!-- 1. [role="none"]はグローバルaria-describedbyにより無視される -->
<h1 role="none" aria-describedby="comment-1"> サンプルコンテンツ </h1>
<!-- 2. [role="none"]は暗黙の'heading'も非グローバルaria-levelもともに無効化する -->
<h1 role="none" aria-level="2"> サンプルコンテンツ </h1>

10. IDLインターフェース

適合するユーザーエージェントは、以下のIDLインターフェースを必ず実装しなければなりません。

10.1 インターフェースミックスイン ARIAMixin

WebIDLinterface mixin ARIAMixin {
	[CEReactions] attribute DOMString? role;
	[CEReactions] attribute Element? ariaActiveDescendantElement;
	[CEReactions] attribute DOMString? ariaAtomic;
	[CEReactions] attribute DOMString? ariaAutoComplete;
	[CEReactions] attribute DOMString? ariaBusy;
	[CEReactions] attribute DOMString? ariaChecked;
	[CEReactions] attribute DOMString? ariaColCount;
	[CEReactions] attribute DOMString? ariaColIndex;
	[CEReactions] attribute DOMString? ariaColIndexText;
	[CEReactions] attribute DOMString? ariaColSpan;
	[CEReactions] attribute FrozenArray<Element>? ariaControlsElements;
	[CEReactions] attribute DOMString? ariaCurrent;
	[CEReactions] attribute FrozenArray<Element>? ariaDescribedByElements;
	[CEReactions] attribute DOMString? ariaDescription;
	[CEReactions] attribute FrozenArray<Element>? ariaDetailsElements;
	[CEReactions] attribute DOMString? ariaDisabled;
	[CEReactions] attribute FrozenArray<Element>? ariaErrorMessageElements;
	[CEReactions] attribute DOMString? ariaExpanded;
	[CEReactions] attribute FrozenArray<Element>? ariaFlowToElements;
	[CEReactions] attribute DOMString? ariaHasPopup;
	[CEReactions] attribute DOMString? ariaHidden;
	[CEReactions] attribute DOMString? ariaInvalid;
	[CEReactions] attribute DOMString? ariaKeyShortcuts;
	[CEReactions] attribute DOMString? ariaLabel;
	[CEReactions] attribute FrozenArray<Element>? ariaLabelledByElements;
	[CEReactions] attribute DOMString? ariaLevel;
	[CEReactions] attribute DOMString? ariaLive;
	[CEReactions] attribute DOMString? ariaModal;
	[CEReactions] attribute DOMString? ariaMultiLine;
	[CEReactions] attribute DOMString? ariaMultiSelectable;
	[CEReactions] attribute DOMString? ariaOrientation;
	[CEReactions] attribute FrozenArray<Element>? ariaOwnsElements;
	[CEReactions] attribute DOMString? ariaPlaceholder;
	[CEReactions] attribute DOMString? ariaPosInSet;
	[CEReactions] attribute DOMString? ariaPressed;
	[CEReactions] attribute DOMString? ariaReadOnly;
	
	[CEReactions] attribute DOMString? ariaRequired;
	[CEReactions] attribute DOMString? ariaRoleDescription;
	[CEReactions] attribute DOMString? ariaRowCount;
	[CEReactions] attribute DOMString? ariaRowIndex;
	[CEReactions] attribute DOMString? ariaRowIndexText;
	[CEReactions] attribute DOMString? ariaRowSpan;
	[CEReactions] attribute DOMString? ariaSelected;
	[CEReactions] attribute DOMString? ariaSetSize;
	[CEReactions] attribute DOMString? ariaSort;
	[CEReactions] attribute DOMString? ariaValueMax;
	[CEReactions] attribute DOMString? ariaValueMin;
	[CEReactions] attribute DOMString? ariaValueNow;
	[CEReactions] attribute DOMString? ariaValueText;
};

ARIAMixin を含むインターフェイスは、次のアルゴリズムを提供しなければなりません:

ARIAMixin に定義された各IDL属性 idlAttribute について、取得時には次の手順を実行しなければなりません:

  1. contentAttribute を、ARIA属性対応表で idlAttribute を参照して決定されたARIAコンテンツ属性とします。

  2. このインスタンス、idlAttributecontentAttribute を引数にして、ARIAMixin getter ステップを実行し、その結果を返します。

同様に、設定時には次の手順を実行しなければなりません:

  1. contentAttribute を、ARIA属性対応表で idlAttribute を参照して決定されたARIAコンテンツ属性とします。

  2. このインスタンス、idlAttributecontentAttribute、および与えられた値を引数にして、ARIAMixin setter ステップを実行します。

この非常に一般的なフレームワークは、ElementElementInternals など、異なるホストインターフェイスがこれらのIDL属性に異なる動作を与えられるようにする意図から生まれたものです。代替案としては、各ホストインターフェイスがそれぞれIDL属性を個別に複製し、独立した動作を指定できるようにする方法がありますが、それでは同期が取れなくなるリスクが高まります。

10.2 ARIA属性対応表

次の表は、IDL属性名とコンテンツ属性名の対応を ARIAMixin で利用するために示しています。

IDL属性 反映されるARIAコンテンツ属性
role role
ariaActiveDescendantElement aria-activedescendant
ariaAtomic aria-atomic
ariaAutoComplete aria-autocomplete
ariaBusy aria-busy
ariaChecked aria-checked
ariaColCount aria-colcount
ariaColIndex aria-colindex
ariaColIndexText aria-colindextext
ariaColSpan aria-colspan
ariaControlsElements aria-controls
ariaCurrent aria-current
ariaDescribedByElements aria-describedby
ariaDescription aria-description
ariaDetailsElements aria-details
ariaDisabled aria-disabled
ariaErrorMessageElements aria-errormessage
ariaExpanded aria-expanded
ariaFlowToElements aria-flowto
ariaHasPopup aria-haspopup
ariaHidden aria-hidden
ariaInvalid aria-invalid
ariaKeyShortcuts aria-keyshortcuts
ariaLabel aria-label
ariaLabelledByElements aria-labelledby
ariaLevel aria-level
ariaLive aria-live
ariaModal aria-modal
ariaMultiLine aria-multiline
ariaMultiSelectable aria-multiselectable
ariaOrientation aria-orientation
ariaOwnsElements aria-owns
ariaPlaceholder aria-placeholder
ariaPosInSet aria-posinset
ariaPressed aria-pressed
ariaReadOnly aria-readonly
ariaRequired aria-required
ariaRoleDescription aria-roledescription
ariaRowCount aria-rowcount
ariaRowIndex aria-rowindex
ariaRowIndexText aria-rowindextext
ariaRowSpan aria-rowspan
ariaSelected aria-selected
ariaSetSize aria-setsize
ariaSort aria-sort
ariaValueMax aria-valuemax
ariaValueMin aria-valuemin
ariaValueNow aria-valuenow
ariaValueText aria-valuetext

注:属性 aria-dropeffect および aria-grabbed はARIA 1.1 で廃止され、対応するIDL属性はありません。

10.2.1 曖昧さ回避パターン

このセクションは規範的ではありません。

仕様の著者はこのパターンに例外を設けることができますが、上記に示したIDL属性名の命名や大文字/小文字の判別には以下のルールが使用されました。

  • 2語以上の単語を組み合わせた概念を参照する属性名(例:「value text」)は、単語の区切りごとに大文字にしたキャメルケースIDL属性となります。例えば、aria-valuetext は、VとTが大文字になる ariaValueText となります。
  • 同様に、ハイフンで結合できる概念を参照する属性(例:「multi-selectable」)は、ハイフン区切りごとに大文字となるキャメルケースIDL属性になります。例えば、「multi-selectable」の正しいつづりはハイフンを含むので、aria-multiselectable は、MとSが大文字の ariaMultiSelectable となります。
  • 信頼できる辞書でハイフンつき・なし両方のつづりがある場合(例:「multi-line」「multiline」)、ハイフンつきの方を使い、上記と同様にキャメルケース化します。例えば、aria-multiline はMとLが大文字の ariaMultiLine となります。
  • 信頼できる辞書で、単語をスペース・ハイフン無しで書くのが正しい場合は、語頭のみ大文字となります(例:「place-holder」「place holder」はどちらも間違いで「placeholder」が正しい)。したがって、aria-placeholder は、Pのみ大文字の ariaPlaceholder となります。
  • 現在、頭字語由来のARIA属性はありませんが、今後追加された場合は既存のDOM の慣習(例:ID → Id)に従って命名します。

10.2.2 IDL属性名に関する注記または例外

このセクションは規範的ではありません。

特定の属性名に対する注記や例外はここに記載されています。

  • ariaPosInSet: aria-posinset 属性は、アイテムがセット中のどこにあるか(二語:"in set")を示しており、「inset」(コレクション先頭からのインセット)ではありません。したがってIDL属性名は ariaPosInSet (P, I, 2文字目のSが大文字)であり、ariaPosInset ではありません

10.3 ARIAMixinElement にミックスイン

ユーザエージェントは MUST として ElementARIAMixin を含める必要があります:

WebIDLElement includes ARIAMixin;

Element に関して:

Note

実務上、例えば Element 上の role の IDL は role コンテンツ属性を反映し、ariaValueMin の IDL 属性は aria-valuemin コンテンツ属性を反映する、等を意味します。

10.4 IDL 属性の使用例

このセクションは規範的ではありません。

ARIA の IDL 属性反映の主な目的は、JavaScript による値の操作を容易にすることです。以下の例はその使用法を示します。

11. セキュリティに関する考慮事項

このセクションは規範的ではありません。

この仕様は新たなセキュリティ上の考慮事項を導入しません。

12. プライバシーに関する考慮事項

このセクションは規範的ではありません。

Web Platform Design Principles に従い、この仕様は支援技術の使用の有無を判定するプログラム的インターフェースを提供しません。しかし、この仕様は著者が支援技術の利用者に対して、支援技術を使用しない利用者に提供する情報と異なる情報を提示することを可能にします。これは ARIA 仕様の多くの機能を用いることで可能であり、他の多くの Web 技術スタックでも同様です。このようなコンテンツの差異は、支援技術利用者のアクティブなフィンガープリンティング(active fingerprinting)を行うために悪用される可能性があります。

A. WAI-ARIA 値の型を言語にマッピング

このセクションは規範的ではありません。

Note

下の表の HTML 列は助言的なものです。WAI-ARIA の状態およびプロパティを HTML で使用する際のガイダンスは、Document conformance requirements for use of ARIA attributes in HTML([HTML-ARIA])に示されています。

Note

HTML の true/false 値の推奨マッピングは、HTML の boolean 型ではなく、許容値が truefalseキーワードおよび列挙属性 を使用するものです。

下の表は、WAI-ARIA の状態およびプロパティ型と、HTML Standard および W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes の属性型との推奨マッピングを示します。

以下に示されていない言語でも、適切な値型が定義されている場合があります。存在しない場合は、一般的な XML 言語には XML Schema Datatypes を推奨します。DTD を使用する文書はスキーマを使った自動検証ができないため、WAI-ARIA 属性に対して追加の処理が必要になります。

WAI-ARIA HTML XML Schema
true/false 許容値が "true" と "false" のキーワードおよび列挙属性 boolean
true/false/undefined 許容値が truefalse、および undefined のキーワードおよび列挙属性 NMTOKEN と、許容値が truefalse、および undefined の列挙制約
tristate 許容値が "true"、"false"、および "mixed" のキーワードおよび列挙属性 NMTOKEN と、許容値が "true"、"false"、および "mixed" の列挙制約
number 浮動小数点数 decimal
integer 非負整数 integer
token キーワードおよび列挙属性 NMTOKEN と、状態やプロパティ定義に記載された値を許容する列挙制約
token list スペース区切りトークン NMTOKENS と、状態やプロパティ定義に記載された値を許容する列挙制約
ID reference 他の要素上で定義された id 属性 の値 IDREF
ID reference list 他の要素の定義された id 属性 の 1 つ以上の値を、スペース区切りトークン として表したもの IDREFS
string 値の制約なし string

B. 変更履歴

B.1 このリリースの主な機能

B.2 ARIA 1.2 以降の主要な変更点

C. 謝辞

このセクションは規範的ではありません。

このドキュメントの作成に貢献した方々を以下に示します。

C.1 公開時にARIA WGで活動していた参加者

C.2 助成者

この出版物は、米国連邦教育省の National Institute on Disability, Independent Living, and Rehabilitation Research(NIDILRR)から、一部米国連邦資金による支援を受けて作成されました。契約番号は当初 ED-OSE-10-C-0067、その後 HHSP23301500054C、そして現在は HHS75P00120P00168 によるものです。本書の内容は、必ずしも米国教育省の見解や方針を反映するものではなく、商品名・商標・組織名の記載は米国政府による推奨を意味しません。

D. 参考文献

D.1 規範的参考文献

[ACCNAME-1.2]
Accessible Name and Description Computation 1.2. Bryan Garaventa; Joanmarie Diggs; Michael Cooper. W3C. 2019年7月11日. W3C 作業草案. URL: https://www.w3.org/TR/accname-1.2/
[CORE-AAM]
Core Accessibility API Mappings 1.1. Joanmarie Diggs; Joseph Scheuhammer; Richard Schwerdtfeger; Michael Cooper; Andi Snow-Weaver; Aaron Leventhal. W3C. 2017年12月14日. W3C 勧告. URL: https://www.w3.org/TR/core-aam-1.1/
[CORE-AAM-1.2]
Core Accessibility API Mappings 1.2. Valerie Young; Alexander Surkov; Michael Cooper. W3C. 2023年11月2日. W3C 候補勧告. URL: https://www.w3.org/TR/core-aam-1.2/
[CSS3-SELECTORS]
Selectors Level 3. Tantek Çelik; Elika Etemad; Daniel Glazman; Ian Hickson; Peter Linss; John Williams. W3C. 2018年11月6日. W3C 勧告. URL: https://www.w3.org/TR/selectors-3/
[DOM]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
[DPUB-ARIA-1.0]
Digital Publishing WAI-ARIA Module 1.0. Matt Garrish; Tzviya Siegman; Markus Gylling; Shane McCarron. W3C. 2017年12月14日. W3C 勧告. URL: https://www.w3.org/TR/dpub-aria-1.0/
[HTML]
HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[MathML3]
Mathematical Markup Language (MathML) Version 3.0 2nd Edition. David Carlisle; Patrick D F Ion; Robert R Miner. W3C. 2014年4月10日. W3C 勧告. URL: https://www.w3.org/TR/MathML3/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. 1997年3月. 最良現行業務. URL: https://www.rfc-editor.org/rfc/rfc2119
[ROLE-ATTRIBUTE]
Role Attribute 1.0. Shane McCarron 他. W3C. 2013年3月28日. W3C 勧告. URL: https://www.w3.org/TR/role-attribute/
[SVG2]
Scalable Vector Graphics (SVG) 2. Amelia Bellamy-Royds; Bogdan Brinza; Chris Lilley; Dirk Schulze; David Storey; Eric Willigers. W3C. 2018年10月4日. W3C 候補勧告. URL: https://www.w3.org/TR/SVG2/
[uievents-key]
UI Events KeyboardEvent key Values. Travis Leithead; Gary Kacmarcik. W3C. 2023年5月30日. W3C 候補勧告. URL: https://www.w3.org/TR/uievents-key/
[WEBIDL]
Web IDL Standard. Edgar Chen; Timothy Gu. WHATWG. Living Standard. URL: https://webidl.spec.whatwg.org/
[XML-NAMES]
Namespaces in XML 1.0 (Third Edition). Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson 他. W3C. 2009年12月8日. W3C 勧告. URL: https://www.w3.org/TR/xml-names/

D.2 参考情報

[AT-SPI]
Assistive Technology Service Provider Interface. The GNOME Project. URL: https://developer-old.gnome.org/libatspi/stable/
[ATK]
ATK - Accessibility Toolkit. The GNOME Project. URL: https://developer.gnome.org/atk/stable/
[AXAPI]
The NSAccessibility Protocol for macOS. Apple, Inc. URL: https://developer.apple.com/documentation/appkit/nsaccessibility
[design-principles]
Web Platform Design Principles. Sangwhan Moon. W3C. 2023年9月7日. W3C ワーキンググループノート. URL: https://www.w3.org/TR/design-principles/
[fingerprinting-guidance]
Mitigating Browser Fingerprinting in Web Specifications. Nick Doty. W3C. 2019年3月28日. W3C ワーキンググループノート. URL: https://www.w3.org/TR/fingerprinting-guidance/
[HTML-ARIA]
ARIA in HTML. Scott O'Hara; Patrick Lauke. W3C. 2023年12月21日. W3C 勧告. URL: https://www.w3.org/TR/html-aria/
[IAccessible2]
IAccessible2. Linux Foundation. URL: https://wiki.linuxfoundation.org/accessibility/iaccessible2/
[MSAA]
Microsoft Active Accessibility (MSAA). Microsoft Corporation. URL: https://docs.microsoft.com/en-us/windows/win32/winauto/microsoft-active-accessibility
[UI-AUTOMATION]
UI Automation. Microsoft Corporation. URL: https://docs.microsoft.com/en-us/windows/win32/winauto/ui-automation-specification
[UIA-EXPRESS]
The IAccessibleEx Interface. Microsoft Corporation. URL: https://docs.microsoft.com/en-us/windows/win32/winauto/iaccessibleex
[wai-aria-1.1]
Accessible Rich Internet Applications (WAI-ARIA) 1.1. Joanmarie Diggs; Shane McCarron; Michael Cooper; Richard Schwerdtfeger; James Craig. W3C. 2017年12月14日. W3C 勧告. URL: https://www.w3.org/TR/wai-aria-1.1/
[WAI-ARIA-PRACTICES-1.2]
WAI-ARIA Authoring Practices 1.2. Matthew King; JaEun Jemma Ku; James Nurthen; Zoë Bijl; Michael Cooper. W3C. 2022年5月19日. W3C ワーキンググループノート. URL: https://www.w3.org/TR/wai-aria-practices-1.2/
[WCAG21]
Web Content Accessibility Guidelines (WCAG) 2.1. Michael Cooper; Andrew Kirkpatrick; Joshue O'Connor; Alastair Campbell. W3C. 2023年9月21日. W3C 勧告. URL: https://www.w3.org/TR/WCAG21/
[XMLSCHEMA11-2]
W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes. David Peterson; Sandy Gao; Ashok Malhotra; Michael Sperberg-McQueen; Henry Thompson; Paul V. Biron 他. W3C. 2012年4月5日. W3C 勧告. URL: https://www.w3.org/TR/xmlschema11-2/