【注意】この文書にはより新しいバージョンが存在します: WCAG 2.1 達成方法集
この達成方法 (参考) の使用法と、この達成方法が WCAG 2.0 達成基準 (規定) とどのように関係するのかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用 (対象) のセクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法の存在は、その技術があらゆる状況で WCAG 2.0 を満たすコンテンツを作成するために使用できることを意味するものではない。
Adobe Flash Professional バージョン MX 以降
Adobe Flex
訳注: Flash Player は、2020 年末に提供を終了する計画が Adobe 社より発表されている (Adobe Blog、窓の杜)。
WAIC での Flash に関する翻訳のメンテナンスも積極的に行う予定がないことに留意されたい。
これは、次の達成基準に関連する達成方法である:
FLASH25 に関するユーザエージェントサポートノートを参照のこと。Flash テクノロジーノートも参照。
この実装方法の目的は、Flash で提供されるフォームコンポーネントに組み込むアクセシブルな名前を設定することである。ラジオボタン、チェックボックス、ボタンなど、コンポーネントによっては自身に固有な label
プロパティが既に与えられているが、その他のコンポーネントについては、コンテンツ制作者がコンポーネントのアクセシブルな名前となるラベルテキストを指定する必要がある。そのためには、アクセシビリティパネルを使用するか (オーサリング中にステージ上にコンポーネントを配置する場合)、スクリプトを使用する (実行時に動的にコンポーネントを生成する場合)。
ActionScript 2
ActionScript 2 では、コンポーネントの _accProps
プロパティにアクセシブルな名前を設定する必要がある。このプロパティはオブジェクトでなければならない。プロパティがまだ設定されていない場合は、コンテンツ制作者がカスタムオブジェクトを作成して _accProps
プロパティに割り当てる必要がある。場合によっては、一つのオブジェクトに対し、アクセシブルな名前を指定する _accProps.name
を含む複数のアクセシビリティ関連プロパティがある。_accProps
プロパティを変更した場合、コンテンツ制作者は、Accessibility.UpdateProperties()
を呼び出してその変更を有効にする必要がある。MSAA に対応していない環境でエラーが発生するのを防ぐため、Accessibility.UpdateProperties()
を呼び出す前に System.capabilities.hasAccessibility フラグを確認することを推奨する。
ActionScript 2 には、以下のアクセシブルなコンポーネントが用意されている。
SimpleButton
CheckBox
RadioButton
Label
TextInput
TextArea
ComboBox
ListBox
Window
Alert
DataGrid
ActionScript 3
ActionScript 3 では、コンポーネントの accessibilityProperties
プロパティにアクセシブルな名前を設定する必要がある。このプロパティは flash.accessibility.AccessibilityProperties
のインスタンスでなければならない。プロパティがまだ設定されていない場合は、コンテンツ制作者が新しい AccessibilityProperties
インスタンスを作成して accessibilityProperties
プロパティに割り当てる必要がある。場合によっては、一つのオブジェクトに対し、アクセシブルな名前を指定する accessibilityProperties.name
を含む複数のアクセシビリティ関連プロパティがある。accessibilityProperties
プロパティを変更した場合、コンテンツ制作者は、flash.accessibility.Accessibility.UpdateProperties()
を呼び出してその変更を有効にする必要がある。MSAA に対応していない環境でエラーが発生するのを防ぐため、Accessibility.UpdateProperties()
を呼び出す前に flash.system.capabilities.hasAccessibility フラグを確認することを推奨する。
ActionScript 3 には、以下のアクセシブルなコンポーネントが用意されている。
Button
CheckBox
ComboBox
List
RadioButton
TileList
コンポーネントコントロールを追加してラベルを付ける手順は次の通りである。
コンポーネントパネルからコンポーネントをステージへドラッグするか、スクリプトを使用して新しいインスタンスを作成する。
新しく作成したコンポーネントインスタンスを選択した状態で、対応するラベルテキストをアクセシビリティパネルの「名前」フィールドに入力する。
次のコード例は、ListBox コンポーネントを作成してアクセシブルな名前を割り当てる方法を示している。
コード例:
mx.accessibility.ListAccImpl.enableAccessibility();
this.createClassObject(mx.controls.List, "my_list", 1);
my_list.addItem({label: "R. Davis", data: 1});
my_list.addItem({label: "V. Mann", data: 2});
my_list.addItem({label: "L. Heart", data: 3});
my_list.addItem({label: "P. Hill", data: dt4});
my_list.addItem({label: "D. Gribble", data: 5});
my_list.move(10, 10);
if (System.capabilities.hasAccessibility) {
my_list._accProps = new Object();
my_list._accProps.name = "Staff Members";
Accessibility.updateProperties();
}
この実例は、ActionScript 2.0 を使用してアクセシブルな名前を設定するのサンプル (英語) で確認できる。また、ActionScript 2.0 を使用してアクセシブルな名前を設定するのソース (英語) をダウンロードすることもできる。
次のコード例は、ListBox コンポーネントを作成してアクセシブルな名前を割り当てる方法を示している。
コード例:
import fl.controls.List;
import fl.accessibility.ListAccImpl;
import flash.system.Capabilities;
import flash.accessibility.*;
ListAccImpl.enableAccessibility();
var my_list:List = new List();
my_list.addItem({label:"R. Davis", data:1});
my_list.addItem({label:"V. Mann", data:2});
my_list.addItem({label:"L. Heart", data:3});
my_list.addItem({label:"P. Hill", data:4});
my_list.addItem({label:"D. Gribble", data:5});
my_list.x = my_list.y = 10;
if (Capabilities.hasAccessibility) {
var accProps:AccessibilityProperties = new AccessibilityProperties();
accProps.name = "Staff Members";
my_list.accessibilityProperties = accProps;
Accessibility.updateProperties();
}
addChild(my_list);
この実例は、ActionScript 3.0 を使用してアクセシブルな名前を設定するのサンプル (英語) で確認できる。また、ActionScript 3.0 を使用してアクセシブルな名前を設定するのソース (英語) をダウンロードすることもできる。
フォームコンポーネントを含む Flash ムービーについて、以下のいずれかを満たしているか確認する。
選択されているコンポーネントのラベルテキストがアクセシビリティパネルの「名前」フィールドで指定されている。
(ActionScript 2.0 の場合) スクリプトを使用してコンポーネントの _accProps.name
プロパティが動的に設定されている。
(ActionScript 3.0 の場合) スクリプトを使用してコンポーネントの accessibilityProperties.name
プロパティが動的に設定されている。
上記のどれか一つを満たしている。
この達成方法が「十分な達成方法」の一つである場合、この手順や期待される結果を満たしていなければ、それはこの達成方法が正しく用いられていないことを意味するが、必ずしも達成基準を満たしていないことにはならない。場合によっては、別の達成方法によってその達成基準が満たされていることもありうる。