HTML5 keyboard use cases, issues, and recommendations

On the UAWG Wiki page HTML5 review by UAWG notes <http://www.w3.org/WAI/UA/work/wiki/HTML5_review_by_UAWG_notes>, I've added a section called Keyboard Use Cases and Recommendations <http://www.w3.org/WAI/UA/work/wiki/HTML5_review_by_UAWG_notes#Keyboard_Use_Cases_and_Recommendations> (http://www.w3.org/WAI/UA/work/wiki/HTML5_review_by_UAWG_notes#Keyboard_Use_Cases_and_Recommendations).

It's a list of features that that *all* content/scripting technologies should include, with notes on how the current draft HTML5 spec does or should address them. It's definitely a first draft or starting point, neither complete nor consistent, and partially duplicating things already stated, but I hope you can look it over and we can discuss it via inline comments or email, and turn it into something useful.

I've also added a separate page called Keyboard Concepts for HTML5 Discussion <http://www.w3.org/WAI/UA/work/wiki/Keyboard_Concepts_for_HTML5_Discussion>, which explains a lot of the terms, concepts and thinking behind the use cases and recommendations. I think some of it is good, but other parts are still rough.

Overall summary:

   1. Complete and efficient keyboard access is critical for accessibility.
   2. High-level things that web protocols and formats can do to enable good keyboard UI include:
         1. Let users accomplish any task using the keyboard alone
         2. Let content coexist and adapt to a wide range of user agents, browser add-ins, nested user agents, other content, and assistive technologies
         3. Let the user take advantage of the widest range of keyboard commands and shortcuts
         4. Provide the information needed to enable a wide range of keyboard features
         5. Let the user retain ultimate control of their experience
         6. Protect the user from badly behaved content and nested user agents
   3. Specific topics with use cases, issues, and recommendations, as well as topics that have no clear recommendations.
   4. Some of these are already covered by the latest HTML5 draft, while others are not.


The list of use cases and recommendations include:

     * Navigation
           o Sequential navigation to all elements that take focus or input
           o Navigation to and through non-editable content
           o Preventing validation from trapping focus
           o Reading and navigation order
           o Facilitate navigating related pages
     * Shortcut Keys
           o Negotiating shortcut keybindings
                 + Negotiation between host and embedded object
                 + Negotiation with nested hosts
                 + Negotiation between host and content
                 + Disabling unmodified keys as shortcuts
           o Retrieving actual keybindings
                 + Retrieving user-friendly keybindings
                 + Retrieving machine-friendly keybindings
           o Maximizing potential keyboard shortcuts
                 + Specifying detailed hotkeys
                 + Sequences as shortcuts
                 + Enabling unmodified keys as shortcuts
                 + Allowing non-character keys as shortcuts
           o Shortcuts for Navigation
                 + Navigation shortcuts without visible links
                 + Distinguishing activation from navigation shortcuts
                 + User choice between navigating and activating
     * Emulating non-keyboard operations
           o Simulating drag and drop
     * Other Keyboard Issues

     Thanks,
     Greg

Received on Wednesday, 6 July 2011 19:56:14 UTC