Copyright © 2014-2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
この文書は、ユーザーエージェントがウェブコンテンツ言語からアクセシブルオブジェクトの名前および説明をどのように決定するのかを説明する。この情報はアクセシビリティAPIを通じて公開されるため、支援技術はこのオブジェクトを識別し、その名前または説明をユーザーに提示することができる。名前および説明を決定するためのアルゴリズムを文書化することは、異なるアクセシビリティAPI間でこれらのプロパティの相互運用可能な公開を促進し、この情報が著者の意図と一致する方法で表示されるように保証することを促す。
アクセシブルな名前および説明の計算仕様は、複数のコンテンツ技術に適用されるサポートを定義する。これには、汎用のWAI-ARIA [WAI-ARIA]ロール、ステート、およびプロパティだけでなく、個々のコンテンツ言語に固有の機能によって提供されるアクセシブルな名前および説明も含まれる。
この文書は、Accessible Name and Description Computation 1.1 [ACCNAME-1.1] W3C Recommendationにおけるアクセシブルな名前および説明のガイダンスを更新し、最終的にはこれに取って代わるものである。この文書は、WAI-ARIA Overviewで説明されているWAI-ARIAスイートの一部と位置付けられている。
この節は、公開時点におけるこの文書のステータスについて説明する。現在のW3C出版物のリストと、このテクニカルレポートの最新版は、W3C standards and drafts indexにある。
この文書は、Recommendation trackを使用したWorking DraftとしてAccessible Rich Internet Applications Working Groupによって公開された。
Working Draftとしての公開は、W3Cおよびその会員による承認を意味するものではない。
この文書は草案文書であり、いつでも更新、他の文書による置き換えや廃止扱いにされうる。進行中の作業以外のものとしてこの文書を引用することは不適切である。
この文書はW3C特許ポリシーの下で活動するグループによって作成された。W3Cは、グループの成果物に関するあらゆる開示特許の公開リストを管理する。ここには、特許開示にあたっての指示も含まれている。特許について十分に知識のある人物が、仕様にEssential Claim(s)が認められると判断した場合は、W3C特許ポリシーの第6章に従い情報を開示する必要がある。
この文書は2025年8月18日のW3Cプロセス文書によって管理される。
この章は非規範的である。
ユーザーエージェントはDOM [DOM]から情報を取得し、アクセシブルなオブジェクトで構成されるアクセシビリティツリーと呼ばれる並列構造を作成する。アクセシブルなオブジェクトは、そのロール、ステート、およびプロパティに関する情報を提供する。一例は、ロールがmenuitemであり、現在haspopupプロパティを持つenabled状態にあり、それがサブメニューにつながることを示す、アクセシブルなオブジェクトである。
この文書で説明されるアクセシブルなオブジェクトの2つのプロパティは、そのアクセシブルな名前およびアクセシブルな説明である。名前は、オブジェクトの目的に関する情報を提供する短いラベルである。メニュー項目のアクセシブルな名前の例はNewであり、メニュー項目が新しい文書、ウィンドウなどを作成するために提供することを意味する。
説明は、アクセシブルなオブジェクトの性質をさらに明確にする短い説明である。名前が十分である場合に説明を提供する必要は必ずしもないが、ユーザーがオブジェクトの使用法をよりよく理解するのに役立つ。
アクセシビリティAPIは現在、アクセシブルな名前および説明のためのフラットな非構造化文字列をサポートしている。名前/説明の計算結果は、フラットな文字列である。
用語"アクセシブルな名前"および"アクセシブルな説明"は、それらがアクセシビリティAPIによって公開されているアクセシブルなオブジェクトのプロパティであることを強調するために使用されている。しかし、それらは、以後単に"名前"および"説明"とたびたび呼ばれる。
この章は非規範的である。
一部の用語は適当な位置に定義されるが、以下の定義は、この文書全体で使用される。
ハードウェアおよび/またはソフトウェアは:
この定義は他の文書で使用したものと異なるかもしれない。
この文書のコンテキストにおいて重要である支援技術の例としては次のものを含む:
アクセシブルな説明は、インターフェイス要素に関連する、アクセシブルな名前を補完する追加情報を提供する。アクセシブルな説明は、視覚的に知覚されるかもしれないし、されないかもしれない。
アクセシブルな名前は、ユーザーインターフェイス要素の名前である。各プラットフォームのアクセシビリティAPIは、アクセシブルな名前プロパティを提供する。アクセシブルな名前の値は、可視(たとえば、ボタンの可視テキスト)またはユーザーインターフェイス要素の不可視(たとえば、アイコンを説明する代替テキスト)プロパティから得られるかもしれない。関連するアクセシブルな説明を参照のこと。
アクセシブルな名前プロパティに対する簡単な用法は、"OK"ボタンによって説明することができる。テキスト"OK"は、アクセシブルな名前である。ボタンがフォーカスを受け取る場合、支援技術は、アクセシブル名前をもつプラットフォームのロールの説明を連結できる。たとえば、スクリーンリーダーは、"押しボタンOK"または"OKボタン"を話すことができる。連結の順序およびロールの説明の詳細(たとえば"ボタン"、"押しボタン"、"クリック可能ボタン")は、プラットフォームアクセシビリティAPIまたは支援技術によって決定される。
デスクトップユーザーエージェントのマウスホバーに応答してなど、ユーザーエージェントにツールチップの生成をもたらすホスト言語の属性。
非規範的とマークとしてマークされる章と同様に、この仕様のすべてのオーサリングガイドライン、図、例、およびノートは非規範的である。この仕様における他のすべては規範的である。
キーワードMAY、MUSTおよびMUST NOTは、BCP 14 [RFC2119] [RFC8174]で示されるとおりに解釈される。ただし、大文字で表示される場合に限る。
規範的な章は、著者、ユーザーエージェント、および支援技術がこの仕様に準拠するように実装するために従わなければならない要件を規定する。
非規範的な(参考情報の)章は、この仕様を理解するのに有益な情報を提供する。そのような章は、推奨されるプラクティスの例を含むかもしれないが、この仕様に準拠するためにそのような推奨に従うことを必要としない。
名前および説明計算の出発点はDOM要素である。その出力はフラットであり、とても単純な1つの単語となりうる構造化されていない文字列、すなわちスペースで区切られたトークンの文字列である。例としては、SaveとReload from diskがある。
重要な因子は要素のロールである。これは、どのコンテンツが名前文字列に寄与するかを決定する。ロールはnameFrom RDFプロパティを持ち、次の3つの値を取りうる:
aria-labelおよびaria-labelledby属性などの明示的なマークアップ機能、またはHTMLのaltもしくはtitle属性、SVGのdesc要素などのホスト言語のラベル付けメカニズムで著者によって提供される値から生成される。aria-labelまたはaria-labelledby属性を使用してはならない。Accessible Rich Internet Applications (WAI-ARIA) 1.2 [WAI-ARIA]仕様は、著者由来の名前、コンテンツ由来の名前をサポートするロールおよび名前を付けることができないロールのリストを提供している。
ユーザーエージェントは、テキスト等価計算の節で概説される規則を使用して、アクセシブルな名前を計算しなければならない。
次の表に、アクセシブルな説明の計算に適用できるマークアップの優先順位を示す。ユーザーエージェントは、最後の列で説明されているように、記載された条件が満たされるテーブルから最初の適用可能なエントリーを使用しなければならない。ユーザーエージェントは、たとえそのマークアップの記述が空であっても、最初に発見された関連するマークアップ以外のマークアップを使用してはならない。
| 優先順位 | 属性 | 適用条件 | 説明の計算方法 |
|---|---|---|---|
| 1 | aria-describedby属性 |
すべての要素で使用 | 名前計算 要素上のaria-describedbyで参照され、連結され、スペース文字で区切られたすべてのノード |
| 2 | aria-description属性 |
すべての要素で使用 | フラットな文字列として |
| 3 | 説明計算に参加するホスト言語機能 | 一意のホスト言語機能は、該当する要素のアクセシブルな名前にまだ使用されていない場合にのみ、要素の説明計算に参加してもよい。この条件を満たすHTML要素については、HTML AAM: Accessible Description Computationを参照。 | ホスト言語要素のテキスト等価計算、またはホスト言語属性の文字列値のいずれか。 |
| 4 | ホスト言語のツールチップ属性または同等の機能(例:HTML title属性) |
|
フラットな文字列として |
テキスト等価計算は、アクセシブルな名前とアクセシブルな説明の両方で使用される。複数の異なる種類の要素、ノード、およびマークアップの組み合わせに対して提供される異なる規則が存在する。適切な場合、テキストによる代替は、要素内に含まれるすべての関連コンテンツから構築される。これは、テキスト自身が参照する自身の子またはノードからテキストを検索するための規則の完全なセットを使用して、再帰的なステップ2Bおよび2Fを経て達成される。
計算の目的は、スペースで区切られたテキストトークンのフラットな文字列の形式で、代替プレゼンテーション用の知覚可能なラベルまたは説明を作成することである。
root nodeのテキスト同等物を計算するために現に横断したDOMノード。最初は、current nodeがroot nodeであるが、後の段階では、root nodeの子孫か、別の参照されるノードのいずれかになる。current nodeを含めない。resultをXにコピーする。resultをXの末尾にコピーする。resultをXにコピーする。resultをXにコピーする。resultをXにコピーする。resultをXの先頭にコピーする。resultをXにコピーする。resultをXの先頭にコピーし、そのコピーの後にスペースを追加する。与えられた要素に対するテキストによる代替は、次のように計算される:
root nodeを与えられた要素に、current nodeをroot nodeに、そしてtotal accumulated textを空文字列("")に設定する。root nodeのロールで名前付けが禁止されている場合、空の文字列("")を返す。current nodeのテキストによる代替を計算する。current nodeが少なくとも1つの有効なIDREFを含むaria-labelledby属性を持ち、かつcurrent nodeがまだ進行中のaria-labelledbyまたはaria-describedbyトラバーサルの一部になっていない場合、そのIDREFを出現順に処理する。accumulated textを空文字列に設定する。current nodeをIDREFによって参照されるノードに設定する。urrent nodeの代替テキストを計算する。resultをそのテキストによる代替に設定する。resultをaccumulated textに追加する。accumulated textを返す。Hidden Not Referencedと組み合わせたLabelledBy Traversalの結果は、aria-labelledbyまたはaria-describedbyによって参照されるノードが非表示の場合、ユーザーエージェントが、サブツリー内のすべてのノードをアクセシブルな名前またはアクセシブルな説明の一部として含めなければならないことを意味する。
current nodeが別のウィジェットのラベル内に埋め込まれたコントロール(たとえば、aria-labelledbyによって直接参照される任意の要素)であり、ユーザーが埋め込みコントロールの値を調整できる場合、次の方法で埋め込みコントロールを代替テキストの一部として返す:
current nodeがslot要素ではなく、かつaria-label属性を持ち、その値が未定義でも、空文字列でも、空白を削除しても空文字列ではない場合:current nodeのトラバーサルがName From Content descendant node recursionによるものでかつ、current nodeが埋め込みコントロールである場合、aria-labelを無視して規則Embedded Controlへ飛ぶ。aria-labelの値を返す。current nodeのネイティヴマークアップが代替テキストを定義する属性(たとえばalt)または要素(たとえば、HTML label、SVG title)を提供する場合、current nodeがプレゼンテーショナル(role="presentation"またはrole="none"、alt="")として公開されていない限り、ホスト言語によって定義されたflat stringの形式でその代替を返す(たとえばHTML-AAM)。たとえば、HTMLにおいて、img要素のalt属性は代替テキストの文字列を定義し、label要素は参照されるフォーム要素のテキストを提供する。SVG2において、desc要素およびtitle要素は、それらの親要素の説明を提供する。
current node'sの ロールがコンテンツ由来の名前を許可する場合、またはcurrent nodeがaria-labelledby、aria-describedbyによって参照される、もしくはネイティヴホスト言語の代替テキスト要素(たとえばHTMLのlabel)である場合、またはネイティヴホスト言語の代替要素の子孫である場合は、次のようになる:accumulated textを空文字列に設定する。current nodeに関連付けられた CSS生成テキストコンテンツを確認して、accumulated textに含める。CSS ::beforeおよび::after擬似要素[CSS2]は、コンテンツモデルを持つ要素に::marker疑似要素を提供できる。::marker擬似要素の場合、current nodeが::markerをサポートしている場合、ユーザーエージェントはcurrent nodeのテキストコンテンツの前にスペースなしでCSSテキストコンテンツを付加しなければならない。::before擬似要素の場合、ユーザーエージェントは、スペースなしでCSSテキストコンテンツをcurrent nodeのテキストコンテンツの先頭に追加しなければならない。::after擬似要素の場合、ユーザーエージェントは、スペースなしでCSSテキストコンテンツをcurrent nodeのテキストコンテンツに追加しなければならない。current nodeのrendered child nodesを決定する。current nodeにシャドウルートがアタッチされている場合、rendered child nodesをシャドウルートの子ノードに設定する。current nodeが割り当てられたノードをもつスロットである場合、rendered child nodesをcurrent nodeの割り当てられたノードに設定する。rendered child nodesをcurrent nodeの子ノードに設定する。current nodeのrendered child nodeごとに:current nodeをrendered child nodeに設定する。current nodeの代替テキストを計算する。resultをその代替テキストに設定する。 resultをaccumulated textに追加する。accumulated textを返す。重要:サブツリーの各ノードは一度だけ調べられる。テキストが子孫から収集されたが、いくつかの子孫ノードで別のIDREFによって参照される場合、その2回目以降の参照は行われない。これは、無限ループを避けるために行われる。
このステップは子ノード自体にも適用でき、これは計算が再帰的であり、かつcurrent nodeのサブツリー内のすべての要素から収集されるテキストをもたらすことを意味する。ただし、任意の子孫ノードの代替テキストは、上記のステップBからDで説明した優先順位の高いマークアップから生成される可能性がある。この場合、"Namefrom: author"属性は、サブツリー全体の代替テキストを提供する。
2024年1月18日:ARIA Working Groupは、current nodeのCSS display値、ならびにその隣接するノードおよび擬似要素に応じて、スペースの有無にかかわらずテキスト文字列を結合することの実現可能性を検討している。現在進行中の議論はAccName #225にある。
current nodeがTextノードである場合、そのテキストのコンテンツを返す。current nodeが、アクセシブルな名前またはアクセシブルな説明が計算されている要素の子孫であり、かつ子孫を含んでいる場合、Name From Content Resetに進む。current nodeがツールチップ属性を持つ場合、その値を返す。ツールチップ属性は、サブツリーのコンテンツを含めて他に何も結果を提供できない場合にのみ、使用される。
resultをtotal accumulated textに追加する。total accumulated textは、計算を開始した要素のアクセシブルな名前またはアクセシブルな説明として使用される。labelled-by/label-forおよびdescribed-by/description-forなどの関係を含む、名前および説明のアクセシビリティAPIマッピングに関する情報は、Core Accessibility API Mappings specification [CORE-AAM-1.2]に記載されている。aria-label、aria-labelledby、およびaria-describedbyのマッピングテーブルエントリーを参照のこと。
この章は非規範的である。
次の人は、この文書の開発に貢献した。
この出版物は、当初は契約番号ED-OSE-10-C-0067、次に契約番号HHSP23301500054C、現在はHHS75P00120P00168のもとで米国教育省・障害者リハビリテーション研究所(NIDILRR)の政府資金によって一部賄われている。この出版物の内容は、必ずしも米国教育省の見解や政策を反映するものではなく、また商品名、商用製品、組織の言及は米国政府による支持を意味するものではない。
Referenced in:
Referenced in: