Strong opinions, weakly held

The tabbed interface schism in OS X

Almost a year ago, I wrote a post complaining about inconsistencies in keyboard shortcuts for navigating tabs. My complaint then was that not all applications use Command-# to navigate among tabs (or Control-# to navigate among tabs in Windows).

As I mentioned in passing in that post, Safari uses Command-# to select bookmarks in the bookmarks toolbar. To move between tabs in Safari, the keyboard shortcut is Command-Shift-Arrow (left and right). Since that post, Leopard was released with new versions of iChat and Terminal with tab support, and they both use the Command-Shift-Arrow convention.

This has created a schism in the OS X world. What I’ll call the “third party” convention for keyboard shortcuts is as I described in my earlier post — Command-# to select a tab. This convention is supported by Firefox, Adium, iTerm, Textmate, and probably other applications as well. As far as I know, only Apple applications support Apple’s convention for tabs. There are other approaches as well, for example, in NetNewsWire, Command-{ and Command-} are used to move between tabs.

Based on my investigation, Apple still doesn’t offer any guidance in the Human Interface Guidelines on how tabs should be implemented in OS X applications even though they are a widely adopted interface convention, and Apple appears to have adopted a specific convention for them internally.

My main complaint is that having two different conventions makes it difficult to switch between Firefox and Safari, but I predict that this will become a bigger problem as more applications add tabbed interfaces. If I were an OS X software developer, I think I’d adopt Apple’s convention were I starting from scratch, but I’m not sure what the best approach is for other applications, especially cross-platform applications like Firefox. I don’t think that Apple could migrate to the third party convention because too many applications already exist with different functions mapped to Command-#.

In the meantime, I guess we’ll deal with confusion and inconsistency.


  1. In Firefox you can also switch between tabs using command-option-arrow, which almost makes it easier to switch between FF and Safari.

  2. Camino uses command option arrow, not command shift arrow, so it’s different from both Firefox and Safari (but I’d argue closer to Apple’s convention).

    It also uses command-# for bookmark bar entries, like Safari (and unlike its Gecko-powered relative Firefox). However, it only does this if the bookmark bar is showing: the rationale for this is in a bugzilla entry. I still find this an odd decision, but the team seem set on it.

  3. I just checked out the Tab or Window menus for a few apps. Safari, Terminal, and NetNewsWire all list cmd-{ and cmd-} in their menus, but also respond to cmd-shift-leftArrow and cmd-shift-rightArrow.

    As a developer, my thinking is that doing the same thing as Safari is the best bet, given no other guidance. (Safari because it’s probably the most commonly-used tabbed application from Apple.)

  4. Command-Shift-Left/Right used to be my preferred shortcuts for this reason, but they don’t work if focus is in a textbox, so I’ve forcibly trained myself out of it. Annoying.

Leave a Reply

Your email address will not be published.


© 2024 rc3.org

Theme by Anders NorenUp ↑