[ctp availableData]

Flattery Gone Wrong

Imitation may be the sincerest form of flattery, but if you’re going to imitate something for crying out loud get it right.

Lately, I’ve had to use the Firefox browser for some things. It renders nicely. It’s pretty quick. They’ve done a great job on making it a functional browser, but it’s a textbook case of how cross-platform attempts at things can be screwed up by not understanding how the UI on the target platform actually works.

The thing that pushed me over the edge on this one is Firefox’s attempt at sheets. If you’re using Mac OS X or can watch over someone’s shoulder who is, try this: launch TextEdit and type a few things into the window. Hit cmd-W and watch what happens. A sheet drops down asking if you want to save the document:

There are two important things to notice about this sheet:

  1. The sheet is document-modal. For that window, the only thing you can do is answer the question about what action you wish to take. However, you can still interact with any other window in your application.
  2. That document-modality has an additional implication: if a sheet drops indicating the changing of settings, then those settings should apply only to that window.

Here’s where Firefox gets it wrong: their sheets do none of these things.

  1. The sheet is application-modal. When the about box for Firefox or the preferences dialog is dropped as a sheet, I can do nothing else with the rest of the application. I can’t switch to another window to do other browsing.
  2. The settings that are described in the preferences dialog apply to the entire application, not just the window the sheet is attached to.

Don’t get me wrong: I like Firefox. It does almost everything browsers should, but it’s things like this that make it annoying to use on the Mac. It’s presenting Macintosh-like interface elements without respecting the proper use of those interface elements. It’s almost like someone saw sheets on the Mac and said “Hey! That’s how they do dialogs!” without actually reading the documentation on dialogs and when to use them.

If you’re going to live on a platform, you should try to match its interface idiom as much as possible. The mismatch between what Firefox does with sheets and what the rest of the OS does with sheets makes Firefox less-pleasurable to use on Mac OS X than Safari, even if for some of the stuff I’m testing Firefox works better than Safari does at the moment.