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勧告におけるアクセシブルな名前および説明の指針を更新し、最終的に置き換える。 これは、 WAI-ARIA概要で説明される WAI-ARIAスイートの一部である。
この節は、公開時点におけるこの 文書の状態を説明する。現在のW3C 公開物の一覧およびこの技術レポートの最新改訂版は、 W3C標準および草案 索引で参照できる。
この文書は、Accessible Rich Internet Applications Working Groupにより、 勧告 トラックを用いた作業草案として公開された。
作業草案としての公開は、 W3Cおよびそのメンバーによる承認を意味しない。
これは草案文書であり、いつでも他の文書によって更新、置換、または廃止される可能性がある。 この文書を進行中の作業以外のものとして引用することは適切ではない。
この文書は、 W3C 特許 ポリシーの下で運営されるグループにより作成された。 W3Cは、 そのグループの成果物に関連して行われた特許開示の公開リスト を維持している。そのページには、特許を開示するための 手順も含まれる。ある個人が、 その個人が必須クレームを含むと考える特許について 実際の知識を有する場合、 W3C特許ポリシー第6節に従って その情報を開示しなければならない。
この文書は、 2025年8月18日版W3Cプロセス文書によって管理される。
この節は非規範的である。
ユーザー
エージェントはDOM
[DOM]から情報を取得し、
アクセシビリティツリーと呼ばれる並列構造を作成する。これはアクセシブルなオブジェクトから構成される。アクセシブルな
オブジェクトは、そのロール、
状態、およびプロパティについての情報を提供する。例として、ロールが
menuitemで、現在enabled状態にあり、
サブメニューにつながることを示すhaspopupプロパティを持つアクセシブルなオブジェクトがある。
この文書で説明するアクセシブルなオブジェクトの2つのプロパティは、そのアクセシブルな名前およびアクセシブルな説明である。名前は、
オブジェクトの目的についての情報を提供する短いラベルである。メニュー項目のアクセシブルな名前の例は
Newであり、そのメニュー項目が新しい
文書、ウィンドウなどの作成を提供することを意味する。
説明は、アクセシブルなオブジェクトの性質をさらに明確にする短い説明である。名前が十分である場合、 説明を提供することは常に必要というわけではないが、 ユーザーがそのオブジェクトの使用をよりよく理解する助けとなり得る。
アクセシビリティAPIは現在、アクセシブルな名前および説明について、 平坦で構造化されていない文字列をサポートする。したがって、名前/説明の算出結果は平坦な文字列である。
「アクセシブルな名前」および「アクセシブルな説明」という用語は、これらが アクセシブルなオブジェクトのプロパティであり、 アクセシビリティAPIによって公開されるものであることを強調するために用いられる。しかし、以降ではしばしば 単に「名前」および「説明」と呼ばれる。
この節は非規範的である。
一部の用語はその場で定義されるが、以下の定義はこの文書全体で使用される。
次のようなハードウェアおよび/またはソフトウェア:
この定義は、他の文書で用いられる定義と異なる場合がある。
この文書の文脈で重要な支援技術の例には、以下が含まれる:
アクセシブルな説明は、インターフェイス要素に関連する追加情報を提供し、 アクセシブルな名前を補完する。アクセシブルな説明は、 視覚的に知覚可能である場合もあれば、そうでない場合もある。
アクセシブルな名前は、ユーザーインターフェイス要素の名前である。各プラットフォームのアクセシビリティAPIは、アクセシブルな名前 プロパティを提供する。アクセシブルな名前の値は、ユーザーインターフェイス要素の可視の プロパティ(例: ボタン上の可視テキスト)または不可視のプロパティ(例: アイコンを説明する代替テキスト)から 派生する場合がある。関連するアクセシブルな説明を参照。
アクセシブルな名前プロパティの単純な使用は、「OK」ボタンによって説明できる。テキスト 「OK」がアクセシブルな名前である。ボタンがフォーカスを受け取ると、支援 技術はプラットフォームのロール説明をアクセシブルな名前と連結する場合がある。たとえば、 スクリーンリーダーは「push-button OK」または「OK button」と読み上げる場合がある。連結の 順序およびロール説明の具体事項(例: 「button」、「push-button」、 「clickable button」)は、プラットフォームの アクセシビリティAPIまたは支援技術によって決定される。
デスクトップユーザーエージェントにおけるマウスホバーへの応答などで、ユーザーエージェントがツールチップを生成する結果となる任意のホスト言語属性。
非規範的とマークされた節に加えて、この仕様におけるすべての作成者向けガイドライン、図、例、および注は 非規範的である。この仕様におけるその他すべては規範的である。
この文書におけるキーワードMAY、MUST、およびMUST NOTは、 BCP 14 [RFC2119] [RFC8174] に記述されるとおりに、かつ、ここに示すようにすべて 大文字で現れる場合にのみ、解釈される。
規範的な節は、この仕様に適合する実装のために、作成者、ユーザーエージェント、および支援技術がMUST従う要件を提供する。
非規範的な(参考)節は、この仕様を理解するために有用な情報を提供する。そのような 節には推奨される実践の例が含まれる場合があるが、この仕様に適合するために そのような推奨に従うことは要求されない。
名前および説明の算出の開始点は、DOMの要素である。出力は、単一の単語のように単純なものにも、
空白で区切られたトークンの文字列にもなり得る、平坦で構造化されていない
文字列である。例にはSaveおよび
Reload from diskが含まれる。
重要な要因は、要素のロールであり、それはどの
コンテンツが名前文字列に寄与するかを決定する。ロールはnameFrom
RDFプロパティを持ち、次の3つの可能な値を持つ:
aria-labelおよびaria-labelledby
属性のような明示的なマークアップ機能、
またはHTMLにおけるaltもしくはtitle
属性、あるいはSVGにおけるdesc
要素のようなホスト言語のラベル付け機構において、
制作者が提供した値から生成される。
aria-labelまたは
aria-labelledby属性を使用しては
MUST
NOTならない。
アクセシブルなリッチインターネット アプリケーション(WAI-ARIA)1.2 [WAI-ARIA]仕様は、 制作者からの名前をサポートする ロール、コンテンツからの名前を サポートするロールおよび 名前を付けることができない ロールの一覧を提供する。
ユーザーエージェントは、下記の テキスト等価物の算出という節に概説される規則を用いて、 アクセシブルな名前を算出しなければ MUSTならない。
次の表は、アクセシブルな説明を算出するために適用できるマークアップの優先順位を提供する。 ユーザーエージェントは、 最後の列で説明されるように、列挙された条件が満たされる表内の最初の適用可能な項目を使用しなければ MUSTならない。ユーザーエージェントは、たとえそのマークアップが空の説明をもたらす場合であっても、 見つかった最初の関連マークアップ以外のいかなるマークアップも使用しては MUST NOTならない:
| 優先順位 | 属性 | 適用可能な条件 | 説明の算出にどのように使用されるか |
|---|---|---|---|
| 1 |
aria-describedby
属性
|
任意の要素で使用 | 要素上のaria-describedbyにより参照されるすべてのノードに対する名前の算出を、 連結し、空白文字で区切ったもの |
| 2 |
aria-description
属性
|
任意の要素で使用 | 平坦な文字列として |
| 3 | 説明の計算に参加するホスト言語機能 | 一意なホスト言語機能は、適用可能な要素のアクセシブルな名前にすでに使用されていない場合にのみ、 要素の説明の算出に参加してよい MAY。この条件を満たす HTML要素については、 HTML AAM: アクセシブルな説明の 算出を参照。 | ホスト言語要素のテキスト等価物の算出、または ホスト言語属性の文字列値のいずれか。 |
| 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により参照されるノードに設定する。
current nodeの
テキスト代替を算出する。resultをそのテキスト代替に設定する。
resultをaccumulated textに追加する。
accumulated textが
空文字列("")でない場合、それを返す。
LabelledBy探索の結果は、
参照されていない非表示と組み合わさることで、
aria-labelledbyまたはaria-describedbyにより参照されるノードが
非表示である場合、ユーザーエージェントは
サブツリー内のすべてのノードをアクセシブルな名前
またはアクセシブルな
説明の一部として含めなければ
MUSTならないことを意味する。
current nodeが別のウィジェットのラベル
(例: aria-labelledbyにより直接参照される任意の要素)内に埋め込まれたコントロールであり、
ユーザーがその埋め込みコントロールの値を調整できる場合、次の方法で、
埋め込みコントロールをテキスト代替の一部として返す:
current nodeが
slot要素ではなく、
かつ未定義でなく、空文字列でもなく、空白をトリムした場合にも
空文字列でない値を持つaria-label 属性を持つ場合:
current nodeの探索がName From Contentの子孫
ノード再帰によるものであり、かつ
current nodeが埋め込みコントロールである場合、aria-labelを無視し、
規則埋め込みコントロールへ進む。
aria-labelの値を返す。current nodeのネイティブマークアップがテキスト代替を定義する
属性(例:
alt)または要素(例:
HTMLのlabelまたはSVGのtitle)を提供する場合、
ホスト言語によって定義される
flat stringの形式でその代替を返す(例: HTML-AAM)。ただし、
current nodeが提示的(role="presentation"
またはrole="none"、alt="")として公開される場合を除く。
たとえば、HTMLでは、
img要素のalt属性がテキスト代替文字列を定義し、
label要素は参照されたフォーム要素にテキストを提供する。
SVG2では、descおよびtitle
要素がその親要素の
説明を提供する。
current nodeのロールが
コンテンツからの
名前を許可する場合、またはcurrent nodeが
aria-labelledby、aria-describedbyにより参照される場合、または
ネイティブホスト言語のテキスト代替要素(例:
HTMLにおけるlabel)である場合、または
ネイティブホスト言語のテキスト代替要素の子孫である場合:
accumulated textを空文字列に設定する。
current nodeに関連付けられた
CSS生成テキストコンテンツを確認し、それを
accumulated textに含める。
CSSの::before
および::after疑似要素
[CSS2]
は、コンテンツモデルを持つ要素に対して、
::marker
疑似要素に加えて、テキストコンテンツを提供できる。
::marker疑似要素について、ユーザーエージェントは、
current nodeが::markerをサポートする場合、
CSSテキストコンテンツを、空白なしで、
current nodeのテキストコンテンツの前に追加しなければ
MUSTならない。
::before疑似要素について、ユーザーエージェントは
CSSテキストコンテンツを、空白なしで、
current nodeのテキストコンテンツの前に追加しなければ
MUSTならない。
::after疑似要素について、ユーザーエージェントは
CSSテキストコンテンツを、空白なしで、
current nodeのテキストコンテンツに追加しなければ
MUSTならない。
current nodeの
rendered child nodesを決定する:
current nodeにシャドウ
ルートが付随している場合、rendered child nodesを
シャドウ
ルートの子ノードに設定する。
current nodeがslotであり、割り当てられた
ノードを持つ場合、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作業部会は、
current node、ならびにその隣接ノードおよび疑似要素の
CSS display値に応じて、
テキスト文字列を空白ありまたは空白なしで結合する実現可能性を検討している。
進行中の議論はAccName
#225にある。
current nodeが
テキストノードである場合、
そのテキスト内容を返す。
current nodeが、
アクセシブルな名前またはアクセシブルな
説明が算出されている要素の子孫であり、かつ子孫を含む場合、
コンテンツからの名前のリセットへ進む。
current nodeが
ツールチップ属性を持つ場合、
その値を返す。
ツールチップ属性は、サブツリーのコンテンツを含め、他に結果を提供するものが何もない場合にのみ使用される。
resultに空白文字を付けて、
total accumulated textに追加する。
total accumulated textは、
算出を開始した要素の
アクセシブルな名前またはアクセシブルな説明として使用される。
labelled-by/label-forおよびdescribed-by/description-forのような関係を含む、名前および説明のアクセシビリティ
APIマッピングに関する情報は、
Core Accessibility API Mappings仕様 [CORE-AAM-1.2] に記載されている。
aria-label、aria-labelledby、およびaria-describedbyについては、
マッピング表の項目を参照。
この節は非規範的である。
以下の人々がこの文書の開発に貢献した。
この公開物は、米国教育省、国立障害・自立生活・リハビリテーション研究所(NIDILRR)からの 米国連邦資金により、当初は契約番号ED-OSE-10-C-0067の下で、その後契約番号HHSP23301500054Cの下で、 現在はHHS75P00120P00168の下で、一部資金提供を受けている。この公開物の内容は、必ずしも 米国教育省の見解または方針を反映するものではなく、また商号、商用 製品、または組織への言及が米国政府による承認を意味するものでもない。
Referenced in:
Referenced in: