// Copyright 2007. Adobe Systems Incorporated. All Rights Reserved. package fl.accessibility { import fl.controls.Button; import fl.core.UIComponent; /** * The ButtonAccImpl class, also called the Button Accessibility Implementation class, * enables communication between a Button component and a screen reader. Screen readers are used * to translate screen content into synthesized speech or braille for visually impaired users. * *

The ButtonAccImpl class supports system roles, object-based events, and states.

* *

A Button reports the role ROLE_SYSTEM_PUSHBUTTON (0x2B) to a screen * reader.

* *

A Button reports the following states to a screen reader:

* * *

A Button dispatches the following events to a screen reader:

* * *

The user of a screen reader can activate a button component by using the spacebar or the Enter key.

* * @see fl.controls.Button Button * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ public class ButtonAccImpl extends LabelButtonAccImpl { /** * @private * * Static variable triggering the hookAccessibility() method. * This is used for initializing ButtonAccImpl class to hook its * createAccessibilityImplementation() method to Button class * before it gets called from UIComponent. * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ private static var accessibilityHooked:Boolean = hookAccessibility(); /** * @private * * Static method for swapping the createAccessibilityImplementation() * method of Button with the ButtonAccImpl class. * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ private static function hookAccessibility():Boolean { Button.createAccessibilityImplementation = createAccessibilityImplementation; return true; } //-------------------------------------------------------------------------- // Class methods //-------------------------------------------------------------------------- /** * @private * Method for creating the Accessibility class. * This method is called from UIComponent. * * @param component The UIComponent instance that this AccImpl instance * is making accessible. * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ public static function createAccessibilityImplementation(component:UIComponent):void { component.accessibilityImplementation = new ButtonAccImpl(component); } /** * Enables accessibility for a Button component. * This method is required for the compiler to activate * the accessibility classes for a component. * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ public static function enableAccessibility():void { } //-------------------------------------------------------------------------- // Constructor //-------------------------------------------------------------------------- /** * @private * @internal Nivesh says: I don't think we should document the constructors * for the accessibility classes. End-users just have to call the * static enableAccessibility method. They don't really create an * instance of the classes. * * Creates a ButtonAccImpl instance for the specified Button component. * * @param component The Button instance that this ButtonAccImpl instance * makes accessible. * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ public function ButtonAccImpl(component:UIComponent) { super(component); role = 0x2B; } } }