UI design by committee

Tim Rowledge tim at sumeru.stanford.edu
Mon Feb 28 19:06:04 UTC 2005


Giovanni Corriga <gcorriga at unica.it> wrote:


> > But the middle button is the right button. The right button is the
> > wrong button. The left button isn't the right one either.
> > 
> 
> Tim, can you expand your thoughts here? It may be my past Linux &
> Windows experience, but I feel the right button to be better then the
> middle one for invoking the menu.
>
The original format I got used to - since it was the only available GUI
at the time - was Smalltalk's; left button to select, middle button for
context menu, right button for window menu. That is a good hierarchy of
meaning, going from very local (a single pixel, a character range, a
button, a list item) upwards to the near-global of changing the menu.

I should mention that the current Squeak idiom (idiocy!) of using the
select button to open a menu when on the main display is really stupid
and can only be explained by the initial connection to Mac single
button mice. Which is another dim idea.

The other good use of three buttons I'm familiar with (partly because I
helped define it) is from RISC OS. There we have again the left button
being to select and the middle button to open a menu. However the right
button is a bit more interesting; it 'adjusts' the selection. It's a
bit difficult to explain this without it seeming incredibly complicated
but it works extremely well.

At the simplest level, 'adjust' can extend or shrink a text selection -
like using shift-select in Squeak - or add/remove files to a selection
in a filer window - like using option-click(?) on Macs. It can also
'adjust' the scrolling action; use select on the down scroll arrow and
your text will scroll up as expected but 'adjust' and it will go in
reverse. No need to move the mouse. Works for single line scroll and
page jump. Saves motion.

It also works in menus. RISC OS menus are a little different to Squeak
menus in that you must click on a menu entry to choose it. If you
'adjust' on a menu entry it selects BUT does not dismiss the menu and
lets you select more items. For example, one can do menu>'select all'
and menu>'ROT13 selection' without having to open the menu twice.

While I'm on the subject of menus, RISC OS uses an interesting approach
born, I think, of a lack of understanding of the idea of subpanes back
in 88 when we were doing the initial stuff. Even though I shewed off
Smalltalk running on handmade prototypes and illustrated the menus, the
RISC OS GUI ended up with the idiom of a main menu for the app window
that is essentially a vertical menubar with 'very common' entries in
the top level. Since hierarchical menus work very well if done fast
this is surprisingly effective; add in rapid rebuilding of menus to
account for whether anything is selected or not and it makes for a very
fast GUI. Oh, and no having to move the mouse to the top of the screen
or top of window and pick a tiny target a long way away.

In RISC OS web browsers we use select to follow a link, just like any
other platform, but 'adjust' on a link opens a new tab/window - just
like apple-click in safari but without needing to reach for the
keyboard.

Basically, three buttons is a good number for mouse buttons since you
can hold the mouse with littlefinger and thumb and use three fingers for
buttons. Assuming of course that the mouse if physically well designed
and believe me most of them are not. Scrollwheels? Yuck. If you have
three buttons, use them sensibly.

So, that's the outline of why three buttons are good and why the menu
should be on the middle button.

tim
--
Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
Any sufficiently advanced bug is indistinguishable from a feature.  - Kulawiec



More information about the Squeak-dev mailing list