24 Nov 2005
(updated 24 Nov 2005 at 23:43 UTC) »
Been having some thought about positioning of "context-dependent" menus (the ones that come up with a click of the right mouse button).
Constraint 1: they need to be visually close to the selection point to enable the user to infer that they are related (related to Gastalt theory: because it is close, users infer a relationship. Too far away, and it's context is inferred as belonging to something else);
Constraint 2: they should NOT overlay what the user is examining. Often, users need to look at what's underneath the menu.
These constraints are often exclusive. Doing one breaks the other - if the menu is close to "the action", it can easily block what has been selected. However, if it does not block the selection, it is too far away to be immediately (and obviously) related to the item.
How to get around this? The answer is actually quite simple. There needs to be some way to display the pop-up menu far away enough from the selection so as not to block it (and, ideally, not block other close items), and yet retain the visual connection with the selection. Here's where alpha blending can play a role: using something like a transparent connector (from furthest edge of selection to edge of menu for both edges in a plane) does not block the selection and displays to the user that the menu is related to that selection.
Theoretically, this means that the menu is shown retaining a visual connection to the selection, and yet does not require immediate visual proximity. It's not an ideal solution, but so much of HCI and usability requires compromise. It also breaks Fitts' law somewhat, but the time penalties incurred are minimal when compared to those incurred by loss of task.
Note: I am NOT talking about transparent menus: ever tried to read a text with another super-imposed? It's hard work and distracting and very bad usability and even worse if both need to be read.. Keep the two separate and yet connected, and there should be success.