Apache Flex 4.16.1 API Reference | All Packages | All Classes | Index | Frames No Frames |
AccImpl

Package | mx.accessibility
Class | public class AccImpl
Inheritance | AccImpl flash.accessibility.AccessibilityImplementation
Subclasses | AccordionHeaderAccImpl, ButtonAccImpl, ButtonBaseAccImpl, ComboBaseAccImpl, DateChooserAccImpl, DateFieldAccImpl, LabelAccImpl, ListBaseAccImpl, ListBaseAccImpl, MenuBarAccImpl, PanelAccImpl, PanelAccImpl, RichEditableTextAccImpl, SliderAccImpl, SliderBaseAccImpl, SpinnerAccImpl, TabBarAccImpl, TextBaseAccImpl, TreeAccImpl, VideoPlayerAccImpl

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

AccImpl is Flex's base accessibility implementation class for MX and Spark components.

It is a subclass of the Flash Player's AccessibilityImplementation class.

When an MX or Spark component is created, its `accessibilityImplementation` property is set to an instance of a subclass of this class. The Flash Player then uses this object to allow MSAA clients such as screen readers to see and manipulate the component. See the flash.accessibility.AccessibilityImplementation class for additional information about accessibility implementation classes and MSAA.

Children

The Flash Player does not support a true hierarchy of accessible objects. If a DisplayObject has an `accessibilityImplementation` object, then the `accessibilityImplementation` objects of its children are ignored. However, the Player does allow a component's accessibility implementation class to expose MSAA information for its internal parts. (For example, a List exposes MSAA information about its items.)

The number of children (internal parts) and the child IDs used to identify them are determined by the `getChildIDArray()` method. In the Player's AccessibilityImplementation base class, this method simply returns `null`. Flex's AccImpl class overrides it to return an empty array. It also provides a protected utility method, `createChildIDArray()` which subclasses with internal parts can use in their overrides.

Role

The MSAA Role of a component and its internal parts is determined by the `get_accRole()` method. In the Player's AccessibilityImplementation base class, this method throws a runtime error, since subclasses are expected to override it. Flex's AccImpl class has a protected `role` property which subclasses generally set in their constructor, and it overrides `get_accRole()` to return this property.

Name

The MSAA Name of a component and its internal parts is determined by the `get_accName()` method. In the Player's AccessibilityImplementation base class, this method simply returns `null`. Flex's AccImpl class overrides it to construct a name as follows, starting with an empty string and separating added portions with a single space:

- If a simple child (e.g., combo or list box item) is being requested, only the child's default name is returned. The rest of the steps below apply only to the component itself (childID 0).
- If the component is inside a Form:
  - If the Form has a FormHeading and the component is inside a FormItem, the heading text is added. Developers wishing to avoid this should set the `accessibilityName` of the FormHeading to a space (" ").
  - If the field is required, the locale-dependent string "required field" is added.
  - If the component is inside a FormItem, the FormItem label text is added. Developers wishing to avoid this should set the `accessibilityName` of the FormItem to a space (" ").
- The component's name is then determined thus:
  - If the component's `accessibilityName` (i.e., `accessibilityProperties.name`) is a space, no component name is added.
  - Otherwise, if the component's name is specified (i.e., is not null and not empty) then it is added.
  - Otherwise, a protected `getName()` method, defined by AccImpl and implemented by each subclass, is called to provide a default name. (For example, ButtonAccImpl implements `getName()` to specify that a Button's default name is the label that it displays.) If not empty, the return value of `getName()` is added.
  - Otherwise (if `getName()` returned empty), if the component's `toolTip` property is set, that String is added.
  - If the component's `errorString` property is set, that String is added.

Description

The MSAA Description is determined solely by a component's `accessibilityProperties` object and not by its `accessibilityImplementation` object. Therefore there is no logic in AccessibilityImplementation or AccImpl or any subclasses of AccImpl related to the description. The normal way to set the description in Flex is via the `accessibilityDescription` property on UIComponent, which simply sets `accessibilityProperties.description`.

State

The MSAA State of a component and its internal parts is determined by the `get_accState()` method. In the Player's AccessibilityImplementation base class, this method throws a runtime error, since subclasses are expected to override it. Flex's AccImpl class does not override it, but provides a protected utility method, `getState()`, for subclasses to use in their overrides. The `getState()` method determines the state as a combination of

- STATE_SYSTEM_UNAVAILABLE (when enabled is false on this component or any ancestor)
- STATE_SYSTEM_FOCUSABLE
- STATE_SYSTEM_FOCUSED (when the component itself is focused, not set for any subparts the component may have)

Note that by default all components are assumed to be focusable and thus the accessibility implementation classes for non-focusable components like Label must clear this state flag. When a component has a state of unavailable, the focusable state is removed by the accessibility implementation class.

Value

The MSAA Value of a component and its internal parts is determined by the `get_accValue()` method. In the Player's AccessibilityImplementation base class, this method simply returns `null`. Flex's AccImpl class does not override it, but subclasses for components like TextInput do.

Location

The MSAA Location for a component's internal parts, but not the component itself, is determined by the `get_accLocation()` method. This method is never called with a childID of 0; instead, the Flash Player determines the MSAA Location of a component based on its bounding rectangle as determined by `getBounds()`. Flex's AccImpl class does not override this method, but subclasses for components with internal parts do.

Default Action

The MSAA DefaultAction for a component and its internal parts is determined by the `get_accDefaultAction()` method. In the Player's AccessibilityImplementation base class, this method simply returns `null`. Flex's AccImpl class does not override it, but subclasses with default actions do. These subclasses also override AccessibilityImplementation's `accDoDefaultAction()` method to perform the default action that they advertise.

Other

The MSAA events EVENT_OBJECT_SHOW and EVENT_OBJECT_HIDE are sent when the object is shown or hidden. The corresponding states for these are covered by the Flash Player which does not render any MSAA components that are hidden. When the component is shown the states mentioned for AccImpl are used.

Protected Properties

| Property | Defined By
--- | --- | ---
|  | eventsToHandle : Array [read-only] All subclasses must override this function by returning an array of strings of the events to listen for. | AccImpl
|  | master : UIComponent A reference to the UIComponent instance that this AccImpl instance is making accessible. | AccImpl
|  | role : uint Accessibility role of the component being made accessible. | AccImpl

Public Methods

| Method | Defined By
--- | --- | ---
|  | AccImpl(master:UIComponent) Constructor. | AccImpl
|  | getFormName(component:UIComponent):String [static] Method for supporting Form Accessibility. | AccImpl
|  | isAncestorDisabled(component:UIComponent):Boolean [static] Returns true if an ancestor of the component has enabled set to false. | AccImpl

Protected Methods

| Method | Defined By
--- | --- | ---
|  | eventHandler(event:Event):void Generic event handler. | AccImpl
|  | getName(childID:uint):String Returns the name of the accessible component. | AccImpl
|  | getState(childID:uint):uint Utility method to determine state of the accessible component. | AccImpl

Property Detail

eventsToHandle | property

`eventsToHandle:Array` [read-only]

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

All subclasses must override this function by returning an array of strings of the events to listen for.

Implementation
`protected function get eventsToHandle():Array`

master | property |

`protected var master:UIComponent`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

A reference to the UIComponent instance that this AccImpl instance is making accessible.

role | property |

`protected var role:uint`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Accessibility role of the component being made accessible.

Constructor Detail

AccImpl | () | Constructor

`public function AccImpl(master:UIComponent)`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Constructor.

Parameters

| `master:UIComponent` — The UIComponent instance that this AccImpl instance is making accessible.

Method Detail

eventHandler | () | method

`protected function eventHandler(event:Event):void`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Generic event handler. All AccImpl subclasses must implement this to listen for events from its master component.

Parameters

| `event:Event`

getFormName | () | method |

`public static function getFormName(component:UIComponent):String`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Method for supporting Form Accessibility. Called from get_accName() in this AccImpl class. Also called from the UIComponentAccProps constructor.

Parameters

| `component:UIComponent`

Returns

| `String`

getName | () | method |

`protected function getName(childID:uint):String`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Returns the name of the accessible component. All subclasses must implement this instead of implementing get_accName().

Parameters

| `childID:uint`

Returns

| `String`

getState | () | method |

`protected function getState(childID:uint):uint`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Utility method to determine state of the accessible component.

Parameters

| `childID:uint`

Returns

| `uint`

isAncestorDisabled | () | method |

`public static function isAncestorDisabled(component:UIComponent):Boolean`

Returns true if an ancestor of the component has enabled set to false. The given component itself is not checked.

Parameters

| `component:UIComponent` — The UIComponent to check for a disabled ancestor.

Returns

| `Boolean` — true if the component has a disabled ancestor.

Wed Nov 15 2017, 09:50 AM +01:00