Accessible Macromedia Flash Barriers to Accessibility with Flash The power of Flash is in its timeline-based flexibility. The scripting features of Flash allow dynamic objects to modify themselves whenever the developer chooses.
Screen readers are designed for static content. They parse a Web page for audible output by reading the linear order of the HTML code from left to right, top to bottom. While users can navigate through the page using various methods, the page itself does not typically change in nature as it is being read. 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 Content Equivalent does not mean text-only. A text-only page is much less ‘equivalent’ to a Flash movie than a well formatted and accessible Web page with images, icons, paragraphs, and color. Just because someone accesses your equivalent alternative does not necessarily mean that they have a disability - often, the alternative can be more usable and will frequently accommodate a different learning style. In fact, the careful application of HTML may obviate the need for two versions entirely, which is the best solution for everyone.
Text and Audio With the advent of the Flash 6 players and screen readers that can access Flash content, much Flash content on the Web that was previously inaccessible suddenly became marginally accessible.
With Flash MX 2004, you now have a limited ability to add text equivalents to graphics. Within Flash, there are three types of elements you can create - graphics, clips, and buttons. Graphics are typically for items that are static within the movie and clips are for interactive and more complex animations. Within Flash movies, most simple animations of graphical items are done with graphic symbols. However, text equivalents are not supported by graphic symbols. So, as a developer you must do your animations with clip symbols instead.
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 – this is good design practice that will benefit all users. Remember, if you're conveying any content audibly that is not apparent from the visible display, then you must provide captions for the deaf and hard of hearing.
The Accessibility Panel Explained 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.
Name - The Flash ALT. This is for a brief description of the object.
Description - The Flash LONGDESC. The screen reader will read the Name first, then the Description if both are present.
Shortcut – A shortcut key for a specific object does not program the keyboard shortcut, but simply alerts the user as to what the shortcut key is. You will need to program additional ActionScript within the movie to capture that keyboard sequence.
Button Accessibility 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. The 'Over' and 'Down' states can also be triggered by the keyboard, when the user tabs to a button, the Over state is exposed, and when the Space bar or Enter key is pressed, the Down state is activated.
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.
Flash and Keyboard Focus With the exception of version 7 for IE, when Flash receives the focus within a Web page, it maintains that focus. What this means is that once you click in or tab to a Flash movie, you cannot use the keyboard to navigate to other items on the page. Screen readers have built in functionality which will change focus back to the Web page after all of the Flash items have been accessed. Common browsers, however, do not have this functionality. This can be an issue for people with motor disabilities that must use the keyboard for navigation. You can alleviate this by either making the movie invisible to the Web browser or by setting all of your buttons to be inaccessible in the Accessibility panel. But both of these options make the movie itself inaccessible.
Code Snippet #1: Hiding Flash Content Sometimes Flash content is used as visual decoration. Unfortunately, this can make the entire Web page totally inaccessible via the keyboard or screen reader. 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:
This will effectively hide the flash movie from the screen reader and the keyboard. It will still appear visibly within the page, but navigating through the page will bypass the Flash content and the screen reader will act as if it isn't even there. Only use this in the movie does not convey important content or if an alternative is provided for the content the movie does contain.
Code Snippet #2: Tab and Reading Order 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
In order for this to work, you must specify a tab order for every button, movie clip, input text, and dynamic text object on the stage that has been set to be accessible in the Accessibility panel. If you miss even one, then screen readers will disregard your tabIndex altogether.
References UNC Webaccess page on using Flash