Comments on proposed 4.1.9 through 4.1.13

Here are some thoughts on the proposed 4.1.10 through 4.1.13 from the 
UAWG Survey for 4 June 2009. I will paste a link to this email in the 
survey form. (I haven't reformatted this as plain text, so I hope it 
comes through intelligibly; if not I can re-post a plain text version.)

I feel that wording inconsistencies between the proposed SCs 4.1.9 
through 4.1.13 lead to confusion. I think these are the goals they are 
trying to convey:

   1. Allow user to customize (disable/enable, edit, add, delete)
      keyboard shortcuts in UA UI (4.1.9)
   2. Allow user to customize (merely disable/enable?) keyboard
      shortcuts in rendered content (4.1.10)
   3. Allow use to save customization to keyboard shortcuts in UA UI and
      rendered content (4.1.11)
   4. Inform the user when the UA UI or rendered content has keyboard
      shortcuts which can't be generated on the current keyboard, and
      allow substitution (4.1.12)
   5. Allow user to reset UA UI keyboard shortcuts to their default
      values as a single operation (rather than having to look up and
      manually set each one back to its original value) (4.1.13)

 
I would add the following high-level goals:

   6. Leverage existing SCs where we can avoid adding new ones
   7. Harmonize with ISO 9241 and ANSI 200.2 where possible

 
My comments/suggestions are divided into two categories: Recommendations 
and Comments on Proposed Wording (which would often be made moot if the 
recommendations are followed).

*/_4.1.10_/
*
*Existing Proposed 4.1.10: User Override of Author Keyboard Commands: 
*The user can override any recognized author supplied keyboard shortcuts 
(e.g accesskeys). (Level A)
* *
*Recommendations on the proposed 4.1.10 (allowing user to override 
keyboard shortcuts in rendered content):*

   1. I recommend using something like the following wording. It splits
      disabling all keyboard shortcuts (which is easy to do) from
      customizing them individually (which is hard). The latter could be
      omitted if you prefer.

    *4.1.10 Allow users to disable keyboard shortcuts in rendered content*
    The user should be allowed to disable and re-enable _recognized_
    _keyboard shortcuts_ in _rendered content_. (Level A)
    NOTE: The user agent may allow the user to disable and re-enable all
    recognized keyboard shortcuts together in a single operation, or may
    allow the user to disable and re-enable such shortcuts individually.
    *
    4.1.10b Allow users to customize keyboard shortcuts in rendered
    content*
    The user should be allowed to disable, enable, edit, add, or remove
    _recognized_ _keyboard shortcuts_ in _rendered content_. (Level AAA)
     
    *Notes on relevant definitions:*
    ·         _Recognized_ applies in markup language only
    ·         _Keyboard shortcuts_ are not yet defined, but I'm writing
    up a suggestion
    ·         _Rendered content_ refers only to sight and hearing

 
*Other comments on the proposed 4.1.10:*

   2. The draft wording is unclear whether it is requiring the user have
      (a) the option to turn on and off all shortcuts in rendered
      content as a single operation (that is, all are on or all or off),
      or (b) that the user be able to turn them on or off individually,
      or (c) that the user be able to substitute new shortcuts
      individually. I therefore split them into one SC for (a), which is
      easy to do, and one for (b) and (c), which are hard. (Note that
      the proposed wording of 4.1.11 says "all" keyboard shortcuts, in
      contrast to the proposed 4.1.10 which says "any".)
   3. ISO 9241-171 and ANSI 200.2 use a single SC for customizing
      keyboard shortcuts in both application UI and rendered content,
      and we could combine them as well. The main reason to keep 4.1.9
      (customize keyboard shortcuts in UA UI) and 4.1.10 (customize
      keyboard shortcuts in rendered content) separated would be if they
      have different priority levels, or so we could get rid of 4.1.9
      when and if we can simply reference ISO 9241-171 for all UI
      accessibility requirements that are not specific to Web
      functionality.
   4. ISO 9241-171 and ANSI 200 use the term "accelerator keys" for
      which "keyboard shortcuts" are listed as a synonym. The choice of
      terms for UAAG depends on what document we're trying to harmonize
      with. Which use "keyboard shortcuts" and which do we want to
      harmonize with?
   5. Per my comment #52, I recommend against using "author supplied
      [keyboard shortcuts]", and instead using a more inclusive phrase
      such as "recognized keyboard shortcuts in rendered content", which
      would include any specified by style sheets and the like
      regardless of their source.
   6.  If we wish to require or recommending allowing users to customize
      individual keyboard shortcuts in rendered UI, it would help give
      some specific examples of appropriate UI. Would that include
      something like (a) the user navigates to a link that has an
      accesskey property, invokes a popup context menu that includes a
      command to replace the accesskey, and/or (b) the UA provides a
      menu that displays a list of all recognized keyboard shortcuts in
      rendered content, and allows the user to disable, re-enable, or
      alter them?
   7. Per my earlier comment, *if* the meaning is to let the user
      replace (rather than just disable) existing keyboard shortcuts,
      why not allow them to assign new ones? I've made that explicit in
      my proposal.
   8. I recognize that saying "in rendered content" is redundant given
      the definition of "recognized" says it is only relevant in
      rendered content, but I think including the phrase helps greatly
      in making the SC clear when read on its own.
   9. Ideally I'd like to see us harmonize with ISO 9241-171 and ANSI
      200.2, and while I've had trouble changing this to their very
      general wording, but I'd be willing to go in that direction. Here
      is what they say:

 

     From ISO 9241-171 ("Ergonomics of human-system interaction -- Part
    171: Guidance on software accessibility"):

        *9.3.19 Allow users to customize accelerator keys*
        Software should enable users to customize the assignment of
        accelerator keys to actions.
        EXAMPLE 1 An application allows the user to create macros that
        carry out one or more actions and to assign these macros to
        accelerator keys.
        EXAMPLE 2 A user frequently presses "Ctrl+P" when he/she intends
        pressing "Ctrl+O", so disables "Ctrl+P" as a shortcut for the
        Print function.

     
    ANSI 200.2 ("ANSI/HFES 200.2 Human factors engineering of software
    user interfaces -- Part 2: Accessibility") uses identical wording
    except:

        * stylistic conventions (ANSI says "they mean to" while ISO says
          "he/she intends pressing", and ISO puts keyboard commands in
          quotes)
        *  conventions for indicating priority ( ISO says "shall" or
          "should", while ANSI always says "should" but adds tags for
          Level 1, Level 2, or Level 3)


*/_4.1.11_/

Proposed Draft 4.1.11: "Keyboard Command Override Persistence: *The user 
must have an option to save the override of all keyboard shortcuts so 
that the rebinding persists beyond the current session. (Level A) [this 
may be covered in 4.5.1 Save Settings)"
* *
*Recommendations on the proposed 4.1.11 (saving keyboard shortcut 
customization):*

   1. I recommend removing this as a separate SC and instead folding it
      into a general SC about the persistence of user preference
      settings. We could include a cross-reference, or include it in the
      list of examples of things that 4.5.1 requires saving.

 
*Other comments on proposed 4.1.11:*

   2. See most of my comments above re the proposed 4.1.10; most of them
      apply here as well.
   3. The proposed 4.1.10 is limited to "author supplied keyboard
      shortcuts" (meaning recognized shortcuts in rendered content") but
      the proposed 4.1.11 does not include any such limitation. Is it
      intended to be for both rendered content and UA UI?
   4. I don't feel it is reasonable to ask UA to allow the user to allow
      the user to replace individual shortcuts in rendered content and
      save those substitutions between sessions. Firefox can do it only
      with third-party add-ons (e.g. Greasemonkey); can any UA do it
      today natively? I would reduce that to AA or AAA. Accesskey in as
      interesting example because it cannot be used to provide
      functionality which isn't already available through other means.,
      which means the user could turn off access keys in the entire
      content without losing functionality, only efficiency.  This
      suggests that any success criteria around disabling or
      substituting access keys should not be Level A.  On the other
      hand, other Web technologies may allow content to specify shortcut
      keys that have no other means of activation, in which case this
      would have higher priority. On yet another hand, there are other
      means that the UA could provide to let the user access those
      functions that would allow avoiding shortcut conflicts but didn't
      involve substituting another keyboard shortcut. Another example of
      difficulty: if the user selects a field and overrides its
      accesskey using the UA UI, and this field is one of five on the
      Web page that are identical except for their accesskey values, if
      the UA is supposed to remember these settings, what does it use to
      distinguish one from another? The accesskey? The position in the
      document order? The spatial location? What if the document is
      different the next time it is viewed?

 
*/_4.1.12

_/**Existing Proposal for 4.1.12: "Keyboard Command conflict:* The user 
agent should inform the user when a specified keybinding in content or 
the user interface is missing from the user's keyboard and allow an 
override."
 
*Recommendations on the proposed 4.1.12 (notify of keybindings not 
available on the user's keyboard):*

   1. I recommend deleting this unless we can do a better job of
      explaining both the need and technical feasibility. Re need, most
      platforms allow the user to emulate those keys using key
      combinations or other utilities, and shortcuts are already not
      supposed to be the only UI for functions, so is the need really
      there? Re feasibility, are you sure it is possible on all major
      platforms for the UA to know when a specific key is lacking on the
      user's physical keyboard? Do any UA check it today for any reason?

 
*Other comments on the proposed 4.1.12:*

   2. The term "keybindings", not using the term "recognized", etc.
       here do not match the terminology of 4.1.9, 4.1.10, etc.
   3. The term "override" in this context is vague. If it means allowing
      the user to assign a replacement keyboard shortcut, we should say
      something that specific.

 
*/_4.1.13

_/**Existing proposal for 4.1.13 "Keyboard Command Reset:* The user has 
the option to restore all keyboard overrides to their default values."
 
*Recommendations on the proposed 4.1.13:*

   1. I recommend omitting this, because I think this should be handled
      by a more general SC for resetting all user preference settings,
      rather than one specific to this group of SCs, another for another
      group, etc. I'll do a separate post about that, including the
      wording from ISO 9241-171 and ANSI 200.2.

 
*Other comments on the proposed 4.1.13:*

   2. Is this meant to cover both UI and rendered content, and just the
      current content or all rendered content? What level of granularity
      would be too much or not enough to meet the intent? For example,
      one could argue that the guideline allowing the user to change
      shortcuts would allow them to set them back to the default
      value--or any other value they choose, but I think the intent is
      that the user should not have to look up what the default value
      was, right? Similarly, if the user has carefully redefined
      hundreds of keyboard shortcuts on dozens of web sites, and then
      really needs to reset one but the only way to do so means
      resetting all of them, is that doing a good job of meeting the
      user's needs?
   3. The proposed term "keyboard overrides" is neither used nor defined
      in the document. Thus I'd change to something like "user-provided
      keyboard shortcut substitutions" or "user-substituted keyboard
      shortcuts".
   4. If you feel like keeping this as a separate SC, I suggest wording
      more like "_The user has the option_ to cancel, as a single
      operation, all user-specified _overrides_ to keyboard shortcuts in
      _keyboard shortcuts_ in the _user agent user interface_ and in
      _rendered content_", or "_The user has the option_ to reset all
      _keyboard shortcuts_ in the _user agent user interface_ and in
      _rendered content_ to their default values as a single operation."

*
**_/Other

/_**Other high-level comments: *

   1. Noting that Firefox allows the user to add persistent
      customization of keyboard shortcuts to specific Web pages only
      with a third-party add-on (Greasemonkey) brings up a more general
      question: If a UA complies only with the addition of third-party
      add-ons, does that let them claim compliance? Does it even if
      those add-ons cost money, or is not available for all platforms?
   2. Rather than have a new SC that says that the user needs an option
      to reset these specific user settings to their defaults, weren't
      we going to have a general one that allowed resetting all user
      preference settings to their default values? ISO 9241-171 has the
      following:
   3. Determining the appropriate Level of any proposed SCs should be
      based on a clear understanding of their benefits and costs to
      users and UA developers, but we have been lax about including
      those in the document or in our posts. I'll separately post some
      language about that.


    Thanks,
    Greg

Received on Thursday, 11 June 2009 05:04:49 UTC