Strictly typed arrays in MTASC Hypotrochoid (aka SpiroGraph(tm))

Accessibility notes – Screen readers and Flash

April 19th, 2006

While recently working on some flash content which required DDA compliant accessibility it became clear that the design of a Flash project has to be radically altered to allowing for screen reader and keyboard accessibility. This is mainly due to the problems of keyboard accessibility with nested content. But there are many things to take into consideration. I've also suggested a few ideas to get around some of the more common problems.

You should always be aware that adding accessibilty features to a Flash project requires a good deal of thought before visual and animation design are finalised. Some basic rules which should be followed...

Flash content that will use browser accessibility features should be designed with this in mind from the project brief onwards, from the perspective of the Flash developer these points should already have been addressed by the information architecture and visual design teams. However in some situations this may not be the case, since accessibility is an emerging area, most of us still don't think of accessibility automatically.

It pays to study the project wireframe and visuals with this in mind before you plough ahead. Planning in advance always pays off in the long run, and in the area of accessibility extra care and attention pays off big.

Some problems with accessibility in the FlashPlayer & Browsers

The FlashPlayer version 7 and above are the first to support accessibility features and as such some of them aren't as rock solid as you'd probably like, there are a few odd and annoying holes I've found, which is the main reason I'm writing this piece in the first place.

Tab Order - I've found that on some occasions Tab order of your accessible objects is disregarded. Oddly enough setting the tab order with the Accessibility panel works, whereas using the _accProps properties often don't. I haven't spent an exhaustive amount of time looking into this fault, but knowing it happens might save you some annoyance with your project.

Accessibility & Nesting MovieClips - When normally creating a Flash project it's likely that you will have MovieClips nested here and there, this is the natural way of using Flash after all... and while this is standard practice it will play havoc with your screen reader and tab-order accessibility setup.

Accessible Control Surface - As a work-around I create an invisible control surface for the Flash project which sits on the _root timeline.

All other objects on the stage are not accessible and the control surface is setup as a controller for everything in the movie, talking to buttons and movieclips and activating their mouse events etc..., it is also where you setup Tab-order and accessible text. This does mean you need to change the control surface for every visual state in the project, but it simplifies the process of debugging your accessibility features.

When a user with a screen reader tabs through the control surface Buttons/MovieClips, each will report their name and description properties... (set in their local _accProps object.) It is simplest to setup all the text relating to an object in it's _accProps.name property. This will be read by the screen reader and suffixed with the word "button", so it's useful to place a full-stop at the end of the text you are assigning to the _accProps.name property so there's a pause before the word "button" is spoken.

Although the control surface method isn't exactly what I would consider an "elegant" solution, it is workable and avoids complicated tab-orders which may not resolve in a number of browsers, keeping all your accessible objects discreet from the rest of the movie and keeping them on the _root timeline makes accessibility easier to manage too.

Of course, while the control surface captures mouse events and talks to the rest of the movie, the rest of the movie will be talking back to the control surface to change accessible text and controller positions.

That's all I have for today, I hope to expand on these notes in the near future...

can you Digg it? can you Digg it? is it del.icio.us? is it del.icio.us?

Category: Uncategorized

2 Comments Add your own

  • 1. Jason Milkins  |  July 17th, 2006 at 5:09 pm

    I probably should have mentioned that the use of Flash with accessibility features should always be taken as a significant project cost, it can often double or triple the cost, especially if an inexperienced Flash designer and or developer is learning the accessibility ropes, so to speak.

    The single most important thing to remember is graceful fallback, if the flash content can be produced effectively in HTML (and not AJAX ok) then it shold be considered the primary mode of contact with the accessibility user base.

    These are issues which project planners and accessibility guardians should be very aware of, Flash developers need only ensure they’re able to highlight issues with certain Flash design ideas… Patterns will emerge, and as I said in the article, it’s still a young field of expertise, particularly in the Flash community.

  • 2. web  |  November 11th, 2006 at 4:25 pm

    nice site!

Leave a Comment

You must be logged in to post a comment .

Trackback this post  |  Subscribe to the comments via RSS Feed

Clicky Web Analytics