The power of Flash is in its timeline-based flexibility.
The scripting features of Flash allow dynamic objects to modify themselves.
Screen readers are designed for static content. Built for a contextual, data-driven medium, applications like JAWS struggle with Flash.
Despite the limitations, when designed thoughtfully and used appropriately, Flash can be made accessible.
Equivalent does not mean text-only.
A text-only page is much less ‘equivalent' when compared to a Flash movie than a well formatted and accessible Web page with images, icons, paragraphs, and color.
Flash is getting better. Honest!
With Flash MX 2004, you now have a limited ability to add text equivalents to graphics.
If your Flash movie contains any audio, it may interfere with the screen reader. Unless the purpose of the Flash movie is to present audio, you should always provide an option to turn the audio off.
Make Object Accessible - This option can be deselected to make the object invisible to the screen reader. If deselected, the text equivalent and any text immediately within the symbol will not be accessible to the screen reader. This can be useful if the symbol does not convey important content.
Make Child Objects Accessible - If you have other objects within this clip symbol, you can make them hidden by selecting this option. This is useful for animations that are comprised of multiple parts, but as a whole only need one text equivalent.
Buttons must have equivalent text added in the Accessibility panel or they must contain text for them to be reliably accessible.
Often, buttons are set to display content during the 'Over' or 'Down' states, meaning when the mouse is hovering over the button or pressing down on the button. The Flash player will only send a single text item to the screen reader from the Over or Down states of a button. Any additional text items, graphics, or movie clips will be ignored.
Complex button objects, such as sliders, scroll bars, combo boxes, and list boxes are not accessible via the keyboard.
Drag and drop items or any item that requires a click and drag is not accessible using a keyboard alone.
Any button that contains an animation cannot be made accessible. If it is not set to inaccessible in the Accessibility panel, it will cause the screen reader to begin reading from the top of the Web page continually. Grr!
To hide Flash content from both Web browser and screen readers, add the WMODE option to both the OBJECT and EMBED tags of your the Web page containing the Flash movie. Here’s the relevant code:
< OBJECT ... >
< PARAM NAME="wmode" VALUE="opaque" >
< EMBED wmode=opaque ... >
< /EMBED >
< /OBJECT >
With ActionScript, you can specify a specific tab order for form, button, and movie clip elements inside your Flash movie. If you want to specify the tab order of text within your movie, you must convert the text to a dynamic text object. To specify a tab order, each object that will be in the tab order must be given a unique instance name. This is added by selecting the item on the stage and typing the name into the Instance Name box on the Properties panel. Now add tabIndex information to a keyframe at frame 1 of your movie:
_root.Homepage.tabIndex = 1
_root.Contact.tabIndex = 2
_root.FirstName.tabIndex = 3
_root.LastName.tabIndex = 4
_root.SubmitButton.tabIndex = 5

National Center for Accessible Media