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.