I am working on adding ADA compliance to a pre-existing flash app. It is a product selector. Down the left pane are a bunch of filtering options (things like price, size, manufacturer) that filter the results which appear in a separate pane on the right.
I have created 2 separate arrays. One that contains all of the “options” and the other which contains all of the “products”. Since the products change depending on the options, this way I can just update the products array whenever the filtering options get changed. So far, everything is working as expected. I can change the filters whenever I want and tabbing works exactly as expected.
The problem arises when I click on one of the products. This brings up an informational popup. When that happens, I loop through the products array and the options array and set tabEnabled to false on all of them so that you can’t tab through to items in the background. This works great. When you close the popup, I once again loop through the products and options arrays and set tabEnabled to true, but this is where the weird happens.
What happens is that you can now tab through the options and it goes through them all just fine, but when it gets to the end of the options, where it would normally start tabbing through the products, it skips them and goes back to the beginning of the options. HOWEVER, if you shift-tab from the beginning of the options, it goes to the products and as long as you are shift-tabbing, it will cycle through only the products. If you release shift and tab normally, it will tab through the products and when it reaches the end, jumps over to the options and tabs through those, once again skipping the products unless you are shift-tabbing.
I have traced the tab indexes and they aren’t changing. I have no focusManagers implemented in the entire project. All of the various items are added programatically and dynamically at runtime.
I’m at a loss here, and haven’t been able to find anyone else with a similar problem… Any thoughts? Most of the options items are components (radioButtons and Checkboxes) if that might make a difference.
On a side note, it also seems like whenever I set tabEnabled to false, when I set it back to true, I have to set focusRect to true as well. It seems to automatically set focusRect to false when you set tabEnabled to false as well. Is that normal? Seems like those should be independent of each other.
Thanks for any help,
iLan