User Guide

Creating accessibility with ActionScript 371
Implementing screen reader detection with the
Accessibility.isActive() method
To create Flash content that behaves in a specific way if a screen reader is active, you can use the
ActionScript method
Accessibility.isActive(), which returns a value of true if a screen
reader is present, and
false otherwise. You can then design your Flash content to perform so that
it’s compatible with screen reader use (for example, by hiding child elements from the screen
reader). For more information, see
Accessibility.isActive() in Flash ActionScript Language
Reference.
For example, you could use the
Accessibility.isActive() method to decide whether to
include unsolicited animation. Unsolicited animation happens without the screen reader doing
anything, which can be confusing for screen readers.
The
Accessibility.isActive() method provides asynchronous communication between
the Flash content and Flash Player, which means that a slight real-time delay can occur
between the time the method is called and the time in which Flash Player becomes active,
returning an incorrect value of
false. To ensure that the method is called correctly, you can
do one of the following:
Instead of using the Accessibility.isActive() method when the Flash content first plays,
call the method whenever you need to make a decision about accessibility.
Introduce a short delay of one or two seconds at the beginning of your document to give the
Flash content enough time to contact Flash Player.
For example, you can attach this method with an
onFocus event to a button. This generally
gives the SWF file enough time to load and you can safely assume a screen reader user will tab
to the first button or object on the Stage.
Using ActionScript to create a tab order for accessible objects
In addition to assigning a tab index to objects with the Accessibility panel (see “Creating a tab
order index for keyboard navigation in the Accessibility panel (Flash Professional only)”
on page 367), you can create the tab order with ActionScript by assigning the
tabIndex property
to the following objects:
Dynamic text
Input text
Buttons
Movie clips, including compiled movie clips
Timeline frames
Screens
If you create a tab order for a frame and you dont specify a tab order for an accessible object in the
frame, Flash Player ignores all the custom tab order assignments. You should, therefore, provide a
complete tab order for all accessible objects. Additionally, all objects assigned to a tab order,
except frames, must have an instance name specified in the Instance Name text box of the
Property inspector. Even items that are not tab stops, such as text, need to be included in the tab
order if they are to be read in that order.