Wandering Thoughts archives


Some little things Firefox gets right

One of the marks of good software is that it understands how users think it works, and makes itself work that way. Two little bits of how Firefox works make a good illustration of this.

Start with Control-+, the keyboard shortcut for increasing the font size. You may have hit this all the time, but let me ask you: do you type it with Shift? The top number row '+' is a shifted key; without shift, you have actually been typing Control-=. Firefox is specifically programmed to recognize that in addition to a real Control-+ (as you might type using the numeric keypad).

(In fact the irony grows; Firefox on Unix does nothing in response to the nit-pickingly correct Shift-Control-= version. This shows how infrequently people actually type it 'right'.)

A bigger example is Control-W, the standard shortcut for 'close window'. When I first tried out tabs I opened up a number of them, switched to one, finished reading it, and automatically closed it with Control-W. It wasn't until somewhat later that I realized how nice it was that Firefox hadn't just closed the entire window, as it had a nominal perfect right to.

This shows that Firefox has the right conceptual model of Control-W's behavior; to people, it's not 'Close Window', it's 'get rid of this web page'. So when you're using tabs, the right thing to do is close the tab not the entire window, and that's what Firefox does.

In both of these cases, Firefox is not sticking to a strict model of its behavior. Control-+ is not actually Control-+; Control-W is not always 'Close Window'. Instead it's going with how users think it works, and the result is much nicer.

(Yes, I know Firefox changes the 'Close' label in the File menu when you have tabs open. That's just another of those little things.)

programming/CleverFirefox written at 01:54:00; Add Comment

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.