Quiz: AJAX - automatically move focus?
Three articles came to light in “Today’s AJAX and DHTML Best Practices.” Two of the articles went to some length to find ways to move focus as part of an AJAX event. They sought to take the visitor from the trigger event to the results in one smooth, easy move. For those of us who are sighted, we are all familiar with “the yellow fade” that catches our eye and focuses our attention on the element that has changed or is changing. Should we do the same for users of assistive technology? Should we try to get the screen readers to jump to the updated content? Both Gez and James attempted exactly that in their articles, with varying degrees of success. On the other hand, Becky advised against trying to move focus.
Do not automatically shift focus on the page when an update occurs. Changing focus without warning can be distracting for some users, especially if there is no easy mechanism to return to the previous position.
While Becky eludes to another reason in her next paragraph, I’ll be more explicit. What about the people who use screen magnifiers? What if the target area is beyond the field of view of the screen magnifier? The same for people with low vision who have bumped up text size. What are the ramifications of moving the page relatively large increments to expose the new focus? Is this a good user experience?
As an aside, has anyone seen statistics on how many people use magnifiers, compared with other assistive technology?
Do these AJAX situations fit the WCAG 2.0 section 3.2 items?
3.2.1 When any component receives focus, it does not cause a change in context.
3.2.2 Changing the setting of any form control or field does not automatically cause a change of context beyond moving to the next field in the tab order, unless the authored unit contains instructions before the control that describe the behavior.
Then there are the “Rich Internet Applications.” While it is one thing to move focus to a calculator’s results window when the “=” key is pressed, it is quite another when an update to a rich internet application causes multiple simultaneous changes. I reviewed a compensation management application a couple of weeks ago, that I’ll briefly describe with only words. Imagine a department of employees shown in a data table, with one row for each employee and loads of columns with information about each employee. Scroll over to the 7th of 18 columns and give Jane Doe a salary increase. Acting upon the increase causes updates to three cells in Jane’s row and several more in the department summary table at the bottom of the page. Where would you move focus?
Q. So, is it a good idea to move focus or not?
- A Yes, for all but those complex rich internet applications, move focus to the event’s results. Depend on the assistive technology catching up at its own pace.
- B Yes, but… Move focus only when the result is immediately adjacent to the event trigger. This will minimize confusion of shifting the page.
- C No. It’s hopeless.
- D No, isn’t that what “live regions” are all about?