Thursday, February 26, 2009

Accessibility Lesson: Reading order with TabOrder

Reading order for a flash file in a screenreader can be controlled by setting the tab order (item.tabIndex) on all the elements.

Elements with a specified tab order will read before static text without a tab order assigned, despite what positions the elements appear. E.G., a button with a specified tab order that sits below static text will be read before the static text, even though it sits below it.

Actual use of the "tab" key in a screenreader generally tabs only to interactive objects, like buttons. Dynamic text with a specified tab order won't necessarily be tabbed to with the tab key. The arrow keys should be able to get you to any element in the flash file that is visible to a screen reader.

If you have a button with dynamic text inside it, you may want to consider setting the tab order for the dynamic text box itself rather than the button it sits inside. Otherwise you would have to on the Button as well -- then the screen reader would read the accessibility name property of the button, and then after all the tabbed elements, read what is in the text box, essentially reading the button twice. It is probably a good idea to make text inside buttons dynamic text instead of static text.

Tuesday, January 6, 2009

Hiding Object Specifically Created for Screenreader From Sighted Users

It seems pretty obvious, but just put it behind a movie clip which is a background image.

For a flash movie, screen readers will not read the following:

  • Any object off stage

  • Any object that has visible=false

  • Any object that has alpha = 0

To make an object invisible to a screen reader, you have to set its accessibility properties to "silent."