Copyright © 2015-2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
SVG Accessibility API Mappings (SVG-AAM) は、ユーザーエージェントが Scalable Vector Graphics (SVG) [SVG2] マークアップをプラットフォームの アクセシビリティ・アプリケーション・プログラミング インターフェイス (API) にどのようにマッピングするかを定義する。これは、ユーザーエージェントにおける SVG アクセシビリティを担当する SVG ユーザー エージェント開発者を対象としている。
この仕様は、SVG 作者が、チャート、グラフ、およびその他の描画を含むアクセシブルな リッチインターネットアプリケーションを作成できるようにする。これは、 Core Accessibility API Mappings 1.1 (CORE-AAM) [CORE-AAM] および Accessible Name and Description: Computation and API Mappings 1.1 (ACCNAME-AAM) [ACCNAME-AAM] 仕様を ユーザーエージェント向けに拡張することで実現する。これは、 それらの中核マッピングを活用し、SVG 固有の ガイダンスを提供して、SVG ユーザーエージェントが Web コンテンツにおいて WAI-ARIA [WAI-ARIA] を通じて提供される キーボードフォーカスならびに role、state および property 属性に どのように応答しなければならないかを定義する。SVG-AAM はまた、プラットフォームのアクセシビリティ API に公開されるアクセシブルな名前および説明 情報を計算するために使用される標準的な SVG 機能を利用できるように、ACCNAME-AAM を適合させる。
SVG-AAM は、 WAI-ARIA 概要で説明される WAI-ARIA スイートの一部である。
この節は、公開時点におけるこの 文書の状態を説明する。現在の W3C 公開物の一覧およびこの技術報告書の最新リビジョンは、 W3C 標準および草案 索引で確認できる。
我々は、この仕様を SVG 2.0 の変更に合わせるため更新中である。これは古い 情報と誤りを含む初期草案である。この草案に基づいて実装しないこと。
コメントするには、SVG AAM GitHub リポジトリで課題を提出すること。単一の課題で 複数のトピックにコメントするのではなく、トピックごとに別個の GitHub 課題を作成すること。課題を提出するための GitHub アカウントは無料で作成できる。コメントする前に、 関連するコメントがないか SVG AAM GitHub リポジトリをまず確認すること。GitHub で 課題を提出することが現実的でない場合は、public-svg-a11y@w3.org (過去のコメントのメールアーカイブ) へメールすること。
特に問題のある未解決の課題は、この文書内で GitHub 議論へのリンクとともに強調表示される。 これらの課題に対するコメントは特に歓迎される。
前回公開された作業草案 (2018年5月10日) と比較して、次の変更が行われた:
以前に公開された作業草案 (2016年9月8日) と比較して、次の主要な変更が 行われた:
use 要素のシャドウ DOM コンテンツの扱いが
変更された。さらに、多数の明確化のための編集が行われた。
この文書は当初、Accessible Rich Internet Applications Working Group と SVG Working Group により、 SVG Accessibility Task Force を通じて共同で開発された。現在は ARIA Working Group が、ARIA および SVG Working Groups によって開発される他の仕様と連携して 作成している。
この文書は、 Accessible Rich Internet Applications Working Group により、 勧告 トラックを用いて 作業草案として公開された。
作業草案としての公開は、 W3C およびその会員による 承認を意味しない。
これは草案文書であり、いつでも他の文書によって更新、置換、または廃止される可能性がある。 この文書を進行中の作業以外のものとして引用することは不適切である。
この文書は、 W3C 特許 ポリシーの下で運営される グループによって作成された。 W3C は、 グループの成果物に関連して行われた すべての特許開示の公開リスト を維持している。そのページには 特許を開示するための手順も含まれている。個人が、当該個人が 必須クレーム を含むと信じる特許について実際の知識を有する場合、 W3C 特許ポリシー第6節に従ってその情報を開示しなければならない。
この文書は、 2025年8月18日 W3C プロセス文書によって管理される。
この節は非規範である。
この仕様は、SVG ホスト言語の要素および コンテンツ — WAI-ARIA ロール、状態、 およびプロパティが 適用されているかどうかにかかわらず — が、アクセシビリティ API にどのようにマッピングされるかを定義する。各節では、 テキスト代替の計算、アクションの イベントへのマッピング、イベント処理、特別な文書 処理手順、およびエラー処理に関するガイダンスを提供する。
この序論は、この仕様が存在する理由、および他の WAI-ARIA 仕様とどのように関連するかについて、いくつかの背景を示す。アクセシビリティ API の一般的な 概要と、 アクセシブルオブジェクトの階層、すなわち アクセシビリティツリーとして知られるものを含む。
従来のグラフィカルユーザーインターフェイス (GUI) アプリケーションでは、ユーザーインターフェイス (UI) のコンポーネントは、ユーザー操作に基づいて、 必要なときに表示され、不要なときに隠される。 アクセシビリティ API は、ユーザーインターフェイスに関する セマンティクスを、 障害のある人々が使用する 支援 技術 に伝達するために使用される。
これらの API は、スクリーンリーダー、拡大鏡、代替入力 デバイス、音声コマンドおよび制御などの アプリケーションと支援技術との間の契約を構成し、インタラクティブなアプリケーションまたは複雑な文書に対する 使用可能な代替を生成するために必要な適切なセマンティクスへアクセスできるようにする。たとえば、 視覚障害のあるユーザー向けのスクリーン読み上げソフトウェアは、特定の UI コンポーネントがメニュー、ボタン、テキストフィールド、リストボックスなどであるかどうかを判定できる。また、 表やリスト内の情報を、各テキスト片に文脈を提供する方法で提示することもできる。
Web 文書およびアプリケーションでは、本質的なセマンティック情報は Document Object Model (DOM) 内にカプセル化される。支援 技術は、この情報を ユーザーエージェント (Web ブラウザー) から取得し、ユーザーエージェントは要素 および属性をプラットフォームのアクセシビリティ API にマッピングする。
Scalable Vector Graphics (SVG) 文書では、ほとんどの SVG 要素は、 支援技術にとって価値のあるセマンティック情報を提供しない。代わりに、それらは 低レベルのベクターグラフィックス描画指示を表す。その要素は、作者が代替テキスト、説明、または WAI-ARIA セマンティクスを提供した場合にのみ、支援 技術にとって意味を持つ。
SVG 仕様のバージョン 1 [SVG1] およびバージョン 1.1
[SVG11] は、
アクセシブル
名前および
説明
(<title> および <desc>) を定義するための要素を含んでいた。しかし、この仕様より前には、
ユーザーエージェントがこの情報を支援技術へどのように公開すべきか、または
WAI-ARIA
をサポートするホスト言語およびバリデーターとどのように統合すべきかについて、
規範的なガイダンスはなかった。同様に、
ユーザーエージェントがインタラクティブな SVG をどのように
キーボード
アクセシブルにすべきかについてのガイダンスもなかった。
SVG 2 は現在、HTML 5 から確立されたモデルに基づく
キーボードナビゲーションを組み込んでいる。ユーザーエージェントは、
デフォルトでインタラクティブな SVG 要素
(リンク、およびコントロールを持つ audio/video 要素)、または作者がフォーカスを受け取る可能性があると示した要素
(tabindex 属性の使用による) に対して、
順次フォーカスナビゲーションを提供する。フォーカスはスクリプトによってプログラム的に設定または削除することもできるため、
作者はより複雑なキーボードフォーカスパターンを実装できる。
SVG は、中核となる DOM Standard [DOM] と密接に整合しており、インタラクティブな環境における グラフィックの JavaScript 操作をサポートする。JavaScript、 CSS、および関連する API を使用することで、作者は SVG をインタラクティブなアプリケーションのように見せ、振る舞わせ、 リッチなインタラクティブチャートや描画を生成できる。
作者が静的グラフィックおよびインタラクティブグラフィックの双方で意図したセマンティクスを表現し、動的に更新できるようにするため、 SVG 2 は WAI-ARIA ロール、状態、およびプロパティの使用をサポートする。 作者は WAI-ARIA 属性をマークアップに含めることができ、ユーザー エージェントはそれをプラットフォームのアクセシビリティ API へ変換する。
WAI-ARIA により、SVG で描画されたリッチなインターネットアプリケーションは、オペレーティングシステムにインストールされた GUI アプリケーションと同じ アクセシビリティ機能を持つことができる。複雑な静的グラフィックにおいて、WAI-ARIA は、 セマンティック要素によって HTML で提供される 欠けている文書構造を提供する。
WAI-ARIA の導入については、 WAI-ARIA 概要を参照。
SVG Accessibility API Mappings 仕様 (この文書) は、 WAI-ARIA 機能が SVG 言語のネイティブセマンティクス とどのように相互作用するかを定義する。これは、 WAI-ARIA 仕様を定義およびサポートするリソース群の一部であり、次の 文書を含む:
このガイドは、 Core Accessibility API Mappings および Accessible Name and Description 仕様 ([CORE-AAM] および [ACCNAME-AAM]) で定義されるアクセシビリティ API マッピングに大きく依拠するが、 SVG ホスト 言語 [SVG2] の機能によるマッピングの 変更を定義する。差異の主要な領域は、SVG の内在的なホスト 言語セマンティクスに由来する:
GUI アプリケーションへのアクセスを提供するため、ソフトウェア アプリケーションは、それと相互運用するために 支援 技術が必要とする情報を、 アクセシビリティ APIを通じて公開する。 アクセシビリティ API を通じて公開されるアクセシビリティ情報は、 アプリケーションのライフサイクル全体を通じて維持されなければならない。
Web ページでは、Document Object Model (DOM) が、 状態および 要素の構造を表すために使用され、 それらは ユーザーエージェントによってレンダリングされる文書内にある。文書の要素は、 DOM ツリーとして知られるノードの階層に編成される。ユーザーエージェントは、 デスクトップアプリケーションが UI コンポーネントをマッピングするのと同じ方法で、DOM をアクセシビリティ API にマッピングする。アクセシビリティ API へ提供される情報は、 支援技術をサポートするために使用され、DOM から渡される情報が作者のセマンティックな意図と一致することが期待される。作者は、 文書言語のネイティブ機能を使用するか、ネイティブ機能が利用できない場合には WAI-ARIA を使用することで、このセマンティックな意図を伝達できる。
作者は SVG を使用して、幅広いアプリケーション および描画を作成する。SVG においてアクセシビリティ API をサポートするために必要な情報は、 要素自体からのセマンティクスと、 WAI-ARIA およびこの 仕様がサポートする WAI-ARIA へのモジュール式拡張によって提供される追加のセマンティクスとの組み合わせから得られる。
スクリーンリーダーまたはその他の支援技術は、 アクセシビリティ API を通じて公開されるセマンティック情報を使用して、ユーザーにとって意味のあるアプリケーションの代替レンダリングを提供する。
この文書 (およびそれが拡張する他の仕様) によってサポートされる アクセシビリティ API は次のとおりである:
ユーザーエージェント開発者が他のアクセシビリティ API を使用して情報を公開する必要がある場合、 その API が実行されるプラットフォームの 開発者、およびそのプラットフォーム上の支援技術開発者と密接に協力することが推奨される。
アクセシビリティツリーと DOM ツリーは並行する構造である。大まかに言えば、 アクセシビリティツリーは、フラット化された DOM ツリーの部分集合であり、 その後、文書のオブジェクトに加えて、 オブジェクトであるユーザーインターフェイス を含むように拡張される。これは ユーザーエージェント のオブジェクトでもある。
アクセシブルオブジェクトは、 支援 技術へ公開されるべきすべての DOM 要素 に対して、アクセシビリティツリー内に作成される。要素は、アクセシビリティ イベントを発火する可能性があるため、または公開する必要のある プロパティ、関係、もしくは機能を持つために、公開される可能性がある。
一般に、意味に影響を与えることなく DOM 要素を
アクセシビリティツリーから省略できる場合、性能および単純さの理由からそうされる。たとえば、
単なるスタイル変更のみを持ち、セマンティクスを持たない
<span> は、
独自のアクセシブルオブジェクトを取得しない場合があるが、そのスタイル変更は他の手段によって公開される。
非規範として示された節に加えて、この仕様内のすべての作成ガイドライン、図、例、および注記は 非規範である。この仕様内のそれ以外のすべては規範的である。
この文書におけるキーワード MAY、MUST、MUST NOT、OPTIONAL、RECOMMENDED、REQUIRED、SHALL、SHALL NOT、SHOULD、および SHOULD NOT は、 ここに示すようにすべて 大文字で現れる場合に限り、 BCP 14 [RFC2119] [RFC8174] に記述されるとおりに解釈される。
この仕様は、特定の節を非規範、すなわち参考情報として示す。その分類は 節全体に適用される。それ以外のすべての節は規範的要件を提供する。 「この節は非規範である」という記述は、特に示されない限り、そのすべての下位節に適用される。 さらに、「Note」とラベル付けされたすべてのテキストボックスは参考情報である。
規範的な節は、この仕様に適合する実装のために
ユーザーエージェントが従わなければならない要件を提供する。
この文書におけるキーワード MUST、MUST
NOT、REQUIRED、SHALL、SHALL
NOT、
SHOULD、RECOMMENDED、MAY、および
OPTIONAL は、
Keywords for use in RFCs to indicate
requirement levels [rfc2119]
に記述されるとおりに解釈される。RFC-2119
キーワードは大文字で整形され、
class="rfc2119" を持つ要素に含まれる。上記に示すキーワードが使用されるが、
この形式を共有しない場合、それらは RFC 2119 の意味での正式な情報を伝達せず、
単に説明的、すなわち参考情報である。可能な限り、この仕様ではそのような用法を避けている。
参考情報の節および注記は、仕様の理解に役立つ情報を提供する。そのような 節には推奨される実践の例が含まれる場合があるが、この仕様に適合するために、そのような 推奨に従うことは要求されない。
Web アプリケーションにおいてキーボードナビゲーションを可能にすることは、アクセシブルな Web アプリケーションを可能にするために必要な一歩である。キーボードは多くのユーザーにとって主要な入力デバイスであるだけでなく、 他のアクセシブルな入力デバイスも、ユーザーエージェントと通信するためにキーボードイベントを使用する。
Scalable Vector Graphics (SVG) 1 [SVG1] および 1.1 [SVG11] 仕様には、
非常に限定的なキーボードサポート (アニメーションのアクセスキー) しか
含まれていなかった。多くのユーザーエージェントはリンクに対するタブ付き
フォーカスを実装していたが、作者がこの振る舞いを制御するための宣言的またはスクリプトによる手段はなかった。
Scalable Vector Graphics (SVG) 2 [SVG2]
は、
HTML tabindex モデルに基づく
キーボードナビゲーションおよびフォーカス制御を導入する。
適合するユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における Supporting Keyboard Navigation 要件に MUST 適合しなければならない。
SVG Accessibility Task Force は、 グラフィカル文書におけるナビゲーションに関して、作者およびユーザーエージェント向けのより詳細な ガイドラインを策定する予定である。
WAI-ARIA サポートは、Scalable Vector Graphics (SVG) 2 [SVG2] において SVG に正式に導入され、既定の名前空間で ARIA 属性を使用できるようになった。この節は、WAI-ARIA セマンティクスが、プラットフォームのアクセシビリティ API を通じて支援技術へどのように公開されるか、および SVG 要素が WAI-ARIA に基づいてアクセシビリティ API へどのようにマッピングされるかを定義する。
SVG ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における WAI-ARIA セマンティクスを公開するための一般規則に MUST 適合しなければならず、以下の下位節で説明する追加事項も含まれる。
DOM 内の特定の要素は、 アクセシビリティ API を通じて公開されない。Core Accessibility API Mappings [CORE-AAM] の アクセシビリティツリーからの 要素の除外 の節は、要素を除外するための一般規則を概説する。その一要因は、ホスト言語セマンティクスが、その要素を 表示すべきではないと指定しているかどうかである。
SVG 言語は、この基準に合致する多数の要素を定義している。 多くの SVG 要素は画面へ直接レンダリングされることはなく、 一方で、文脈または CSS スタイル付けによって、レンダリングまたは表示される場合も されない場合もある。知覚可能でもインタラクティブでもない要素は、アクセシビリティ API へ公開されるアクセシビリティツリーに含めるべきではない。この節では、 SVG ホスト言語セマンティクスの期待される解釈を詳述する。
Core Accessibility API Mappings で説明される、要素を除外するためのその他の要因は、次のように 要約できる:
none または
presentation
である場合、
その要素は公開されてはならない。
true の値を持つ aria-hidden
がある場合、それは公開されるべきではない。
button および
img ロールは、
すべての子コンテンツがアクセシビリティツリーに直接含まれることを除外する。
ただし、インタラクティビティなど、要素のいくつかの機能により、
作者が提供した、または継承した
none もしくは presentation のロールが、
エラーとして無視される可能性があることに注意すること。
要素がユーザー操作に基づいて現在フォーカスを受け取れる場合、その要素は除外されない。
画面へ直接レンダリングされることも、グラフィック内のインタラクティブ領域によって表現されることも決してない要素は、
対応するアクセシブルオブジェクトを必要としない。ユーザーエージェントは、
SVG 要素マッピング
表において no accessible object created と示される要素、またはその
子孫コンテンツを、
アクセシビリティツリー内の
アクセシブル
オブジェクトとして
MUST NOT 含めてはならない。ユーザーエージェントは、過去または将来の
SVG
仕様またはモジュールによって定義される、要素が
決して直接レンダリングされないことを明示するその他の要素も
SHOULD
除外すべきである。
たとえば、フィルター、グラデーション、またはグラデーションストップを表す要素は、アクセシブルオブジェクトを決して作成しない。
SVG 定義
セクション内、またはパターンの一部として含まれるシェイプ要素または画像要素も、アクセシブルオブジェクトを持たない。
なぜなら、祖先の
defs または pattern 要素のセマンティクスが、その DOM サブツリー全体をアクセシビリティ
ツリーで表現することを妨げるからである。
アクセシビリティ
ツリーから除外された要素は、
名前および説明の節で定義されるように、別の要素の名前および説明の計算でなお使用される可能性がある。
非レンダリング要素は、Use 要素シャドウツリーの節で説明されるように、
use 要素によって作成されるレンダリング済み要素インスタンスのテンプレートとしても使用される場合がある。
アニメーション要素およびビュー要素は、アクセシビリティツリーに直接含まれないが、 追加の計算を必要とする特別な処理で説明されるように、 それらの対象要素を表すアクセシブルオブジェクトへ影響を与える可能性がある。
さらに、SVG 1.1 [SVG11] は、
条件付き処理属性
systemLanguage、requiredExtensions、および requiredFeatures を定義する。
これらは、特定の条件下でコンテンツがレンダリングされることを防ぐため、またはコンテンツの代替
バージョン間で選択するために、個別に、または switch 要素と組み合わせて使用できる。
SVG ユーザーエージェントは、その要素上の条件付き処理属性のため、または
switch 構成内におけるその要素の位置のためにレンダリングされない任意の要素を、アクセシビリティ API へ
MUST NOT 公開してはならない。switch 要素
自体は、none または presentation のロールを持つかのように
SHOULD 省略されるべきである。
SVG 要素のレンダリングは、
CSS スタイルプロパティによっても影響を受ける。これは、
スタイルシート規則、インラインスタイル、プレゼンテーション属性、またはアニメーションを使用して指定される場合がある。
スタイルプロパティがどのように指定されるかにかかわらず、その効果は CSS
カスケード [CSS-CASCADE-3]
によって決定される最終的な計算値に依存する。ユーザーエージェントは、
計算スタイルが
display
プロパティに none の値を含むためにレンダリングされない要素を、アクセシビリティ API へ
MUST NOT 公開してはならない。
その他のスタイルプロパティは、レンダリングツリーの一部である要素が、レンダリングされたグラフィック内で可視表現を作成することを妨げる可能性がある。 そのような要素は、なおインタラクティブである場合がある。すなわち、キーボードフォーカスを受け取る場合や、ポインター入力イベントに応答するグラフィック領域と関連付けられている場合がある。
SVG の目的上、要素は、
visibility
プロパティの計算値に従って可視でなく、かつ
pointer-events
プロパティに従ってポインターユーザーに対してインタラクティブでない場合に、隠されていると見なされる。ユーザーエージェントは、
作者が aria-hidden 属性を
false に設定して明示的に隠蔽を上書きしていない限り、
この意味で隠されている任意の要素をアクセシビリティ API へ
SHOULD NOT
公開すべきではない。
コンテナー要素 (g や svg など) の場合、その子孫コンテンツの
いずれかが可視である、またはユーザーイベントを受け取ることができるなら、その要素自体の
visibility の計算値にかかわらず、その要素は隠されているとは見なされない。同様に、use 要素は、
個別のシェイプ要素を隠す原因となるスタイルプロパティを持っているにもかかわらず、可視またはインタラクティブな構成グラフィックを含む場合がある。
そのシャドウツリー内の任意の要素が可視またはインタラクティブである場合、use 要素は可視またはインタラクティブであると
MUST 見なされなければならない。(ただし、コンテナーまたは use 要素は、
アクセシビリティツリーに含めるその他の理由を持たない場合、なおプレゼンテーション用と見なされる可能性がある。)
マーカーを持つシェイプ要素は、そのマーカーのいずれかが可視またはインタラクティブである場合、可視またはインタラクティブである。
HTML およびその他の CSS スタイル付き文書では、
visibility: hidden によって不可視にされた要素は、アクセシビリティ目的では常に隠された要素であり、
非レンダリング要素 (display: none を持つものなど) と同等である。
SVG では、
pointer-events プロパティとの相互作用のため、これは常に適切であるとは限らない。
多くの場合、不可視要素は (インタラクティブであるため) セマンティックに重要であり、一方で可視要素はプレゼンテーション専用である。 たとえば、大きな不可視要素は、地図またはデータチャート内の点に対して押しやすいターゲットを提供するためによく使用される。 これらの要素はポインターイベントに反応するため、ポインターユーザーにとって実質的に知覚可能であり、 支援技術のユーザーにとっても知覚可能かつインタラクティブであるべきである。
計算値 visibility: hidden を持つ
SVG 要素は、
pointer-events
プロパティの次の値について、ポインターユーザーに対してインタラクティブになる可能性がある:
painted。ただし、fill および stroke プロパティの双方が
none の計算値を持つシェイプまたはテキストを除く任意のレンダリング済み要素
fillstrokeallbounding-box現在画面外に配置されている要素、または他の要素によって覆い隠されている要素は、隠されているとは見なされない。 ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] の 状態およびプロパティの マッピング 節で説明されるように、この状態を他の手段を通じて公開すべきである。
その他のさまざまなスタイルプロパティおよび幾何属性 (要素自体または祖先 要素のもの) は、要素を不可視にする可能性がある。単純さ、柔軟性、および性能上の理由から、 これらは要素をアクセシビリティツリーから除外する隠蔽方法とは見なされない。
非アクティブなコンテンツを隠すために display または visibility 以外のプロパティを使用する場合、
作者は
aria-hidden
属性を使用して、支援技術がその要素およびその子孫を無視すべきであることを示すことができる。
この仕様の以前の草案では、fill および stroke プロパティが双方とも
none の値に設定されている場合も、要素を隠す有効な方法として考慮していた。これは過度な
複雑さを導入したため削除された。一部の SVG 要素 (たとえば埋め込み
画像) は stroke および fill の影響を受けない。また、影響を受ける要素であっても、マーカーやフィルター効果により、それらなしで可視になることがある。
さらに、同一に見えるグラフィック (たとえば、fill: none の代わりに
fill: transparent を使用したもの) が、著しく異なるアクセシビリティツリーを持つ結果を招く可能性がある。
ただし、fill および stroke プロパティは、
pointer-events プロパティの値によって、要素の包含に間接的な影響をなお与える可能性があることに注意すること。
desc を含む非レンダリングのメタデータ要素をアクセシビリティツリーから厳格に除外することは、
それらのコンテンツがプレーンテキストとしてのみ利用可能であり、ユーザーがブラウズモードでナビゲートできる構造化された代替表現としては利用できないことを意味する。
これは、SVG 仕様の当初の意図と矛盾する。その仕様は、これらの要素が HTML 名前空間付きコンテンツを含む構造化コンテンツを含めることを許容している。SVG 1 仕様は、 これを CSS で整形された XML テキストとして代替提示できる可能性を示唆していたが、 これは現在使用されているユーザーエージェント/支援技術の組み合わせではサポートされていない。
編集者は、ユーザーエージェントおよびアクセシビリティ API 実装と整合する方法で、この隠された代替コンテンツを表現する代替方法について、 GitHub Issue #6 におけるフィードバックおよび提案を歓迎する。
多くの SVG 要素は、画面へレンダリングされるものの、 内在的なセマンティックな意味を持たない。代わりに、それらは文書の視覚的提示のコンポーネントを表す。文書のアクセシブルな表現を 簡素化するため、これらの純粋にプレゼンテーション用の要素は、作者が明示的に セマンティックコンテンツを提供しない限り、通常アクセシビリティツリーから省略されるべきである。
しかし、レンダリングされる任意の SVG 要素は、セマンティックな 意味を持つ場合がある。作者は、代替テキストコンテンツまたは WAI-ARIA 属性を含めることで、その要素の重要性を示す。この節は、 通常省略される要素をアクセシビリティツリーに含めるための規則を定義する。
SVG 名前空間内の次のグラフィック要素およびコンテナー要素は、 この節で説明される場合を除き、アクセシビリティツリーに含める SHOULD NOT べきではない:
circle,
ellipse, line, path, polygon,
polyline, rect)
use 要素g) 要素image 要素mesh 要素textPath,
tspan)
foreignObject 要素
これらの要素はアクセシビリティツリーから省略されるが、その子コンテンツ
は、アクセシビリティツリーに含まれる DOM ツリー内の最も近い祖先ノードの直接の子であるかのように、
なお処理される。言い換えれば、マークアップ要素は
none または presentation のロールを持つかのように扱われる。
use 要素については、その関連シャドウツリー内の要素およびテキストは、
追加の計算を必要とする処理で指定される条件に従って、
use 要素の子コンテンツであるかのように処理
MUST されなければならない。
これは、use 要素自体が (既定または作者指定の) presentation のロールを持っている場合でも、
シャドウツリーからの要素がアクセシビリティツリーに含まれる可能性があることを意味する。
SVG ユーザーエージェントは、 アクセシビリティツリーからの要素の除外における規則に従ってアクセシビリティツリーから除外されない限り、 次の基準のいずれかを満たす、レンダリングされた SVG 要素について、 アクセシビリティツリー内にアクセシブルオブジェクトを MUST 提供しなければならない:
none または
presentation 以外の、許可された非抽象の
WAI-ARIA ロールを提供している。
この文書の作成時点では、それらの基準は次のとおりである:
aria-activedescendant
属性を持つ祖先を持つ要素。いずれの場合も、その要素はフォーカスを受け取り、 FOCUS イベントを発火する必要がある可能性がある。
aria-hidden="true"
を持たない要素。
(aria-hidden に関する追加のガイダンスについては、アクセシビリティツリーにおける
要素の除外を参照。)
aria-controls, aria-describedby,
aria-flowto,
aria-labelledby
または aria-owns)
を介して参照され、かつ
隠されていない ID
を持つ要素。
規範的なテキストについては、ソース文書 [CORE-AAM] の最新版を参照すべきである。
隠された要素に対する例外は、SVG メタデータ要素またはその他の非レンダリング
コンテンツが、それ自体がアクセシビリティツリーに含まれることなく、
別の要素のアクセシブルな名前および説明に使用される可能性があることを意味する。たとえば、現在のフォールバック
ブラウザーサポートのベストプラクティスは、aria-labelledby および aria-describedby
を使用して、title および desc 子要素へ冗長にリンクすることである。
これらの要素をツリー内の別個のノードとして含めると、スクリーンリーダー
ユーザーに提示される文書を不必要に複雑にしてしまう。
インタラクティブ要素は、アクセシビリティ API イベントを発火する可能性のある要素に関する要件によって扱われる。具体的には、 SVG について、次の要素はインタラクティブであり、その他の場合に隠されている、またはプレゼンテーション用と見なされるかどうかにかかわらず、例外なく アクセシビリティツリーに含まれ MUST なければならない:
tabindex 属性に正の整数値を持つ、または既定で
フォーカス可能であり、負の整数の
tabindex 属性によってタブ順序から削除されていない
レンダリング済み要素
(または use 要素シャドウツリー内の要素のインスタンス)。これはキーボードフォーカスを受け取り、
したがってキーボード入力イベントを受け取る可能性がある。
DOM ツリーをバブルアップするポインターイベントに関しては、
イベントを受け取る正確な要素がセマンティックな意味を持たない場合がある (すなわち、なおプレゼンテーション用である場合がある)。
しかし、ポインターイベントを受け取る能力は、
visibility: hidden スタイルプロパティに基づく任意の除外を上書きする。
tabindex 属性および pointer-events プロパティは、
display: none プロパティまたはホスト言語セマンティクスのためにまったくレンダリングされない要素には影響しない。
ホスト言語が SVG であり、ネイティブセマンティクスが SVG 要素マッピング 表、状態およびプロパティのマッピングの節、および 追加の計算を必要とする特別な処理の節で説明されるものである場合、 SVG ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における ネイティブマークアップのセマンティクスと WAI-ARIA との競合 に MUST 適合しなければならない。
SVG 要素マッピング 表で定義されるように、アクセシブルオブジェクトが作成されず、ロールを適用できない要素は、暗黙のロール セマンティクスを持たない。 ‘aria-roledescription’ 属性は、これらの要素上では公開 MUST NOT されてはならない。その他すべての SVG 要素は、 ‘aria-roledescription’ を含むグローバル WAI-ARIA 属性とともに使用される場合、 暗黙のロールセマンティクスを持つ。
SVG ユーザーエージェントは、 Core Accessibility API Mappings [CORE-AAM] における アクセシビリティ API プロパティへ直接マッピングされない属性の公開に MUST 適合しなければならない。
プラットフォームの アクセシビリティ API には従来、そのプラットフォーム上の 支援 技術が期待する、有限個の定義済み ロールがあり、 1つまたは2つのロールのみが公開される場合がある。
WAI-ARIA は一度に1つのアクティブなロールのみをサポートする。しかし、複数のロールは、空白区切りの有効なロールトークンの順序付き集合として指定してもよい。 追加のロールはフォールバックロールであり、最初に選択したフォントがサポートされない場合に複数のフォントファミリーを指定する概念に似ている。これにより、 将来、特殊なアプリケーション向けにロール分類体系を拡張できる。可能な場合、ロール文字列全体がアクセシビリティ技術へ公開されるため、 プラットフォーム API に同等のロールがない場合でも、適切に応答できる。
SVG ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における、Role Mapping の General Rules アクセシビリティ API 計算要件に MUST 適合しなければならない。
この節は、SVG2 内の要素が、ネイティブのホスト言語
セマンティクスに基づいて、WAI-ARIA ロールおよびプラットフォームのアクセシビリティ
API へどのようにマッピングされるかを定義し、どの WAI-ARIA ロールを
適用してよいかも含む。
この節は、
Core Accessibility API Mappings [CORE-AAM] 仕様における
Role Mappings
と、Graphics Accessibility
API Mappings [GRAPHICS-AAM] 仕様における Role Mappings
の双方を直接参照する。これらは、
WAI-ARIA ロールがプラットフォームの
アクセシビリティ API へどのようにマッピングされるかを定義する。
| SVG 仕様 |
a
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が有効な href または xlink:href 属性を持つ場合、
link ロール。
リンクではない a 要素については、a 要素が text の子孫である場合は
tspan のマッピングを使用し、それ以外の場合は g のマッピングを使用する。
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
animate
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
animateMotion
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
animateTransform
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
audio
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | HTML Accessibility API Mappings 仕様 [HTML-AAM] における HTML audio 要素の推奨事項に従う。 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
application ロール
|
| SVG 仕様 |
canvas
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | HTML Accessibility API Mappings 仕様 [HTML-AAM] における HTML canvas 要素の推奨事項に従う。 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
circle
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
graphics-symbol
ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
clipPath
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | この要素または任意の子コンテンツについて、アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
defs
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | この要素または任意の子コンテンツについて、アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
desc
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | この要素または任意の子コンテンツについて、アクセシブルオブジェクトは 作成されない。名前および説明のマッピングを参照 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
ellipse
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
graphics-symbol
ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
feBlend
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feColorMatrix
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feComponentTransfer
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feComposite
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feConvolveMatrix
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feDiffuseLighting
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feDisplacementMap
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feDistantLight
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feDropShadow
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feFlood
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feFuncA
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feFuncB
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feFuncG
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feFuncR
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feGaussianBlur
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feImage
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feMerge
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feMergeNode
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feMorphology
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feOffset
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
fePointLight
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feSpecularLighting
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feSpotLight
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feTile
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
feTurbulence
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
filter
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
foreignObject
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
group ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
g
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
group ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
iframe
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | HTML Accessibility API Mappings 仕様 [HTML-AAM] における HTML iframe 要素の推奨事項に従う。 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
application, document, img
|
| SVG 仕様 |
image
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
img ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
line
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
graphics-symbol
ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
linearGradient
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
marker
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
mask
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
metadata
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | この要素または任意の子コンテンツについて、アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
mpath
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
path
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
graphics-symbol
ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
pattern
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | この要素または任意の子コンテンツについて、アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
polygon
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
graphics-symbol
ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
polyline
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
graphics-symbol
ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
radialGradient
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
rect
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
graphics-symbol
ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
script
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
set
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
source
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | HTML Accessibility API Mappings 仕様 [HTML-AAM] における HTML source 要素の推奨事項に従う。 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
stop
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
style
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
svg
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
graphics-document
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
switch
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
symbol
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
graphics-object
ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
注記
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
text
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
group ロール。ただし、次の
プラットフォーム固有の API マッピングを伴う:
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
textPath
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
group ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されないが、テキストスタイルの変更は、サポートされる場合、親
text 要素のプロパティを通じて公開
SHOULD されるべきである
課題
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
title
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない。名前および説明のマッピングを参照 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
track
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | HTML Accessibility API Mappings 仕様 [HTML-AAM] における HTML track 要素の推奨事項に従う。 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
| SVG 仕様 |
tspan
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
group ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されないが、テキストスタイルの変更は、サポートされる場合、親
text 要素のプロパティを通じて公開
SHOULD されるべきである
課題
|
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
use
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング |
要素が
アクセシビリティツリーへの要素の包含の基準を満たす場合は
graphics-object
ロールマッピング。それ以外の場合、
アクセシブルオブジェクトは
作成されない
注記
編集者注
この仕様の以前の草案では、再利用された
グラフィック要素を直接公開することは要求されていなかった。 再利用されたグラフィックを直接公開する変更に対応して、 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
任意のロール。Core Accessibility API Role Mappings
および
Graphics Accessibility API Role Mappings
を参照
|
| SVG 仕様 |
video
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | HTML Accessibility API Mappings 仕様 [HTML-AAM] における HTML video 要素の推奨事項に従う。 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング |
application ロール
|
| SVG 仕様 |
view
|
|---|---|
| 既定のプラットフォーム WAI-ARIA ロールマッピング | アクセシブルオブジェクトは 作成されない。特別な処理要件については、SVG ビューの節を参照 |
| 許可される WAI-ARIA ロールおよび プラットフォーム WAI-ARIA ロール マッピング | ロールは適用できない |
textPath
および tspan
に対する group ロールの使用は、別個のオブジェクトを形成するテキストコンテンツの範囲に対する
汎用コンテナーとしてのものである
(補足的な代替テキストラベルまたは説明を持つため、または
インタラクティブであるため)。
ARIA 1.1 には、非インタラクティブなテキスト範囲に対するロールは存在しない。
テキスト固有のプラットフォームアクセシビリティ API
ロールが、この機能をより効果的に果たせるかどうかに対処するには、
さらなる作業が必要である。特に ATK では、
ATK_ROLE_STATIC ロールの方が、
group の通常のマッピングよりも適切である可能性が高い。
改善されたマッピングの提案は、GitHub Issue #2) で歓迎される
この節は、WAI-ARIA の 状態および プロパティをどのように公開するかを説明する。SVG ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における State and Property Mapping アクセシビリティ API 計算 要件に MUST 適合しなければならない。
さらに、SVG 要素上の次の属性は 特別な処理を必要とする:
audio または
video 要素上の
controls
は、
HTML Attribute
State and Property Mappings [HTML-AAM]
で定義されるように解釈される。
tabindex
は、
HTML Attribute
State and Property Mappings [HTML-AAM]
で定義されるように解釈される。
view 要素上の
viewTarget
は、ビューがアクティブな場合、SVG
ビューの節で定義されるように、関連付けられた
svg 要素上に
aria-flowto 関係を作成する。
xlink:title
は、アクセシブルな 名前および説明
計算に影響する。
ここで xlink 接頭辞は XLink 名前空間
http://www.w3.org/1999/xlink を参照するために使用される。
その名前空間にある指定された名前の属性は、名前空間がマークアップまたはスクリプトを介してどのように適用されるかにかかわらず、
ここで説明されるように処理されるべきである。XLink 名前空間付き属性は
SVG 2 [SVG2] で非推奨であるが、
後方互換性を維持するため、ユーザーエージェントはなお
それらを処理することが期待される。とはいえ、SVG 2 は、
既定の
名前空間内の href 属性が、同等の XLink 属性と同一要素上で両方設定されている場合に、XLink に優先することを
要求している。その場合、
XLink 版は名前および説明の計算の目的では有効ではない。
指定された要素の実効属性、したがって状態およびプロパティのマッピングは、 アニメーションの節で説明されるように、 宣言的アニメーションの影響を受ける場合がある。
アクセシブルな名前またはアクセシブルな説明を計算する場合、ユーザーエージェントは、Accessible Name and Description 仕様 [ACCNAME-AAM] の Text Alternative Computation と題された節に、MUST 適合しなければならない。ただし、 SVG ホスト言語については次の変更を伴う:
現在のノード走査がaria-labelledbyまたはaria-describedby参照をたどった結果でない場合で、かつ現在のノードが アクセシビリティツリーからの要素の除外 および アクセシビリティツリーへの要素の包含 の規則に従ってアクセシビリティツリーに含まれない場合、空文字列を返す。
そうでなく、アクセシブルな名前のためのテキスト代替計算を実行している場合:
- 現在のノードが少なくとも1つの直接の子
title要素を持つ場合、 SVG 仕様の言語規則に基づいて適切な title を選択し、title テキスト代替をフラットな文字列として返す。- 現在のノードがリンクであり、子
title要素はないがxlink:title属性を持つ場合、その属性の値を返す。アクセシブルな説明のためのテキスト代替計算を実行している場合:
- 現在のノードが少なくとも1つの直接の子
desc要素を持つ場合、 SVG 仕様の言語規則に基づいて適切な説明を選択し、その説明の 連結されたテキストコンテンツを返す。
を現在のノードの各子ノードについて:
に置き換える要素がテキストコンテナー要素である場合、現在のノードの各子ノードについて:
そうでなく、アクセシブルな説明のためのテキスト代替計算を実行しており、 現在のノードが少なくとも1つの直接の子
title要素を持つが、title 要素がそのノードのアクセシブルな名前を生成する際に使用されていない場合、 SVG 仕様の言語規則に基づいて適切な title を選択し、 title テキストコンテンツを説明として返す。そうでなく、現在のノードがリンクであり、アクセシブルな名前に使用されていない
xlink:title属性を持つ場合、 その属性の値を返す。
要素が直接の子要素を持つかどうかを判断する場合、親要素に関連付けられた シャドウツリーがあるかどうかにかかわらず、実際の DOM 子要素のみを考慮する。
これらの変更の正味の効果は、アクセシブルな名前に対する代替テキスト値の次の優先順位を確立することである:
aria-labelledbyaria-labeltitle 要素xlink:title 属性アクセシブルな説明に対する代替テキスト値には、次の優先順位がある:
aria-describedbydesc 要素title 要素
xlink:title 属性
aria-labelledby および aria-describedby プロパティは、
別個の要素からのテキストと他のテキスト代替のいずれかを連結するために、それらが指定されている
要素を参照できる。
SVG ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における Widget Values アクセシビリティ API 計算要件に MUST 適合しなければならない。
SVG ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における Relations アクセシビリティ API 計算要件に MUST 適合しなければならない。
Relations に関する CORE-AAM の節は、支援技術が aria-describedby によって参照される構造化コンテンツへ
(およびその内部へ) ナビゲートする方法を提供
SHOULD すべきであると要求する。
これは、非レンダリングの説明コンテンツをアクセシビリティツリーに含めないという現在のアプローチと
矛盾する。
SVG ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における Group Position アクセシビリティ API 計算要件に MUST 適合しなければならない。
この仕様は、DOM 標準 [DOM] で定義される shadow tree および host という用語、ならびに SVG 2 [SVG2] で定義される use-element shadow tree および element instance という用語を使用する。
SVG ユーザーエージェントは、use 要素シャドウツリーのために生成された
要素インスタンスを、それらの要素が use 要素自体の子であるかのように、
次の条件付きで処理
MUST しなければならない:
シャドウツリー内の要素上の WAI-ARIA 属性を処理する場合、
ユーザーエージェントは、ホストのノードツリー内で一致を検索する前に、任意の IDREF 値をまず同じシャドウツリー内の
他の要素に対して照合することを試み
MUST しなければならない。シャドウツリーが入れ子になっている場合、ユーザーエージェントは、
文書ツリーに到達するまで、現在のシャドウツリーからそのホスト
use 要素を含むツリーへ再帰的に検索
MUST しなければならない。
その他すべての場合において、WAI-ARIA 属性内の IDREF
値を照合するとき、ユーザーエージェントは
use 要素のシャドウツリー内の要素を考慮
MUST NOT してはならない。
編集者は、これらのガイドラインを、Web コンポーネントにおけるものなど、シャドウツリー要素の WAI-ARIA 処理に関する一般規則と調和させる作業を行う予定である。この方法で IDREF 照合をカプセル化する実用上の実現可能性について、 実装者からのフィードバックが求められる。
shadow DOM および ARIA に関する一般的なフィードバックは Core-AAM の課題で議論すべきである。SVG に固有のフィードバックは、この仕様の Issue #7 へ提出できる。
SVG は、文書の特定の
ビューを指定する手段を作者に提供する。ビューは、
view 要素の id を参照するか、または
SVG view specification
フラグメント識別子を使用してカスタムビューを指定することで、文書 URL の対象フラグメントを通じて適用される。
SVG ビューの視覚効果は、
(view 要素の場合は) 親 svg 要素上の属性、または (SVG view
specification フラグメントの場合は) ルート要素上の属性を変更することと同等である。したがって、ビューが有効な場合、ユーザーエージェントはその
svg
を表す
アクセシブルオブジェクトを変更
SHOULD
すべきである。
特に、次の変更を行うべきである:
viewTarget 属性を含む場合、svg 要素は、
viewTarget 属性に含まれる同じ IDREF
値のリストを指定する aria-flowto 属性を持つかのようにマッピング
SHOULD されるべきである。
view 要素を使用して適用される場合、view 要素がアクセシビリティツリーから除外されるという事実を無視して、
その要素のアクセシブルな名前および説明を計算する。結果が空でない文字列である場合、ビューが有効な間は、
それが svg 要素の対応する名前または説明を置き換える
SHOULD
べきである。
SVG view specification または view 要素の id を含む
URL へのナビゲーションアクションは、
対象 svg 要素上の一連のプロパティ変更イベントと、それに続くその要素へのナビゲーションとして扱われる
SHOULD
べきである。ユーザーエージェントは、プロパティ変更を、既存ノードの削除と、それに続く変更済みノードの挿入として表現しても
MAY よい。
SVG Views は、HTML 文書に直接の同等物を持たない、SVG に固有の機能を提供する。 それらはナビゲーションアクションの終点として使用される可能性があるが、対象となるコンテンツのコンテナーそのものではない。 また、SVG 文書が埋め込まれる時点で、ファイルの一部のみを含むように視覚コンテンツを部分集合化するために使用される場合もある。
編集者は、上記の要件が十分であるかどうかを判断できるように、使用中の SVG views の実用的な例に大いに関心がある。考慮すべき特定の課題には、 キーボードフォーカスを管理するため、またはビューが有効な場合に画面外にレンダリングされるコンテンツを除外するために、 特別な規則が必要かどうかが含まれる。
さらに、viewTarget 属性、および SVG view
フラグメントに対応するパラメーターは、SVG 2
で非推奨になっている。対象要素に視覚的なスタイル変更を発生させるというそれらの意図された用途は、
ユーザーエージェントによって十分に実装されたことがない。
viewTarget がなければ、指定されたビューのセマンティックな対象を示すネイティブな方法は SVG には存在しない。view 要素については (view
フラグメントは除く)、考えられる代替案として、
作者に aria-flowsto 属性を直接指定することを促す方法がある。これらはその後、関連する svg 要素へマッピングする必要がある。
これは、ビューが有効な間に、その他の (またはすべての) ARIA 属性を view 要素から
svg 要素のアクセシブルオブジェクトへマッピングすべきかという問題を提起する。
これには、考えられるすべての結果および競合を慎重に検討する必要がある。たとえば、ビューは SVG
要素のロールを変更できるべきか。
aria-flowsto 属性は支援ツールで十分にサポートされておらず、将来のバージョンで非推奨にする提案がある。
支援技術のユーザーがグラフィックのどの部分が可視であるかをすばやく理解できるように、ユーザーエージェントが変更されたビューを公開できる他の方法はあるか。
これらの点に関するフィードバックは issue #8 で提供できる。
SVG アニメーション要素は、要素属性および スタイルプロパティを変更する場合がある。CSS アニメーションは、スタイル プロパティを変更する場合がある。どちらの種類のアニメーションも、ユーザー操作によって開始される場合もあれば、 固定スケジュールで実行される場合もある。
アニメーションが WAI-ARIA 状態またはプロパティ属性の実効値、あるいは 状態およびプロパティのマッピングの節で説明される SVG 属性を変更する場合、ユーザーエージェントは、実際の属性値が変更された場合と同じ方法でその変更を公開 MUST しなければならない。
role 属性はアニメーション可能ではない。
アニメーションによる変更が、要素がレンダリングされるかどうかに影響する場合、またはアクセシビリティツリーから除外される原因となるような方法で 要素が可視であるかどうかを変更する場合、ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] の Changes to document content or node visibility の節におけるガイドラインに従って変更を公開 SHOULD すべきである。
SVG ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における Actions アクセシビリティ API 計算要件に MUST 適合しなければならない。
ユーザーエージェントは、ユーザーアクション、 WAI-ARIA 状態変更、文書コンテンツまたはノード可視性の変更、選択の変更、 およびメニューの操作について イベントを発火する。適合するユーザーエージェントは [CORE-AAM] の Events マッピングをサポート MUST しなければならない。
SVG ユーザーエージェントは、Core Accessibility API Mappings [CORE-AAM] における Special Document Handling Procedures に MUST 適合しなければならない。
この仕様の実装は、SVG ([SVG2]) および WAI-ARIA ([WAI-ARIA]) を別々に実装する場合と比べて、 Web プラットフォームへ新たなセキュリティまたはプライバシー上の考慮事項を追加するとは期待されていない。
この仕様によって作成される潜在的な新しいセキュリティまたはプライバシーリスクがあると思われる場合は、 仕様の GitHub リポジトリで 課題を提起する こと。
この節は非規範である。
クレジットされた著者および編集者に加えて、SVG Accessibility Task Force の参加者がこの文書の開発に貢献した。 また、草案に対するフィードバックを提供し、テストに協力した Joanmarie Diggs およびその他の実装者にも感謝する。
この公開物は、米国教育省、National Institute on Disability, Independent Living, and Rehabilitation Research (NIDILRR) からの米国連邦資金により、一部資金提供を受けている。最初は契約番号 ED-OSE-10-C-0067、次に契約番号 HHSP23301500054C、 現在は HHS75P00120P00168 に基づく。この公開物の内容は、必ずしも米国教育省の見解または方針を反映するものではなく、 商号、商用製品、または組織への言及が米国政府による承認を意味するものでもない。