Fitt's law and menus

Frank Ritter

20 Nov. 1997, revised 12 Dec. 97

According to a simple version of Fitt's law (taken from Card, Moran and Newell, 1983), the time to move to a target takes about

100 ms * log2 (Dist/target + 0.5)

100 ms * log2 (2* Dist / target) has also been used according to Card et al. They are different, but taking the log of the result means they are quite similar in the end. If you look around, there are other corrections available, but I believe they all use log and dist/target.

There are more complete and thus more accurate versions, but consider this one for now since it illustrates the basic relationships.

Distance is usually taken to be the middle of the target, and the target's size is measured in the direction of movement. Clearly, target width orthogonal to movement has some role (or else a 200 item pie menu would be fast indeed), but is not included in this simple equation.


Consider a popup pie menu

    ------
  / \ | /  \
 | ___x____|    mouse starts at 'x'
 |         |
  \  /  \  /
    ------
 

Each slice, according to Fitt's law, takes about

100 ms * log2 (Dist/target + 0.5)

There will be two types of moves, to the target and off the menu.

The menu above, on my browser, has roughly a 1 cm radius. All targets have the same distance and target size.

Ttarget = 100 ms * log2 (0.5 cm/1 cm + 0.5) = 0 ms

Tabort = 100 ms * log2 (2 cm/3 cm + 0.5) = 22 ms

Trelease = 150 ms (from the KLM)

Of course, there cannot be negative times, but the results suggest that the time is very short indeed.

Total time for 6 items is 6*(click+move+release) = 6*(150+0+150) = 1800 ms.


Consider a square popup menu

 -----------
 |  |   |  |
 -----------
 |  | X |  |   with X indicating where mouse starts
 -----------
 |  |   |  |
 -----------

There will be three types of moves, to the side and top targets, and off the menu.

The menu above, on my browser, has roughly a 1 cm item side.

Ttarget side = 100 ms * log2 (1 cm/1 cm + 0.5) = 58 ms

Ttarget corner = 100 ms * log2 (1.41 cm/1 cm + 0.5) = 93 ms

Tabort = 100 ms * log2 (6 cm/10 cm + 0.5) = 14 ms

Trelease = 150 ms (from the KLM)

Total time for 6 items is 6*(click+move+release) = 3*(150+58+150) + 3*(150+93+150) = 2253 ms.

Not as fast as the pie, but the results suggest that the time is very short and pretty uniform across items.


Consider a pull down menu

 -----------
 |  title  |
 -----------
 |  item1  |     with X indicating where mouse starts
 -----------
 |  item2  |
 -----------
     etc.

There will be three types of moves, to the menu, to the targets, and off the menu.

The menu above, on my browser, has roughly a 1 cm item width, and the mouse will start 12 cm away on average.

Tmenu title = 100 ms * log2 (12 cm/1 cm + 0.5) = 364 ms

Tclick = 150 ms (from the KLM)

Titem1 = 100 ms * log2 (1 cm/1 cm + 0.5) = 58 ms

Titem2 = 100 ms * log2 (2 cm/1 cm + 0.5) = 132 ms

Titem3 = 100 ms * log2 (3 cm/1 cm + 0.5) = 181 ms

Titem4 = 100 ms * log2 (4 cm/1 cm + 0.5) = 217 ms

TitemN = 100 ms * log2 (N + 0.5)

Tabort = 100 ms * log2 (6 cm/10 cm + 0.5) = 14 ms

Trelease = 150 ms (from the KLM)

Total time for 6 items is for item 1 to 6 (click+move+release) = (150+58+150) + (150+132+150) + (150+181+150) + (150+217+150) + (150+246+150) + (150+270+150) = 2904 ms + 364 move time at least once, with smaller move times to select again (e.g., after item 2, have to move 2 cm back to title)

Not nearly as fast as the popup pie (1800 ms), and the selection time varies by item.