jquery/jquery-ui — pull request #666 by scottgonzalez (2012-05-25 00:46:07+00:00)
Title: Tabs: ARIA! DO NOT MERGE TO MASTER!

This PR is for feedback and should not be merged to master. The default demo is modified for ease of testing. There's a mix of local, disabled, and ajax tabs.

Implementation:
* Uses a roving tabindex.
* List items have role=tab, aria-selected, and aria-controls.
* Panels have role=tabpanel, aria-expanded, and aria-hidden.
* Ajax tab panels have aria-live=polite, during load they also have aria-busy=true.
* Keyboard navigation has delayed activation (currently half a second) to allow traversing without activating every panel between where you are and where you're going.
* Space/enter activates immediately.
* Ctrl+up while focused is in a panel will move focus to the associated tab. Tab 2 has a focusable element in it.
* Tabs cannot be collapsed using the keyboard. I wasn't sure about this. On one hand, there's no reason to limit functionality for keyboard users. On the other hand, this could result in users accidentally collapsing content if they press space/enter just after the delay.

Questions:
* Should users be able to collapse panels using the keyboard?
* How do users navigate to panels if there's no focusable content?
* How long should the delay be for the delayed activation?
* Do any AT devices announce interaction cues that contradict this implementation?
* Is anything missing/broken?