Thursday, July 27, 2006

IE7: Microsoft's Ctrl+Tab behavior rationale

Earlier today, Aaron Sauve from Microsoft's Internet Explorer 7 team made an interesting post to the IE Blog covering the IE team's rationale for the various default behaviors in IE7 with respect to multiple tabs.

As of the latest IE7 beta (beta 3), the default behavior when using the Ctrl+Tab keystroke to switch to the next tab (or Ctrl+Shift+Tab to switch to the previous) tab is to define the "next tab" as the tab to the right of the current tab as the tabs are displayed along the top of the IE7 window.

An alternative behavior, available via a checkbox in the Advanced tab of IE7's Internet Options dialog, is to have the Ctrl+Tab switch to the most-recently-used tab instead of the "next" tab. This is how the Alt+Tab application-switch keystroke works in Windows: pressing Alt+Tab once switches you to the application you were using most recently (not the application to the right of the current application's button in the Taskbar).

As I've blogged previously, I feel pretty strongly that the "most recent" tab switching order should be the default behavior for Ctrl+Tab. It's more powerful than the "left to right" behavior, as it can be used to quickly toggle back and forth between any two open tabs.

The reasons that Aaron gives for the "left to right" order being the IE7 default are:

  • We value predictability over the more focused compare scenario.
  • We want to be consistent with other apps that use tabs throughout the system.
Regarding the predictability issue: Let's go ahead and assume for the moment that the "left to right" behavior is in fact more predictable. However, I would expect that the Ctrl+Tab keystroke would be used most frequently by more experienced users. Less experienced users would probably be most likely to activate a tab by clicking the desired tab with the mouse. Given that keystrokes such as Ctrl+Tab will most often be used by "power users," I would argue that the fact that the "most recent" switching order behavior taking a bit more time to "get the hang of" is a lesser concern.

Regarding the issue of being consistent with the behavior of other applications, I went ahead and briefly tested a few other Microsoft apps that I have on my system. Of the applications I tested, Microsoft Excel was the only application that has a "left to right"-like behavior on a Ctrl+Tab press, in this case to switch between open workbooks. (And even this example is questionable, as Excel displays open workbooks in multiple Taskbar buttons, not in multiple tabs.)

On the other hand, Microsoft Visual Studio 2005 provides an excellent implementation of "most recent" order switching on a Ctrl+Tab press, switching between open windows which are displayed in tabs near the top of the window. Visual Studio even provides an "Alt+Tab"-like window that appears while the operation is in progress showing all of the available open windows that can be switched to.

As I noted in my previous post, the most prominent app that I use currently that by default provides "left-to-right" Ctrl+Tab switching order is actually Firefox! Having a better Ctrl+Tab order by default could be nice differentiator for Microsoft.

Given that "most recent" Ctrl+Tab switching order provides more powerful behavior, and that it will be primarily "power users" using the Ctrl+Tab keystroke, I would encourage Microsoft to reexamine the decision of whether to have the "most recent" behavior checkbox under IE7's advanced options be enabled by default.


  1. um, how are we supposed to know what order the tabs will rotate? I can see left to right - I can't remember which was my 5th to last tab that I used. This behaviour is madness, and now I must figure out how to turn it off in Visual C++ 2008

  2. @anonymous, the use case for Ctrl+Tab most typically isn't to switch to "my 5th to last tab that I used"; instead, it's to switch to your most-recently used tab, or possibly 2nd-most-recently used.

    If you do want to switch to a tab other than your first or second most recently used tab using Ctrl+Tab (in Visual Studio), press Ctrl+Tab once, then continue holding the Ctrl key. You'll notice that Visual Studio has popped up a nice "preview window" for you, which shows all of your tabs in their most-recently-used order.

    Note also that this is similar to (and actually much better than, at least in Windows XP) than the "preview window" that Windows shows when you press Alt+Tab and continue holding the Alt key. Alt+Tab, of course, also works in most-recently-used order.

    Unfortunately, the "preview window" isn't built into IE7 (when Tools | Options | Advanced | "Use most recent order when switching tabs with Ctrl+Tab" is checked). Hopefully it will be included in IE8!

  3. Agree completely with this blog post, and maddening that, almost a decade later, this issue is still as bad now. It's amazingly hard to find a browser that even gives this sensible Ctrl-tab behaviour as an option, let alone do it as standard - even though Alt-Tab continues to behave nicely in this way in Windows. The only way I've managed to get it to work at all recently is with Firefox and an add-in.


Hi spammers! No need to waste your time here; comments are heavily moderated, so if you like, you can save us both a little time and just move on to the next site. :-)

For everyone else: Thanks for visiting! Your comments are more than welcome!