Engineering Windows 7

Welcome to our blog dedicated to the engineering of Microsoft Windows 7

The Windows 7 Taskbar

The Windows 7 Taskbar

Happy Birthday Windows!  Given all the interest in the most used user-interface of Windows we thought it would be good to take a look back and see how we got to Windows 7.  --Steven

We were very excited to unveil elements of the Windows 7 desktop at this year’s Professional Developers Conference (as seen in the Welcome to the Windows 7 Desktop session, among others). In previous posts (User Interface: Starting, Launching, and Switching and Follow-up: Starting, Launching, and Switching) we looked at the history, anatomy and areas for improvement of the taskbar. In this post, we will continue the conversation. Don’t let looks fool you though—the UI may feel new to Windows for some of you or old hat for some of you, but rest assured it represents a careful evolution that strives to address customer feedback while retaining its familiar Windows DNA.

It was 23 years ago on November 20, 1985 when Windows first shipped. As it just so happens, this first Microsoft graphical shell actually holds relevance to this post as it surfaced one of the industry’s first taskbar-like concepts.

Windows 1.01

Fig 1 Windows 1.01: Icons at the bottom of the screen represent running windows

Windows 1.0 supported zoomed (full-screen), tiled and icon (minimized) windows. Since there was no support for overlapping [that big debate between charless and billg, Steven], a dedicated portion of the desktop was kept visible at the bottom of the screen to surface non-tiled and non-zoomed windows. By minimizing a window or dragging it to the bottom of the screen, the person was able to populate this rudimentary taskbar with a large icon corresponding to the running window. She could then get back to this window by clicking or dragging this icon to the desktop. As simple as this mechanism seems today, it cemented an important concept that is with us even in Windows 7—when people switch between tasks, they are really switching between windows. Although it took Windows 95 to introduce a mature taskbar with launching, switching and notification functionality, the experience of surfacing and switching between windows via a dedicated region at the bottom of the screen is as ancient as Windows 1.0.

Setting Goals

In the previous taskbar posts, we discussed some high-level principles we defined after digesting the mountain of data and feedback on the taskbar. Here’s a more detailed look at the goals we identified and how we began to frame feature concepts.

Things you use all the time are at your fingertips

It is easy to get to the programs and destinations you use all the time, with less mouse movement and fewer clicks.

Accessing commonly used programs within a single click required us to enrich Quick Launch by increasing its presence on the taskbar and making more top-level room for pinned items. We began looking into how Quick Launch interacted with the taskband and how launching and switching were sometimes separate and other times duplicative. For example, almost all single-instance programs in Windows interpret an attempt to re-launch them as a switch if they are already running. So, clicking Outlook’s icon in Quick Launch would merely switch to the program if it was already running and present in the taskband. To make room for more items on the taskbar, we knew we had to remove some of the redundancy and free up valuable real-estate.

When researching and modeling a person’s workflow, we came to realize that there were three basic steps that a person frequently seems repeats. First, she finds the program and launches it. Then, she uses the program’s UI to open a file she wants to work on. Then finally, she gets to work. We asked ourselves whether we could help people jump directly to these items by skipping the first two steps. We called these files, folders, links, websites and other items that programs create or consume “destinations” as they represent where the person is ultimately is navigating to. We decided that these destinations should also be easily accessible from the taskbar. However, for real success and adoption, we needed to think through how destinations could be effectively surfaced to the person without the need for manual customization or by requiring developers to do lots of work.

Manage your windows with confidence

You can switch to the right window quickly without mistakes and effortlessly position windows the way you want them.

This goal spoke to the very heart of the taskbar—the ability to switch between windows. This challenged us with seeking a more predictable method of surfacing windows on the taskbar, meaningful use of text and a reliable method of helping people consistently switch with confidence. We’ve had text on the taskbar for years and Vista introduced thumbnails, but customer feedback informed us that there was room for improvement. Interestingly, we found inspiration in old features such as Windows XP’s window grouping and Alt-Tab’s visual layout of individual windows.

During our investigation, we also spent time looking into why a person would switch windows in the first place. Two interesting scenarios emerged—one in which she needs to get some information from a window (e.g. getting a phone number) and to interact with a window’s options (e.g. controlling background music). We wondered whether we could address these task switching cases in a novel way—by actually removing the need to switch completely.

You are in control

The desktop reflects your style. You get to personalize the experience, choosing what is important to you, including how and when you receive notifications.

By far the biggest target of feedback, the Notification Area had to put control back in the hands of people. It was decided that instead of the opt-out model that required the person to clean up this area, we would start with a clean experience. Only system icons would appear by default and then people can to customize this area to their liking.

Clean and lightweight

The desktop experience feels organized, lightweight, open and is a pleasure to use. Visuals and animations are delighters the first time and every time.

A successful product is more than the utility it serves—it is also an experience. From the very start we wanted the taskbar, and the desktop as a whole, to draw an emotional response from the person. This required a set of scoped delighters that demoed well and retained their appeal over time. We began to define a personality for the UI using terms such as “glass and energy,” Chi, authenticity and many others. These investigations helped define a visual and animation language that we could then apply to several aspects of Windows 7. Expect a future blog post that delves much deeper into this important design process—much of which Sam discussed in his PDC session.

The Taskbar, Evolved

The Windows 7 taskbar is about launching with ease, switching with confidence and all the while remaining in control. The UI is made up of several key features that complete common end-to-end scenarios. Let’s dive into each of these elements and how they work.

Refreshed Look

The taskbar has undergone a facelift. We’ve enabled large icons by default (as seen in Windows 1.0 and also an option of Quick Launch since Windows 95 with IE 4). This affords a richer icon language, improves identification of programs and improves targeting for both the mouse and touch. Yet, one of the most important advantages large icons provide is a means to promote the taskbar as the central place to launch everyday tasks. We joke that the new taskbar is the “beachfront property of the Windows OS” and in turn, we are already seeing many people populating the UI with their commonly used programs. Somewhat if a visual trick, the taskbar is only 10 pixels (at 96 DPI) higher than its Vista counterpart (when used as a single row, since multiple rows are still supported, along with positioning around the screen edges).

Windows 7 taskbar

Fig 2. The Windows 7 taskbar: Default settings include large icons, no text and glass surface

To mitigate its slightly increased height and the larger icons, we decided to impart the UI with a more prominent glass treatment. This also allows us to better showcase the person’s color preference (you’ll recall that in a previous post we revealed that almost 30% of sessions have personalized glass). We also changed the Vista behavior so that when a window is maximized, both the taskbar and the window’s title bar continue to remain open and translucent. We received lots of feedback on Vista that many people didn’t like these UIs turning opaque and dark.

Pinning

You can still pin programs to the taskbar by dragging them or via a context menu, just like you have always done with Quick Launch. Destinations can also be pinned via a drag/drop, but they are designed to be surfaced differently as we’ll see under the Jump List section.

Unification

If one increases the size of Quick Launch, one must then determine what to do with the taskband. As previously discussed, we observed that under many scenarios of single-instance programs, launching and switching were equivalent. Hence, we decided to standardize this behavior and have program launchers turn into window switchers when they are launched. Effectively, we unified Quick Launch and the taskband. While some other operating systems have similar concepts, one difference with our approach is that our default experience always optimizes for a single representation on the taskbar. This means that regardless of a window’s state (e.g. minimized, maximized or restored) there are no new or duplicate buttons created. Also, the default taskbar doesn’t allow destinations to be pinned to the top-level which prevents duplication of a pinned file and a running window with that same file open. When we say there is “one button to rule them all” we’re serious. This approach to a single, unified button keeps the taskbar uncluttered and gives the person a single place to find what she’s looking for.

Combining launching and switching also made it easier to provide the most requested feature—the ability to move taskbar buttons. Quick Launch as always allowed this, but combining this mechanism with the taskband naturally extended rearrange functionality to running windows.

Interactive, Grouped Thumbnails

Vista showed thumbnails when the user hovers on a taskbar button and Windows 7 improves upon this design. Unlike Vista, these thumbnails are now an extension of their corresponding button so the person can click on these visual aides to switch to a given window. The thumbnail is also is a more accurate representation of a window complete with an icon in the top left corner, window text and even the ubiquitous close button in the top right.

Windows 7 Taskbar Thumbnails

Fig 3. Thumbnails: Grouped, interactive thumbnails make it easier to manage windows

One of the most important functions of the taskbar is to surface individual windows so people can easily switch between them. Having unified a program launcher and a single window switcher, the next logical step was to determine how multiple windows of a program could be combined and presented. We looked no further than a feature introduced in Windows XP called window grouping. When the taskbar became full, windows of a program could collapse into a single menu. However, there were a few challenges with the design. First, the behavior isn’t predictable. People don’t really understand when this scaling mechanism is triggered. Second, a listview of windows isn’t always the best way to represent these items. Finally, opening the menu always required a click, which slowed some people down. Our solution was to combine buttons by default for a predictable experience, to use grouped thumbnails and to have these thumbnails appear on hover as well as on click. Think of this approach as a contextual Alt-tab surfaced directly off the taskbar. When the person brings her mouse to a taskbar button, all the thumbnails of a program appear simultaneously making for a organized, light-weight switching model. To polish off the experience, we show a visual cue of stacked tiles that provides feedback on whether there are multiple windows running for a program. We also recognized that a set of people may still wish to see an individual buttons for each window and an option permits this behavior.

With the Windows 7 taskbar, there is a single place to go regardless of whether the program is not running, running with one window or running with several windows. Rich thumbnails provide more intuitive ways of managing and switching between windows.

Aero Peek

Here’s a riddle for you—what’s the best size for a window’s preview that will guarantee that the you can accurately identify it? Grouped thumbnails look and feel great, but we know these small previews don’t always provide enough information to identify a window. Sure they work great for pictures, but not so for emails or documents. The answer is simply to show the actual window—complete with its real content, real size and real location. That’s the concept behind Aero Peek.

When the taskbar doesn’t offer enough information via text or a thumbnail, the person simply moves the mouse over a taskbar thumbnail and voilà—the corresponding window appears on the desktop and all other windows fade away into glass sheets. Once you see the window you want, just click to restore it. Not only does this make finding a window a breeze, it may also remove the need to switch altogether for scenarios in which one just needs a quick glance to glean information. Peek also works on the desktop too. Show Desktop has been moved to the far right of the taskbar where one can still click on this button to switch to the desktop. The control enjoys a Fitts magic corner which makes it very easy to target. If you just move your mouse over the control, all windows on the desktop turn to glass allowing the desktop to be seen. It’s easy to now glance at a stock or the weather gadget or to check to see if a file is on the desktop.

Windows 7 Aero Peek

Fig 4. Aero Peek: Hovering over a thumbnail peeks at its corresponding window on the desktop

We spent a lot of time analyzing different aspects of Peek. For example, we recognized that when people are using the feature, they won’t be necessary focused on the taskbar as they look at windows on the desktop. An early prototype triggered Peek directly off the top-level of the taskbar but this revealed issues. Moving the mouse across a small a region to trigger different previews exited Peek since the natural arc of hand motion resulted in the mouse falling off the taskbar. By only triggering Peek off the thumbnails, we gained much more room for the mouse to arc and we also reduced accidental triggers.

Jump Lists

As far back as Windows 1.0, there has always been a system menu that shows contextual controls for running windows and their programs. This menu is accessible by right-clicking on a taskband button or in the top left corner of most windows. By default, the menu exposes windows controls such as close. (Random trivia—ever wonder why the system menu off a taskbar button always shows close in bold when close isn’t the double-click behavior? Well, the answer is that double-clicking the top left region of most windows will close it and the bolded option makes sense in this context. The same menu just happens to be hosted in both locations.) Over the years, some programs have extended the system menu to surface relevant tasks. For example, Command Prompt reveals tasks such as editing options, defaults and properties in its system menu. However, this is a bit of a free-for-all for programs to opt in or not, resulting in an inconsistent experience for people. Another blow to this scenario is that the system menu is only accessible when the program is running. This makes sense since the default commands are about window management, but what if you wanted to access a program’s tasks even it isn’t running?

As we discussed under the goals section, we thought about the various steps people have to take to accomplish tasks and whether we could reduce them. Be it getting to a destination or accessing the commands of a program, we wanted to make it easier for people to jump to the things they are trying to accomplish. Jump Lists are a new feature of the Windows 7 taskbar that accomplish just this. Think of this feature as a mini Start Menu for each program or an evolved version of the system menu. Jump Lists surface commonly used nouns (destinations) and verbs (tasks) of a program. There are several advantages this new approach provides. First, the you don’t need to even start the program to quickly launch a file or access a task. Second, destinations don’t take up valuable space on the taskbar; they are automatically organized by their respective program in a simple list. Should one have ten programs pinned or running on her taskbar, this means she could have quick access to over 150 destinations she uses all the time, without even the need to customize the UI! Since the Jump List shows lots of text for each of its items, gone are the days of having identical icons on your taskbar that are indistinguishable without a tooltip. Should you wish to keep a specific destination around, you can simply pin it to the list.

Windows 7 Jump List

Fig 5. Jump List: Right-clicking on Word gives quick access to recently used documents

To make sure we provide a consistent and valuable experience out-of-the-box, we decided to pre-populate Jump Lists and also allow programs to customize the experience. By default, the menu contains the program’s shortcut, the ability to toggle pinning, the ability to close one or all windows and a program’s recent destinations (assuming they use the Common File Dialog, register their file type or use the Recent Items API). Programs are able to replace the default MRU (Most Recently Used) list with a system-maintained MFU (Most Frequently Used) list, should their destinations be very volatile. For example, while Word will benefit from a MRU just like the one in their File Menu, Windows Explorer has opted to enable the MFU because people tend to visit many paths throughout a session. Programs are also able to provide their own custom destination list when they have a greater expertise of the person’s behavior (e.g. IE exposes their own history). Still others like Windows Live Messenger and Media Player surface tasks or a mix of tasks and destinations.

In case we haven’t yet impressed it upon you, the taskbar is about a single place to launch and switch. Jump Lists offer another important piece of the puzzle as it surfaces valuable destinations and tasks off a program’s unified taskbar button.

Custom Window Switchers

All the major web browsers offer tabs and a method of managing these tabs. One could argue tab toolbars are really like taskbars since they facilitate switching. These TDI (Tabbed Document Interface) and MDI (Multiple Document Interface) programs have always resorted to creating their own internal window management systems as the Windows taskbar was not optimized to help their scenarios. Some programs like Excel did custom work to surface their child windows on the taskbar, but this approach was somewhat of a hack.

Since the new taskbar already groups individual windows of a program under a single button, we can now offer a standard way for programs that have child windows to expose them. Again, the taskbar offers a single, consistent place to access real windows as well as child windows. These custom window switchers also behave as regular windows on the taskbar with rich thumbnails and even Aero Peek.

Thumbnail Toolbars

In the earlier taskbar posts, we discussed how Windows Media Player’s deskband offers valuable background music controls, but only a mere 3% of sessions ever enjoy the functionality. The new taskbar exposes a feature called Thumbnail Toolbars that surface up to seven window controls right in context of taskbar buttons. Unlike a Jump List that applies globally to a program, this toolbar is contextual to just a specific window. By embracing this new feature, Media Player can now reach a majority of people.

Windows 7 Thumbnail Toolbar

Fig 6. Thumbnail Toolbar: Window controls easily accessible in context of a taskbar thumbnail

Thumbnail Toolbars leave the taskbar uncluttered and allow relevant tasks to be conveniently accessible directly from a taskbar thumbnail. Surfacing tasks reduces the need to switch to a window.

Notification Area

We’re happy to announce that the Notification Area is back under your control. By default, only a select few system icons are shown while all others appear in a menu. Simply drag icons on or off the taskbar to control the experience. Better yet, every balloon tip that appears in the system has a little wrench icon that allows one to quickly “swat” an annoying alert by immediately seeing what is causing the notification and a direct way to disable it.

Windows 7 Notification Overflow

Fig 7. Notification Overflow: By default icons appear in an overflow area that you can then promote

Interestingly a very popular change to Notification Area isn’t about reducing noise, but rather showing more information. The default taskbar now reveals both the time and the date. Finally!

Overlay Icons and Progress Bars

Cleaning the Notification Area warrants us to consider other ways that programs can surface important information. We’ll always had overlay icons throughout Windows (e.g. to show shortcuts in Explorer) so we decided to bring this functionality to the taskbar. An icon can now be shown over a program’s taskbar button. Furthermore, programs can also give feedback about progress by having their taskbar button turn into a progress bar.

Windows 7 Progress Bar

Fig 8. Progress Bars: Explorer utilizes taskbar progress to show a copy operation in process

A program can now easily show an icon or progress in context of its taskbar button which furthers the one place, one button philosophy of the taskbar.

Color Hot-track

Color hot-track is a small touch that typifies the new taskbar’s personality. When a person moves her mouse over a running program on the taskbar, she will be pleasantly surprised to find that a light source tracks her mouse and the color of the light is actually based on the icon itself. We calculate the most dominant RGB of the icon and dynamically paint the button with this color. Color hot-track provides a delight factor, it offers feedback that a program is running and it showcases a program’s icon. We’ve always believed that programs light up the Windows platform and now, we’re returning the favor.

Windows 7 Color Hot-track

Fig 9. Color Hot-track: moving the mouse across a running window reveals a dynamically colored light effect

Start Menu

Vista introduced several changes to the Start Menu so we decided to minimize churn to this UI in Windows 7. Notable improvements include the availability of Jump Lists and a better power button that defaults to Shutdown, but makes it easy to customize.

Different, Yet Familiar

Despite all the features of the new taskbar, it is worthwhile noting the UI retains its familiarity. We like to describe our work as evolutionary, not revolutionary. The taskbar continues to be a launch surface, a window switcher and a whisperer of notifications. Whether one is relatively new to Windows or a seasoned pro, we realize change comes at a cost. It is for this reason that we took the time to carefully evaluate feedback, we performed numerous studies to validate our designs and finally, we will continue to provide scoped settings that keep the UI flexible.

We hope this post provided more insight into the new Windows 7 taskbar. Expect future discussions on our design process, how we tested our features and advanced functionality for all you enthusiasts.

- Chaitanya

Leave a Comment
  • Please add 2 and 4 and type the answer here:
  • Post
  • ... and that is more or less how it already works. Suspended processes go left. Allthough ie, explorer and wmp stay in place when suspended (so you can locate them - i.e. hybrids with concept of a quick launch bar).

    I did not notice the that border around the ie, explorer and wmp icons if they suspend (does not hide any processes). The background color is indifferent when the border is there (processes) or not (no processes). But that is described properly in the manual no worries I guess.

    So reconsidering my above statements while discovering the yet less described new taskbar I must add "nice job" ms :o)

    I will pick up VS and give it a try ... I hope this is going to be great

  • ... and that is more or less how it already works. Suspended processes go left. Allthough ie, explorer and wmp stay in place when suspended (so you can locate them - i.e. hybrids with concept of a quick launch bar).

    I did not notice the that border around the ie, explorer and wmp icons if they suspend (does not hide any processes). The background color is indifferent when the border is there (processes) or not (no processes). But if that is described properly in the manual no worries I guess.

    So reconsidering my above statements while discovering the yet less described new taskbar I must add "nice job" ms :o)

    I will pick up VS and give it a try ... I hope this is going to be great

  • Though please still think about the borders or may be the background color or even icon height vs padding against the bar height ... if explorer is "on" processing ... it actually looks like wmp is "on" as well ... if wmp has a process next to it on the right - effectively it may be appear to the user that wmp itself has a border thus "on" - while it is only wmp's neightbours to the each side that is "on".

  • It is impossible to minimize an application by clicking on the task bar button if multiple windows are open. The separate windows must also be grouped into one icon for this bug to manifest.

    I don't know how such a simple scenario was missed.

  • I'd like to see a new desktop design to go along with this.

    For example, instead of having one big open space for desktop windows, allow to to set up a grid table for specific applications.  For example, let's say I want to make a new grid table, I give it 4 rows and 6 columns, I assign it to my Second monitor and I name it 2-4X6 Monitor 2, 4 rows 6 columns.

    Then make it so I can use the editor (use your imagination) to assign Windows Classes to this grid table.  The editor should simply list the class name and the windows titles open of that class name.  This allows me to easily see what window class an msn chat window is and assign it to my 2-4X6 grid table.

    Now when I start an msn chat it should display on my second monitor in the top left cell, row 1 column 1.  If I open another chat window it displays on 2nd monitor Row 2 Column 1, etc until it fills up.  Once full it would start over at row 1 column 1 except now I would see a tab bar to switch between the two windows inside the cell.

    Switching to a different type of window should just make my msn chat windows look like I manually rearrange them that way.

    Basically, I desire new features for the desktop specifically in the realm of multimonitor support.

    Let us specifify how many monitors the task bar stretches onto for example.  I have tow monitors in horizontal span mode so it's like I have a really wide desktop, 3360 X 1050 to be exact.  A feature to tell the taskbar to extend accross the entire span would be fantastic.  Windows open on the second monitor shouldn't be on the taskbar located on the first monitor.

    Specifically though, I want control over which monitor my applications display on when I open them.

    In vista it's a pain because I have 3 monitors, but I only use the third one when I'm watching movies, anime, or playing certain games (it's an HDTV).  Sometimes I'll have a website on my T.V. Which is on the other side of the room and close it while it's on the T.V.  The problem is that later whem I'm back on my computer monitors I open a webpage and I see the browser in the taskbar, but I  don't see the window.  The web browser opened on my T.V. and there's no efficient way of getting it back.  So I have to turn the T.V. back on, let it warm up, switch to HDMI2, turn around and grab the web browser and drag it back onto my main monitor.  Then I have to restore/maximize it a bunch of times to get windows to open it on monitor 2 next time.

    The table grid layout feature would really help out here.  Then I could make another grid called 2-1 (monitor 2, 1 cell (full screen) and asign FireFox to it, that way it always opens on monitor 2.  Likewise I would create a grid called 1-1 for Visual Studio to always open on monitor 1.

    Layout options with multiple monitors in mind would be awesome.  Also some context menu options in the taskbar to move windows to another monitor would be appreciated.

    I'm aware there are tools to do this, but most of them I've tried are poorly constructed and don't work properly.  To lazy to write my own, might as well write a new shell entirely if I did.

  • I actually HATE this new taskbar... It's too big and takes too much space from the screen (It distracts), and have very big buttons, that reduce the amount of buttons that can be there without confusing you, because they will become worse to read and the "grouping" option is a confusing alternative to navigate through windows, that will be very painful when working with a large amount of windows... Also, in Seven, notification area icons seem to take much more space than needed.

  • As for the inline notifications, it would be helpful for Outlook to show a visual number in the taskbar button of how many new e-mails are in my inbox, and its download progress from the server.

    It would also be useful for an option to see a number in the button telling how many open windows of a program there are, with the option to disable that as well for those who like to know how many windows are open.

    The new Taskbar is an excellent evolution of the Win95 concept.  Just a few more tweaks and it's golden.

  • A resizeable start menu would be nice as well, so I can increase the vertical size if I wanted to to make use of my very large monitor.

  • When u minimize IE8 there is NO VISIBLE WAY to go back to the tab u were before. How can I restore IE and see the tab that used to be visible ?

  • @last.try - yes, I agree that users need something like this - KDE/CDE/GNOME have had for a long time multiple desktops that you can label for performing different tasks - something that Windows has always been lacking for power users. Microsoft could have an opportunity to take this concept even further.

  • I also agree with many others here that it is not easy to distinguish running from non-running programs. I think that @Mantvydas idea of making non-running program icons greyscale (or at least with a reduced colour saturation or increased transparency) is ABSOLUTE GENIUS!! Are you listening Microsoft? - GENIUS!!

  • ... actually, now that I think about it, increasing the transparency of non-running programs is actually a one place where Microsoft's recent transparency fetish would actually be useful!! One of the first things that I do to a Vista/7 system is to reduce the amount of Aero transparency as I find the transparent window titles very distracting. Here is one place where this can be used to the advantage of the GUI, rather than just for eye-candy!!

  • I also think that there needs to be a jump-list option for each taskbar icon to "Show  windows from this application". Clicking on this would restore all windows from the particular application, but minimize all other application windows.

  • ... perhaps my previous suggestion could be performed by double-clicking the application's taskbar icon, or perhaps the 'aero shake' feature could have a modifier (Ctrl/Shift) where it would apply the shake to all windows of the active application.

  • rethinking the naming of my suggested "Show  windows from this application" feature, I think it should be called "Exclusively Restore All" to match the existing "Restore All / Minimize All / Close All" menu options.

Page 11 of 14 (202 items) «910111213»