Fitts' Law and Infinite Width

Fitts' Law is arguably the most important formula in the field of human-computer interaction. It's..


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2006/08/fitts-law-and-infinite-width.html

Ethan: That works perfectly. The minimum offset is even the same as what I wanted. I didn’t know that they were adjustable when the resolutions are the same. Thanks.

I forget where I read this, but this so-called law has been proven useless in practice. Users learn within a couple of hours to be precise with the mouse and stop exactly at the right location.

Plus, how exactly important is ‘hitting’ the main menu? It’s not, it is not what the user is clicking the most during the day, the user needs a lot of mouse precision and skills for what he is doing the rest of the time. Most mac users use a small set of keyboard shortcuts for a small set of application global commands, and there are toolbars for things that need to be done quick with one click. Going in the menu is not a one-click action.

Hitting the menu is NOT a complete action in itself. Mac menus may be of “infinit height”, but 1) you still need to click on the exact word, which may be only one inch wide (and I do miss the mark quite often on my iBook) 2) you need to hold down the mouse and reverse the direction of the movement and precisly hit the menu item you need. Therefore, selecting a menu item is not a vague gestural action.

As for the Start menu having a small border, it’s annoying indeed but a very slight annoyance as, again, you’re not suposed to be an hurry to hit it and you’re not typically hitting it repeatedly. There is also a big fat Windows key to open the menu and save you some mouse travel.

In otherwords, while it’s totally true that there shouldn’t be one-pixel dead boarders around the sceen because they are misleading, in terms of speed of access this is often an edge cases optimization.

Hitting the corder and borders of the screen with the mouse is put to good use in a couple of apps, however. For example, on a Discreet Frame/Toxik, hitting the borders switches the screen to another window, like switching virtual desktop. And of course we know that screen savers have used the screen borders

Maybe the scrolling sections of the touch pad could be isolated by subtle ridges.

My start button takes up the whole of the bottom corner - no pixel margins.

I assume you guys complaining about it are using the ‘old-style’ windows theme.

I like shiny buttons.

It has always annoyed me that the windows start button is slightly in from the corner. In XP if you click in the corner you can see the cursor jump diagonally on to the start button.

Ok, this is fine. I have two 20" LCD’s and have my taskbar 3 rows high. 2 rows for opened programs (I hate grouping) and 1 row for quick lauch. The quick launch is at the bottom and I have about 25 icons in it. Infinitely deep, you might say. But the bloody start button is anchored top-left, instead of bottom-left. I can’t slam my mouse into the corner to hit Start…

I like shiny buttons.

No worries, Vista has that big-ass shiny circle of a start menu that takes up the entire left hand corner. It’s like Fitts’ Law pornography.

I think Windows does a good job utilizing the edge at bottom of the screen with the taskbar (which, by the way, unlike Apple’s one-screen menus, can spread across multiple monitors in a logical way) and start menu. I just wish we had more stuff along the top edge!

I use key combinations where possible instead of menus :slight_smile:

The menu bar is always on the same monitor. You can choose what monitor you want it to be on in the Displays part of System Preferences. The dock always locates itself on the same screen as the menubar.

I can only speak to my workflow, but I keep the app(s) I’m working with on the primary display. The secondary display (for I have but a two-display system) holds ancillary apps. I’ve I have a video playing while working, it’ll be on the second screen. If I’m working on a web layout, the browser will be on the second screen. Or I’ll have a browser window open with an API reference on the second screen.

Basically, the windows on the second monitor don’t get as much interaction as the ones on the primary monitor. But even then, I personally don’t use the menus that much anyway. The keyboard equivalents for the important commands in the apps of my core toolset are fairly hardwired into my brain.

But, if I do need to use the menus, I always know exactly where they are. They are consistently and predictably at the top of the main screen. Since I run a two monitor setup with the second display on the right of the primary, the left edge of the primary display is a hard edge. Thus, from anywhere on either screen, I just have to make a quick motion up and to the left with the mouse to fling the pointer onto the menubar. No finesse or aiming required and no chance of overshooting.

Proximity isn’t entirely lost, because Mac OS X provides a standard toolbar control that most apps make use of. These are 32x32 icons, so only the most important tasks are represented. But, it is just a toolbar.

One nicety I will point out is that the Apple menu extends all the way to the left edge of the menubar. And the Spotlight menu likewise extends to the right edge, so while it looks like there are 10 pixels of wasted margin, they are actually active areas.

As far as trackpad scrolling, I have to admit that since getting my MacBook, I have become a complete convert to Apple’s method. Basically, one finger will move the cursor around and tapping with one finger will left-click. Two fingers will scroll vertically and horizontally, and tapping with two fingers will right-click. No special areas, so no accidentally hitting the wrong part of the pad. It took about two weeks to adjust from the edge of the pad style, but now that I have adjusted, there would be a lot of kicking and screaming if I had to go back.

Nice Jeff, I must be living under a rock, because I did not know about Fitt’s law. What do you recommend for reading to gain more experience/knowledge in terms of user interface design?

I have not worked seriously with MacOsX, but I try to save up for a mac. People I know, who work on Mac are mostly not the technical guys and they just use the mouse for navigation in browsers and graphic applications. MacOsX is often said to be more “pretty” then windows, but how useful is it. How is the daily OsX user experience for a software developer?

With windows I don’t like the Start button or actually I don’t like much of the navigation. I just use QuickLaunch, SlickRun and Total Commander. I think it is only with browser navigation I use the mouse. But again I use very few applications.

I haven’t tried Vista, but is it possible to rearrange your applications in the taskbar? The “group by application” was never something I fell for.

In my personal experience the windows UI doesn’t really feel like multitasking, though it has improved a lot. But I never understood why applications should be allowed to take focus from you constantly. Like if I start a application like Photoshop that takes some seconds to load, I click away to some other application, then I don’t think that the application should gain focus before I select it again.

But I guess, user interface is a matter of the users choice.

I think Ubuntu (and many other flavors of Linux) uses a method similar to OSX for its menus. They are at the top edge, so they have the “infinite height” feature.

For windows, it is hard to take full advantage of Fitts’ Law, since you have to override the default user experience and make your own toolbar/menu bar stuff.

I wonder if anyone has a way to move the toolbar out of the app and into it’s own space at the top of the screen?

My feelings is Windows menus has to be more flexible…Provision should be there to make it more customizable and floating…

I’m also irritated by trying to close things on a multiple monitor setup. I /almost/ went so far as to make a mouse hook that would stop the cursor from crossing monitors at the top inch or so. Then I considered how much experience I have writing low level OS hooks (none) and what could go wrong and decided to pass on it.

I use key combinations where possible instead of menus

This is interesting because I use the keyboard all the time, and I often use the “corner” of a document or whatever to orient myself. Most MS apps move the text cursor to top left on Ctrl+PgUp, to bottom right on Ctrl+PgDn, etc. I especially (re)orient myself to the “top left” part of a document (or spreadsheet, for that matter). Point being (I think I have one) that the idea of pinning to a fixed point is not just applicable (in my case) to mouse pointers, but as a psychologically for the text cursor as well.

Of course, I could just be completely wrong.

As for mouses, way more often than seems right I miss the thing I’m trying to click on and hit its neighbor. I notice that particularly when trying to click the top row of something (e.g. Outlook display). It’s too dang easy to hit the column header instead and wait till sorting is done, and then start over, sigh. More generally, anytime the hit area for two things is very close, it’s easy to click the wrong thing. Worst of all is hitting the wrong icon on the Quick Launch toolbar and – oh, no! – now you’re stuck waiting for MusicMatch (or VS, haha) to finish its interminable startup.

Peter:

I think you will find the link to Bruce Tognazzini’s article most helpful.

iBut I guess, user interface is a matter of the users choice./i

Yes and no. Fitts’ Law is an example of no. It is true, like it or not, know about it or not, used to it or not. Bigger targets are easier to click, and edge-adjacent targets are effectively infinitely big. There are plenty of such truths of interface that extend beyond what the user is used to or favors, and good interface design requires attention to these.

That said, familiarity has a lot to do with comfort and ease of use and users frequently prefer the familiar to the more usable. Design is hard.

hitscan – my suggestion is to raise the center/primary monitor, both physically and in the software “arrangement”. That creates a little “trap” in the upper left and right corners, where you can use the edge to catch the mouse when you shoot for that close button. As long as you’ve raised the center monitor physically as well, you mouse will still move from screen to screen smoothly, so it should be intuitive.
(personally, I keep my screens flush and use keyboard shortcuts for closing windows… shrug)

I couldn’t live with the Mac menus - for my way of thinking menus need to be associated with the objects they apply to. For me, it is like the Mac menu is assuming you only have one thing on the screen at a time (although I presume it is focus sensitive). It just does not feel right from a multi-tasking perspective.

My dad and I both have Compaq laptops (they were free; long story) and they have a small ridge separating the scroll bar area from the regular mousing surface; it works pretty well.

Third, I cannot see the menu for the application I want work with unless it is already active. That means moving the cursor all the application, then all the way back to the menu. I cannot imagine doing this on a multi-screen system.

Fitts Law. It takes less time and effort to fling the mouse to the top of the screen and choose a Mac menu than it does to choose a Windows menu. The Windows menu has to be located in the X and Y axes, the Mac menu only has to be located in the X axis, because as Jeff said in the post, Mac menus are infinitely tall.

Except you missed the whole point: to get to the menu, you first have to find and click on the application the menu belongs to, which cuts out a lot of the benefit of having the menu at the top. There’s more than Fitts’ Law involved in this case.

My problem with mac menus is that I never can see them.

First, since they are no where the window I am working with, I don’t think of them being related.

Second, I have no way of knowing if the menu applies to the dialog box I am working with or the application as a whole.

Third, I cannot see the menu for the application I want work with unless it is already active. That means moving the cursor all the application, then all the way back to the menu. I cannot imagine doing this on a multi-screen system.

The touchpad is the Spawn of Satan. Thanks for pointing out yet another reason to hate that infernal, cursed “invention”.