Pluggable key sets in the Reorderable
Anastasia Cheetham
a.cheetham at utoronto.ca
Fri Feb 29 19:37:31 UTC 2008
On preparing the Reorderer for user testing with screen readers, we
discovered that the current use of Arrow keys with the Ctrl-key
modifier conflicts with keystrokes commonly used by screen readers.
Jonathan and I have been investigating how to implement a 'pluggable
keys' capability in the Reorderer, i.e. allowing clients to specify
which keys and modifiers to use. We're including the possibility of
allowing multiple 'key sets' (e.g. so that we can continue to use the
existing Arrow keys *and* add keys that will work with screen readers
at the same time).
The issue is turning out to be... challenging :-) The issues are not
insurmountable, but finding elegant, efficient ways of surmounting
them is a challenge.
Challenges:
0) How to we communicate effective instructions to the user?
1) Keeping track of which modifiers go with which keys:
Suppose two concurrent key sets are:
Arrow keys with Ctrl modifier
Numpad keys with Shift modifier
When an Arrow or Numpad key is pressed, we need to know which modifier
to check with. Viewed another way, when one or the other modifier key
is held down, we need to know which set of direction keys should cause
movement.
2) Overlap between sets of modifiers:
Suppose one key set uses Ctrl as the modifier on Arrow keys, and
another uses Ctrl+Shift as modifier on Numpad keys.
When should the styling of a thumb change from default to 'about to
move'? What if the user holds down the Ctrl key and sees the style
change, then hits the Numpad keys to move, and nothing happens? This
is more of a usability question than a technical one, but it is still
a question. The same issue could arise with point #1 above (though the
confusion might be more likely in this example, given that the Ctrl-
key is used in both key sets)
3) Conflict between direction keys:
This is highly unlikely, but there's nothing technically stopping a
client from specifying the F-key as a left movement in one key set and
the F-key as a right movement in another key set.
Some questions:
A) Should we restrict clients of the Reorderer to a single (user-
specifiable) key set?
B) Should we restrict clients to a single modifier set, and only allow
multiple sets of 'direction' keys?
If anyone has any thoughts or ideas, or knowledge of existing ways of
dealing with these issues that we haven't found, we welcome your input.
--
Anastasia Cheetham a.cheetham at utoronto.ca
Software Designer, Fluid Project fluidproject.org
Adaptive Technology Resource Centre / University of Toronto