Copyright © 2014-2024 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 technical reports index at https://www.w3.org/TR/で見つけることができる。
この文書は、Recommendation trackを使用したWorking DraftとしてAccessible Rich Internet Applications Working Groupによって公開された。
Working Draftとしての公開は、W3Cおよびその会員による承認を意味するものではない。
この文書は草案であり、いつでも更新、他の文書による置き換えや廃止扱いにされうる。進行中の作業以外のものとしてこの文書を引用することは不適切である。
この文書はW3C特許ポリシーの下で活動するグループによって作成された。W3Cは、グループの成果物に関するあらゆる開示特許の公開リストを管理する。ここには、特許開示にあたっての指示も含まれている。特許について十分に知識のある人物が、仕様にEssential Claim(s)が認められると判断した場合は、W3C特許ポリシーの第6章に従い情報を開示する必要がある。
この文書は2023年11月3日のW3Cプロセス文書によって管理される。
この章は非規範的である。
ユーザーエージェントはDOM [DOM]から情報を取得し、アクセシブルなオブジェクトで構成されるアクセシビリティツリーと呼ばれる並列構造を作成する。アクセシブルなオブジェクトは、そのロール、ステート、およびプロパティに関する情報を提供する。一例は、ロールがmenuitem
であり、現在haspopup
プロパティを持つenabled
状態にあり、それがサブメニューにつながることを示す、アクセシブルなオブジェクトである。
この文書で説明されるアクセシブルなオブジェクトの2つのプロパティは、そのアクセシブルな名前およびアクセシブルな説明である。名前は、オブジェクトの目的に関する情報を提供する短いラベルである。メニュー項目のアクセシブルな名前の例はNew
であり、メニュー項目が新しい文書、ウィンドウなどを作成するために提供することを意味する。
説明は、アクセシブルなオブジェクトの性質をさらに明確にする短い説明である。名前が十分である場合に説明を提供する必要は必ずしもないが、ユーザーがオブジェクトの使用法をよりよく理解するのに役立つ。
アクセシビリティAPIは現在、アクセシブルな名前および説明のためのフラットな非構造化文字列をサポートしている。名前/説明の計算結果は、フラットな文字列である。
用語"アクセシブルな名前"および"アクセシブルな説明"は、それらがアクセシビリティAPIによって公開されているアクセシブルなオブジェクトのプロパティであることを強調するために使用されている。しかし、それらは、以後単に"名前"および"説明"とたびたび呼ばれる。
この章は非規範的である。
一部の用語は適当な位置に定義されるが、以下の定義は、この文書全体で使用される。
ハードウェアおよび/またはソフトウェアは:
この定義は他の文書で使用したものと異なるかもしれない。
この文書のコンテキストにおいて重要である支援技術の例としては次のものを含む:
アクセシブルな説明は、インターフェイス要素に関連する、アクセシブルな名前を補完する追加情報を提供する。アクセシブルな説明は、視覚的に知覚されるかもしれないし、されないかもしれない。
アクセシブルな名前は、ユーザーインターフェイス要素の名前である。各プラットフォームのアクセシビリティAPIは、アクセシブルな名前プロパティを提供する。アクセシブルな名前の値は、可視(たとえば、ボタンの可視テキスト)またはユーザーインターフェイス要素の不可視(たとえば、アイコンを説明する代替テキスト)プロパティから得られるかもしれない。関連するアクセシブルな説明を参照のこと。
アクセシブルな名前プロパティに対する簡単な用法は、"OK"ボタンによって説明することができる。テキスト"OK"は、アクセシブルな名前である。ボタンがフォーカスを受け取る場合、支援技術は、アクセシブル名前をもつプラットフォームのロールの説明を連結できる。たとえば、スクリーンリーダーは、"押しボタンOK"または"OKボタン"を話すことができる。連結の順序およびロールの説明の詳細(たとえば"ボタン"、"押しボタン"、"クリック可能ボタン")は、プラットフォームアクセシビリティAPIまたは支援技術によって決定される。
デスクトップユーザーエージェントのマウスホバーに応答してなど、ユーザーエージェントにツールチップの生成をもたらすホスト言語の属性。
非規範的とマークとしてマークされる章と同様に、この仕様のすべてのオーサリングガイドライン、図、例、およびノートは非規範的である。この仕様における他のすべては規範的である。
キーワードMAY、MUSTおよびMUST NOTは、BCP 14 [RFC2119] [RFC8174]で示されるとおりに解釈される。ただし、大文字で表示される場合に限る。
RFC-2119のキーワードは、大文字と太字で表記されている。上に示したキーワードが使用されるが、この形式を共有しない場合キーワードは、RFC 2119の意味で形式的な情報を伝達せず、単なる説明、すなわち、参考情報である。可能な限り、そのような用途は、この使用において回避される。
規範的または参考情報としての章の分類は、章全体に適用される。
参考情報の章は、この仕様を理解するのに有益な情報を提供する。そのような章は、推奨されるプラクティスの例を含むかもしれないが、この仕様に準拠するためにそのような推奨に従うことを必要としない。
名前および説明計算の出発点は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によって参照されるノードに設定する。current node
のテキストによる代替を計算する。result
をそのテキストによる代替に設定する。result
をaccumulated text
に追加する。accumulated text
を返す。Hidden Not Referencedと組み合わせたLabelledBy Recursionの結果は、aria-labelledby
またはaria-describedby
によって参照されるノードが非表示の場合、ユーザーエージェントが、サブツリー内のすべてのノードをアクセシブルな名前またはアクセシブルな説明の一部として含めなければならないことを意味する。
current node
が別のウィジェットのラベル内に埋め込まれたコントロール(たとえば、aria-labelledby
によって直接参照される任意の要素)であり、ユーザーが埋め込みコントロールの値を調整できる場合、次の方法で埋め込みコントロールを代替テキストの一部として返す:
current node
がaria-label
属性を持ち、その値が未定義でも、空文字列でも、空白を削除しても空文字列ではない場合:current node
のトラバースが再帰によるものであり、かつ、current node
が埋め込みコントロールである場合、aria-label
を無視してルールEmbedded Controlに飛ぶ。aria-label
の値を返す。current node
のネイティヴマークアップが代替テキストを定義する属性(たとえばalt
)または要素(たとえば、HTML label
、SVG title
)を提供する場合、その代替はホスト言語によって定義されたflat string
の形式で返す。ただし、要素がプレゼンテーショナル(role="presentation"
or role="none"
)とマークされている場合は除く。
たとえば、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]は、コンテンツモデルを持つ要素に対してテキストコンテンツを提供できる。::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: