JAWS and Flash ComboBox Accessibility

By Max Li | Published: August 27, 2011

There are many challenges in implementing accessibility in Flash. One of the most difficult and strange errors I’ve run into is with the ComboBox component. Using the JAWS screen reader, if you tab onto a ComboBox control, it reads the prompt of the component perfectly, just as it would on a normal web page. However, when pressing down to select the first item in the ComboBox, it reads nothing. Subsequent key presses read the item that was previously selected, and not the item that is currently selected.

After some experimenting, I have found that a workaround that solves this problem and makes the ComboBox behave as expected. When a change event is fired by the ComboBox, it is necessary to set the focus of the stage to null and then after a brief moment (a twentieth of a second appears to be sufficient, but a slightly higher number would likely guarantee success without creating any noticeable delay), set the focus back onto the ComboBox. This forces JAWS to read the correct item label (and it doesn’t appear to break the behaviour of other screen readers like NVDA which work properly with Flash ComboBoxes in the first place).

I hope this helps someone someday in implementing accessibility in Flash. (Y’know, if you ever have the misfortune of dealing with such a thing.)