a companion discussion area for blog.codinghorror.com

The Opposite of Fitts' Law


One of the strangest design decisions of Mac OS X is the moving the close window box to be right next to the minimize and maximize window buttons. In the original Mac “System” release, the close and maximize boxes were on opposite sides of the window. You couldn’t miss aim unless you really, really couldn’t tell your left from your right.

In Mac OS X, the closed and maximize boxes were moved to the same corner of the window. And, unlike Windows, their both now just round little buttons. Yes, their different colors unless you suffer from red/green colorblindness like 10% of the male population. Then, good luck telling them apart.

Apple’s interfaces are usually beautiful works. They’re minimal in visual clutter and very effective. However, Apple took two buttons that did two completely different tasks, and moved them to be right next to each other, then removed the visual difference between the two.


@Davraamides: The screenshot for WordPress has been cropped; the element you are seeing is actually located on the right side of the screen.


Great post. I’ve known about Fitts’ Law since forever, but you’ve made me see it in a new way. I’m now going to see eject levers everywhere.


P.S. Login with openid was hell. typepad does not accept yahoo.com as claimed on yahoo’s openid page. Orange! ORANGE!!!


hmm, Dirty Harry reference?

“I can tell what you’re thinking. Did he click Send or Save Now? Well, to tell you the truth, in all the excitement of composing that angry email, I kind of lost track myself.”

…But being as this is Gmail, the most powerful webmail in the world, and would blow your emails clean off, you’ve got to ask yourself one question: ‘Do I feel lucky?’ Well, do ya, punk?


I’ve said it before, and I’ll say it again: cars need a better UI, and for exactly the reasons you’ve listed here (http://stackoverflow.com/questions/238177/worst-ui-youve-ever-used/2058751#2058751).


I am fascinated by this Google Labs “Undo Send Mail” feature. So, how does it exactly work?

You click “Send”, the recipient receives it, she reads it, gets mad at you.

Later you realize you shouldn’t have sent it, you hit “Undo Send Mail”, then a man in a black suit working for Google sneaks in the recipient’s home, hacks her e-mail account and deletes the post, also from her computer if necessary, then flashes a bright light in front of her, while saying “You never received that e-mail. It was a meteorological balloon”.

How clever! I wonder how I could have agreed for a second with the post, thinking that sending e-mails cannot be undone!


@Sigivald: “As far as I know, all available research suggests that the vast majority of people (other than a subset of SuperGeeks) run everything maximized whenever possible…” I agree that that is true, but many web based apps are centre aligned (e.g. StackOverflow) and in these cases there is still nothing snapped to the edge of the screen.


@isilanes: The undo send option just delays sending all emails by a few (20, I think?) seconds. During this interval you can hit undo, aborting the send and turning the email back into a draft. Most of the time, a delay of 10-20 seconds on a send isn’t a big deal, and it’s long enough to realize “Oops! I didn’t mean to send that.” and undo.


Am I the only one that is constantly confused by the simple OK/Cancel button order? This seems to be making it’s way to web apps, mobile apps, and everywhere else, I believe from Windows.

Do you want to do operation X
[ OK ] [ Cancel ]


Do you want to do operation X
[ Cancel ] [ OK ]

I think some argue, it should change based on context, if the most often action is to “OK”, then that goes right most, or if the most often action is to “Cancel”, then that should go rightmost.

I argue, it should be consistent, regardless of action context, and the positive action should always be the right most. If you want to over-ride the default, set the pre-defined selection on the button you desire, so it is enter/return key ready.

“OK”, “yes”, “Go”, or whatever it is, should always be right most. I could also argue, the name should never change. If it has always beeb “Do it”, then all apps, web, mobile, or desktop, should use “Do it”.


Since we’re on the UI topic I’d like to share a link I’ve been sitting on for a while.

An experimental clickless UI concept (flash)


I don’t see it replacing the click anytime soon, but I’ll give them points for creativity.


Visual Studio helpfully puts “Go to definition” (instant, basically) and “Find all references” (takes a few seconds at least to get going) right next to each other. It catches me out at least once a day :@


BMW/Mini puts the stability control switch (DSC) at the bottom of the center stack, near the seat heater switches and on the Mini, the window switches.


They are naming the switch “DSC Off” (it’s on by default) in some recent models & the window or seat heat switches are at the ends of the row to make them easier to find.


My touchscreen ejector seat: the Send button in the iPhone SMS composer. Within a finger’s width of both the O and the P key. Gets me every time.

@Davraamides: crucial to keep in mind that although items are easier to click if they’re on the screen edge, being near the edge - even one pixel away - completely removes the benefit. In fact, putting something near the edge probably makes it a bit harder to click, because it’ll more likely be further away from the user’s start position (compared to, say, an object in the centre of the screen). The Mac OS menu bar is a fairly rare example of an effective application of the rule.


I’m a Scrabble fan and regularly play Scrabble and Words With Friends on my iPhone. The former app follows the above rule correctly. The latter does not.

Scrabble puts the Play Word button in the lower right corner where it’s the easiest to hit. WWF puts the Resign button in that corner. Despite playing the game daily for months, I still consistently accidently hit Resign several times a week. There’s a confirmation dialog, but that uses “Yes” as the default answer. I’ve actually had opponents accidentally resign on me during a game. Very frustrating, as there’s no way to resume a resigned game.

(WWF also buries the Play button in the center of the toolbar, right to next all sorts of similarly sized buttons, making it frightfully easy to hit the Recall button right next to it. I hit that all the time, which undoes my word and brings all my placed tiles back into my tray.)

I have complained ceaselessly to the WWF authors to fix these simple problems, but their system still shows my bug reports as “waiting to be looked at by a human.”


That explains why I keep clicking the “Report as Spam” button every other week.

Silly Gmail.


I think Apple’s Mac OS X UX designers could learn some incredibly valuable lessons by paying attention to Fitt’s Law and this post. It’s amazing ows such a commonly lauded OS can have so many little design flaws (ones that the “Cult of Apple” so willingly overlooks.)


Re the Macintosh menu bar, I usually use the menus only for commands that either don’t have keyboard shortcuts or have shortcuts I don’t know. I’m used to mousing to the top of the current window for the menu because of Windows, so it’s generally frustrating for the first few hours when I use a Mac. But I do like being able to access, say, Safari’s menu without opening a browser window.

I too noted that Gmail’s buttons in the message editor are very close together. Normally emails can’t be un-sent, but I turned on the Gmail Lab feature mentioned above just because I often accidentally send messages or hit send before I’m really ready. It probably would help if the Gmail team moved the Send button to the right side. While we’re at it, maybe the “Discard” button should become a link or an entry in the “More Options” menu.

The Archive/Report Spam thing doesn’t bug me much because I just use the keyboard shortcuts, but it’s still kind of bad UI design.

@Elwin: I hate accidentally overwriting my clipboard! I’d start advocating for moving Paste to Ctrl-P, but that’s taken by stupid printers (how much do I print? a lot less than I paste). a, s, and t are taken in most apps. There really isn’t a good replacement for V.

Login via OpenID is definitely hell. I tried and was logged in as “Technobabbl” (my OpenID is http://technobabbl.es/). A bug in my WordPress installation currently prevents me from using the standard flow, so I have to manually add trusted sites. I guess that killed the import of my username. Glad I already had a TypeKey account.


Arwagner (the first commenter) hit the nail on the head. It’s not the opposite of Fitts’ Law. It’s just Fitts’ law just applied in different ways - one to facilitate clicking, one to impede clicking.


I do some programming in MS access from time to time. I find that positioning is not as critical as size. as far as the ejector seat button - I tend to put one of those little red covers over it. A form in a database using the do.cmdOpenForm function can be opened as read only or be able to be edited. You definately dont want some goober going and opening it in editable form and then clicking on stuff - thus changing, deleting or otherwise messing stuff up. I usually have a check box to unlock another check box saying (in a more kind way) “Hey user of below average know how -if you choose to edit stuff you may loose data”. Check boxes are small, and there is two of them. Someone who sees the “click this and it may break” check box will also tend to be scared away from “exploring”.


Although I totally get your point, I don’t think the examples are that well chosen. In Gmail for example, all the buttons have an undo functionality. Also, none of them is a real ejector seat lever, since many people use all of them regularly. The main Problem with the WordPress dialog is probably that that nor the delete link looks like a link (color), nor the button like a button (compare with gmail).

A good (but not directly gui related) example that comes to my mind is the former name of the TextMate terminal interface. (TextMate is a text editor for Mac.) The command was “tm”. It was changed to “mate” because many people accidentally typed “rm”.