| パッケージ | flash.accessibility |
| public final class Accessibility | |
| 継承 | Accessibility Object |
ボタンやムービークリップ、テキストフィールドなど、特定のオブジェクトのアクセシビリティプロパティを取得または設定するには、DisplayObject.accessibilityProperties プロパティを使用します。Player がアクセシビリティ補助をサポートする環境で実行されているかどうかを確認するには、Capabilities.hasAccessibility プロパティを使用します。
関連項目
| プロパティ | 定義 | ||
|---|---|---|---|
| active : Boolean
[static][read-only]
スクリーンリーダーが現在アクティブ状態で、Player と通信しているかどうかを示します。
| Accessibility | ||
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| メソッド | 定義 | ||
|---|---|---|---|
![]() | hasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
![]() | isPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() | propertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
| Object | |
![]() | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
![]() | toString():String
指定されたオブジェクトのストリング表現を返します。
| Object | |
| updateProperties():void
[static]
DisplayObject.accessibilityProperties プロパティを使って変更されたアクセシビリティをすべて Flash Player に適用させます。 | Accessibility | ||
![]() | valueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
| Object | |
| active | プロパティ |
active:Boolean [read-only]スクリーンリーダーが現在アクティブ状態で、Player と通信しているかどうかを示します。スクリーンリーダーの実行時にアプリケーションの動作を変更するには、このメソッドを使用します。
メモ : ドキュメントを再生する Flash® ウィンドウが最初に表示された後、このメソッドを 1、2 秒以内に呼び出すと、アクティブ状態のアクセシビリティクライアントが存在しても、false 値が返されることがあります。これは、Flash とアクセシビリティクライアントとの間の通信が非同期であるために発生します。この問題を回避するには、ドキュメントを読み込んだ後、必ず 1、2 秒経過してから、このメソッドを呼び出してください。
Capabilities.hasAccessibility プロパティを使用します。
実装
public static function get active():Boolean
関連項目
| updateProperties | () | メソッド |
public static function updateProperties():void
DisplayObject.accessibilityProperties プロパティを使って変更されたアクセシビリティをすべて Flash Player に適用させます。変更内容を有効にするには、このメソッドを呼び出す必要があります。
複数のオブジェクトのアクセシビリティプロパティを変更する場合、必要な Accessibility.updateProperties() メソッド呼び出しは 1 回だけです。何度も呼び出すと、パフォーマンスが低下するだけでなく、スクリーンリーダーが誤った出力を生成する可能性があります。
IllegalOperationError — Flash Player のこのバージョンではアクセシビリティがサポートされません。flash.system.Capabilities.hasAccessibility プロパティが false のときには、Accessibility.updateProperties() メソッドを呼び出さないでください。
|
関連項目
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();
}
}