パッケージ | flash.accessibility |
クラス | public final class Accessibility |
継承 | Accessibility Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
モバイルブラウザーのサポート:このクラスはモバイルブラウザーではサポートされません。
AIR プロファイルのサポート:この機能はすべてのデスクトップオペレーティングシステムでサポートされますが、モバイルデバイスまたは AIR for TV デバイスではサポートされません。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。
ボタンやムービークリップ、テキストフィールドなど、特定のオブジェクトのアクセシビリティプロパティを取得または設定するには、DisplayObject.accessibilityProperties
プロパティを使用します。Player またはランタイムがアクセシビリティ補助をサポートする環境で実行されているかどうかを確認するには、Capabilities.hasAccessibility
プロパティを使用します。
注意:AIR 2 は JAWS 11 以降のスクリーンリーダーソフトウェアに対応しています。詳しくは、http://www.adobe.com/jp/accessibility/ を参照してください。
詳細
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
active : Boolean [静的] [読み取り専用]
スクリーンリーダーがアクティブ状態で、アプリケーションと通信しているかどうかを示します。 | Accessibility | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object |
メソッド | 定義元 | ||
---|---|---|---|
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
[静的]
DisplayObject.accessibilityProperties プロパティを使って変更されたアクセシビリティをすべて Flash Player に適用させます。 | Accessibility | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
active | プロパティ |
active:Boolean
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
スクリーンリーダーがアクティブ状態で、アプリケーションと通信しているかどうかを示します。スクリーンリーダーの実行時にアプリケーションの動作を変更するには、このメソッドを使用します。
このプロパティを true
に設定すると、アプリケーションを実行している間は true
の設定が保持されます(通常、スクリーンリーダーの開始後に、ユーザーがスクリーンリーダーを無効にすることはありません)。
注意:AIR アプリケーションを起動した後、またはドキュメントを再生する Flash® Player ウィンドウが最初に表示された後、このメソッドが呼び出されるまで 1、2 秒かかります。 また、アクティブなアクセシビリティクライアントが存在していても、false
の値が返されることがあります。 こうした状況が起きるのは、アクセシビリティクライアントと Flash Player または AIR との間の通信が非同期通信であるためです。
Capabilities.hasAccessibility
プロパティを使用します。
実装
public static function get active():Boolean
関連する API エレメント
updateProperties | () | メソッド |
public static function updateProperties():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
DisplayObject.accessibilityProperties
プロパティを使って変更されたアクセシビリティをすべて Flash Player に適用させます。変更内容を有効にするには、このメソッドを呼び出す必要があります。
複数のオブジェクトのアクセシビリティプロパティを変更する場合、必要な Accessibility.updateProperties()
メソッド呼び出しは 1 回だけです。何度も呼び出すと、パフォーマンスが低下するだけでなく、スクリーンリーダーが誤った出力を生成する可能性があります。
例外
IllegalOperationError — Flash Player のこのバージョンではアクセシビリティがサポートされません。Accessibility.updateProperties() メソッドは、flash.system.Capabilities.hasAccessibility プロパティが false の場合は呼び出さないでください。
|
関連する API エレメント
AccessibilityExample
、CustomAccessibleButton
、CustomSimpleButton
、および ButtonDisplayState
サンプルクラスを使用して、ほとんどのスクリーンリーダーとの連携が可能なアクセシビリティ準拠メニューを作成します。この例では、次の処理を実行します。
Accessibility.active
プロパティを追跡し、スクリーンリーダーが現在アクティブ状態で、Player と通信しているかどうかを確認します。active
プロパティがtrue
を返す場合には、この例ではupdateProperties()
メソッドを呼び出して、この例のボタンに対するアクセシビリティ上の変更を適用します。flash.utils.setTimeout()
メソッドを呼び出して、updateAccessibility()
クロージャーメソッドを 2 秒後に呼び出すように指定します。
注意:setTimeout()
は、Accessibility.active
の検査の前に呼び出してください。こうすれば、Flash Player がスクリーンリーダー(使用可能な場合)に接続するのに必要な 2 秒間を確保できます。十分な遅延時間を指定しないと、スクリーンリーダーが使用可能であっても、setTimeout
呼び出しでは、false
が返されます。
次の例で Accessibility.updateProperties()
メソッドが処理されるのは Accessibility.active
呼び出しが true
を返す場合だけです。つまり、Flash Player がアクティブ状態のスクリーンリーダーに現在接続している場合だけです。updateProperties
が呼び出されたときにスクリーンリーダーがアクティブ状態でない場合、IllegalOperationError
例外がスローされます。
package { import flash.display.Sprite; import flash.accessibility.Accessibility; import flash.utils.setTimeout; public class AccessibilityExample extends Sprite { public static const BUTTON_WIDTH:uint = 90; public static const BUTTON_HEIGHT:uint = 20; private var gutter:uint = 5; private var menuLabels:Array = new Array("PROJECTS", "PORTFOLIO", "CONTACT"); private var menuDescriptions:Array = new Array("Learn more about our projects" , "See our portfolio" , "Get in touch with our team"); public function AccessibilityExample() { configureAssets(); setTimeout(updateAccessibility, 2000); } private function updateAccessibility():void { trace("Accessibility.active: " + Accessibility.active); if(Accessibility.active) { Accessibility.updateProperties(); } } private function configureAssets():void { var child:CustomAccessibleButton; for(var i:uint; i < menuLabels.length; i++) { child = new CustomAccessibleButton(); child.y = (numChildren * (BUTTON_HEIGHT + gutter)); child.setLabel(menuLabels[i]); child.setDescription(menuDescriptions[i]); addChild(child); } } } } import flash.accessibility.AccessibilityProperties; import flash.display.Shape; import flash.display.SimpleButton; import flash.display.Sprite; import flash.events.Event; import flash.text.TextFormat; import flash.text.TextField; class CustomAccessibleButton extends Sprite { private var button:SimpleButton; private var label:TextField; private var description:String; private var _name:String; public function CustomAccessibleButton(_width:uint = 0, _height:uint = 0) { _width = (_width == 0) ? AccessibilityExample.BUTTON_WIDTH : _width; _height = (_height == 0) ? AccessibilityExample.BUTTON_HEIGHT : _height; button = buildButton(_width, _height); label = buildLabel(_width, _height); addEventListener(Event.ADDED, addedHandler); } private function addedHandler(event:Event):void { trace("addedHandler: " + this._name); var accessProps:AccessibilityProperties = new AccessibilityProperties(); accessProps.name = this._name; accessProps.description = description; accessibilityProperties = accessProps; removeEventListener(Event.ADDED, addedHandler); } private function buildButton(_width:uint, _height:uint):SimpleButton { var child:SimpleButton = new CustomSimpleButton(_width, _height); addChild(child); return child; } private function buildLabel(_width:uint, _height:uint):TextField { var format:TextFormat = new TextFormat(); format.font = "Verdana"; format.size = 11; format.color = 0xFFFFFF; format.align = TextFormatAlign.CENTER; format.bold = true; var child:TextField = new TextField(); child.y = 1; child.width = _width; child.height = _height; child.selectable = false; child.defaultTextFormat = format; child.mouseEnabled = false; addChild(child); return child; } public function setLabel(text:String):void { label.text = text; this._name = text; } public function setDescription(text:String):void { description = text; } } class CustomSimpleButton extends SimpleButton { private var upColor:uint = 0xFFCC00; private var overColor:uint = 0xCCFF00; private var downColor:uint = 0x00CCFF; public function CustomSimpleButton(_width:uint, _height:uint) { downState = new ButtonDisplayState(downColor, _width, _height); overState = new ButtonDisplayState(overColor, _width, _height); upState = new ButtonDisplayState(upColor, _width, _height); hitTestState = new ButtonDisplayState(upColor, _width, _height); useHandCursor = true; } } class ButtonDisplayState extends Shape { private var bgColor:uint; private var _width:uint; private var _height:uint; public function ButtonDisplayState(bgColor:uint, _width:uint, _height:uint) { this.bgColor = bgColor; this._width = _width; this._height = _height; draw(); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, _width, _height); graphics.endFill(); } }
Tue Jun 12 2018, 10:34 AM Z