General Input Model [was: Seeking guidance...

After looking at Charles' response and thinking about what he and Bruce are 
saying, I've got a  proposal for a more general concept of focus. (which is 
probably not original... see the P.S.)

First point: "focus" is really keyboard focus.  "mouseover" is really mouse 
focus.

Here's why.

What does it mean for a object to get what we call "focus"?  It means it 
will respond to keypresses on the keyboard.  So a better name would be 
"Keyboard focus".

And what does it mean for an object to get mouseover?  It means first of 
all that the object will respond to a keypress on a key on the mouse.  (I 
mean the actual buttons on the mouse, not their keyboard equivalents).  So 
a good name would be "Mouse focus".

Now you might say there's more to mouseover that just mousefocus... it can 
trigger some other event like a popup.  But the same holds true for 
keyboard focus.  For example, receiving keyboard focus could trigger a 
prompt appearing somewhere (which I haven't noticed on the web, but which I 
remember from dumb terminal interfaces in the late 20th century).

So "focus"     is really   keyboard focus and
    "mouseover" is really   mouse focus

They are strictly analogous and independent.

So we need a way to change mouse focus independently of keyboard 
focus.  And without actually moving a mouse.  For example, we could define 
"mouse tab index" for element which would step mouse focus through all 
elements with those indices defined.

Furthermore, we should keep this general.  Current computers mostly have 
just two independent devices with keys... a mouse and a single 
keyboard.  But you could have, say, an extra numerical keypad, and I could 
imagine situations where it would be convenient for the keypad focus to be 
different from the focus of the main keyboard.

Also (now don't laugh) there can be interfaces with two pointing 
devices.  There was work on that at Xerox Parc some years back I believe, 
for two handed interfaces which were really rather cool.

So there we have it:  we need a general concept of   focus(device) where 
device can be one of some arbitrary number of devices.  Some devices may 
have keys... others would not.  And it must be possible to move any of the 
focuses independently to any object that responds to them, and with or 
without vision.

Len

p.s.
Now that I've said all this I have a distinct feeling of deja vu... that 
I've just reconstructed an old input model... maybe an old SunOS ...except 
that I've added the need for a keyboard equivalent... if someone recognizes 
this please speak up so we can give it it's proper name...
--
Leonard R. Kasday, Ph.D.
Institute on Disabilities/UAP, and
Department of Electrical Engineering
Temple University
423 Ritter Annex, Philadelphia, PA 19122

kasday@acm.org
http://astro.temple.edu/~kasday

(215) 204-2247 (voice)
(800) 750-7428 (TTY) 

Received on Friday, 7 April 2000 17:12:30 UTC