アクセシビリティの動的プロパティ (Windows 版 Active X のみ) Windows スクリーンリーダー通信プロトコルの MSAA (Microsoft Active Accessibility) に対するサポートが ActiveX Flash Player 6 に追加されました。Flash MX のアクセシビリティパネルを使用すると、作成者は特定の種類のアクセシビリティ機能付きオブジェクト (ムービー全体、ボタン、ムービークリップ、動的テキスト、および入力テキスト) に対して、アクセシビリティ関連のプロパティを設定できます。
Flash 6 でのアクセシビリティのサポートには制限があり、オーサリング時にはこれらのプロパティを静的にしか設定できません。Flash コンテンツにアクセシビリティ機能を追加するには、これらのプロパティを ActionScript から動的に設定できる必要があります。
ActiveX Flash Player 6 では、ActionScript ランタイムオブジェクトモデルに Accessibility.updateProperties という 1 つのメソッドを追加することにより、動的なアクセシビリティの問題を解決しました。このメソッドは、引数を使用せず、何も返しません。このメソッドを呼び出すと、プレーヤーによってアクセシビリティのすべてのプロパティが再確認され、スクリーンリーダーのオブジェクトの説明が更新され、必要に応じて変更が生じたことを示すイベントがスクリーンリーダーに送信されます。これらのオブジェクトモデルの更新とイベントに関するロジックは、SWF フレーム間の変更に関する既存のロジックと正確に一致します。
複数のオブジェクトに対してアクセシビリティのプロパティを同時に更新する場合は、Accessibility.updateProperties を 1 回だけ呼び出します。実際、パフォーマンスを維持し、スクリーンリーダーへの更新の送信回数を減らすためにも、複数の呼び出しを行うことは避けてください。更新回数が多すぎると、スクリーンリーダーの合成音声が不明瞭になる場合があります。
アクセシビリティのプロパティを設定するには、まだドキュメント化されていない場所を使用します。実際、Flash MX では、これらの場所でアクセシビリティパネルで設定されたプロパティを指定します。
ムービー全体に適用されるプロパティについては、グローバル変数 _accProps を作成または変更します。オブジェクト別に適用されるプロパティについては、instancename._accProps を作成または変更します。後者の場合、インスタンス名は必須です。アクセシビリティパネルでオブジェクト別に設定する場合に、インスタンス名を指定しないと、インスタンス名が自動的に割り当てられます。
グローバル変数でもオブジェクト別の変数でも、_accProps の値は以下のフィールドの 1 つ以上を持つオブジェクトです。
| プロパティ |
型 |
アクセシビリティパネルの対応するフィールド |
適用先 |
| .silent |
ブール型 |
ムービーをアクセス可能にする / オブジェクトをアクセス可能にする (逆ロジック) |
ムービー全体、 ボタン、 ムービークリップ、 動的テキスト、 入力テキスト |
| .forceSimple |
ブール型 |
子オブジェクトをアクセス可能にする (逆ロジック) |
ムービー全体、 ムービークリップ |
| .name |
文字列型 |
名前 |
ムービー全体、 ボタン、 ムービークリップ、 入力テキスト |
| .description |
文字列型 |
説明 |
ムービー全体、 ボタン、 ムービークリップ、 動的テキスト、 入力テキスト |
| .shortcut |
文字列型 |
ショートカット |
ボタン、 ムービークリップ、 入力テキスト |
上のすべてのフィールドはオプションです。ブール型のフィールドを指定しない場合は、False 値を指定したのと同じ結果になります。文字列型のフィールドを指定しない場合は、空の文字列を指定したのと同じ結果になります。既存のフィールドで不要になったものは、delete 演算子を使用して削除できます。_accProps オブジェクトのアタッチ先の Stage オブジェクトに適用されないフィールドを指定しても、何も起こりません。既存のすべてのフィールドが不要になった場合は、_accProps オブジェクト自体を削除できます。
アクセシビリティパネルのフィールドで、その値を動的に変更できないものが 1 つあります。このフィールドに対する変更は、Accessibility.updateProperties によって無視されます。このフィールドは [自動ラベル] フィールドで、ムービー全体に適用されます。
アクセシビリティの動的なプロパティを活用する ActionScript コードの例を以下に示します。表示されるアイコンが変わる非テキスト型のアイコンボタンコンポーネントのコードです。
function setIcon( newIconNum, newTextEquivalent )
{
this.iconImage = this.iconImages[ newIconNum ];
if ( newTextEquivalent != undefined )
{
if ( this._accProps == undefined )
this._accProps = new Object();
this._accProps.name = newTextEquivalent;
Accessibility.updateProperties();
}
}
|