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




More information about the fluid-work mailing list