Touch hardware and Windows 8
Last September we blogged about experiencing Windows 8 touch on Windows 7 hardware , introducing the story of touchscreen hardware, how it is evolving, and what we expect Windows 8 will bring to the ecosystem of touch. We discussed how our engineering efforts (software and hardware) are driven by key user experiences, how these experiences play a big part in how we evaluate Windows 8 hardware, and how we communicate with hardware partners. Since that post, we’ve been working closely with our partners to build Windows 8 PCs. With the Consumer Preview , we want to update you on where we’re at. This post was authored by Jerry Koh, a group program manager, and Jeff Piira, a test manager, both on our Human Interaction Platform team.
The Windows team has continued to work in lock step with external hardware partners to fully embrace the experience we want for Windows 8. New Windows 8 PCs are coming, and while that is not a topic for this post, we at Microsoft are excited with what our hardware partners have in store for you.
It’s worth reinforcing that Windows 8 will run on the hardware available today, and we are committed to making sure that happens. So you should feel confidence in installing the Consumer Preview on the machines that you own today. However, as much as we value compatibility, we also have to balance this with making Windows 8 really shine on new Windows 8 PCs. We’d like to provide you with some perspective on our efforts and how we will achieve this.
Making sure Windows 8 works on your Windows 7 PC
At the //build/ conference we introduced a set of touch interactions that make up the Windows 8 touch language. These core interactions form the basis of the Windows 8 user interface, and are reused heavily in the application frameworks within our common controls and samples. The primary goal of our touch language is to promote ease-of-use and ensure user confidence. By confidence, we mean that all touch interactions work consistently and reliably all the time. Developers who consume our controls will automatically feature this language in their applications when they re-use the common controls or use the samples, and in doing so, they also minimize any learning required for users.
The touch language allows us to design a base user experience that is optimized for touch and works well on every PC, whether it was built originally for Windows 7 or for Windows 8. The fundamental gestures require no more than 2 fingers. However it is important to note that 2 fingers can be very limiting for a variety of applications. This is why Windows 8 PCs require digitizers that support a minimum of 5 fingers. The reason we went in this direction is a response to developer feedback. Developers do not want their creativity to be limited, and in particular, they let us know that they want to be free to use whichever multi-finger gestures or controls are useful. They do not want requirements for a minimum number of fingers that may not make sense for their application. As such, we focused on a minimum of 5 fingers to enable scenarios like whole hand interactions (all 5 fingers) or multi-finger/multi-hand scenarios. This will address the feedback, and unlocks opportunities for developers to push the envelope with multi-touch applications. So, while we ensure that the OS works well with a Windows 7 PC, a new Windows 8 PC is going to be much more consistent and predictable both from a user and developer perspective.
New UI concepts in Windows 8 also impact touch hardware design. This is another area where Windows 8 PCs will be more capable than existing Windows 7 PCs. For example, the edge swipe required to reveal the charms and app bars fundamentally changes all the assumptions made on touch hardware. Traditionally, the edges of the screen are where touch sensitivity drops off, and it’s a place that hardware manufacturers have traditionally not placed much emphasis on. The center of the screen received all the innovation, while the edges have suffered. If you have seen or experienced the Windows 8 user experience, the edge swipe is a critical part of using Windows. However, it also has a big role to play in our developer promise, as every pixel used to detect an edge swipe is a pixel taken away from the developer. For Metro style apps, where every pixel belongs to the developer, it is critical that we uphold and deliver on this promise.
We worked closely with our hardware partners to figure out a design that will allow all pixels on a touch screen to be accurate and perform well. There were many challenges here, but we were able to deliver on the promise of Windows 8 PCs that have the ability to trigger the edge swipe without taking any pixels from applications, and with extremely good edge sensitivity using touch—a promise that benefits developers and users alike. To make things work with Windows 7 PCs, we had to go in a different direction. In order to make edge swipe work consistently on Windows 7 PCs, we created a mode where there is a 20-pixel buffer to catch the edge swipe gesture. This allows a majority of PCs to reliably invoke the charms and use Windows 8 effectively. The downside of this buffer is that it takes away some real estate from the application, and from developers.
There is a broad set of Windows 7 PCs available in the market, and while this is a strong testament to the diversity of the Windows Ecosystem (as it offer more choices for our users), it also adds a degree of variance in touchscreen performance that must be accommodated. Here are some other examples of work we did to enable Windows 7 PCs to work well with touch:
- Making gestures like press and hold and pinch to zoom more forgiving
On some touch screens, the information reported from the screen is not consistent. We call this “jitter.”., When “jitter” happens, it’s hard for the system to know if the finger is actually moving or stationary. In some instances, a simple gesture like “press and hold” becomes extremely hard to calculate.
- Determining user intent for sloppy or imprecise touches
Although larger UI elements help improve touch targeting, we don’t have that luxury within the Windows desktop, especially with existing desktop applications. For this, we developed new ways to remap touch targets using the geometry of the finger, such that it becomes easier to invoke any UI that is within the radius of your finger contact. We will talk more about this feature in a separate blog post.
While you can see that there are a number of places where we’ve done work to accommodate the variance in hardware, there will be some areas where software cannot compensate. We will call out a few of them below. The good news is that in some cases users can learn to overcome these issues; in other cases, the experience will seem slow or imprecise, sometimes requiring you to attempt a gesture more than once before you succeed. We can overcome some of these issues with updated drivers, but this is entirely up to the hardware partners to evaluate and support. Here are some other examples of inconsistencies that we see when comparing touchscreens on some Windows 7 PCs:
- Individual taps do not always work, especially when typing quickly in the touch keyboard.
There are generally 3 things that impact this: the touch screen response rate, typing speed, and number of touch points. As you start typing faster on a touch screen, the screen has to match the speed of switching keys. The response rate in a touch screen is usually more optimized for detecting dragging gestures than rapid taps; this will manifest itself as missed taps. When you start typing faster, the chances of having more than 2 simultaneous fingers down also goes up. On systems that do not support more than 2 touches, you will notice missed touches.
- Swipe to select is inconsistent on hardware that does not detect small touch deltas fast enough.
It takes a little time for touch to respond to an initial touch. In some cases, the touch screen ignores the first few values of the initial touch, and the system then has difficulty interpreting the swipe correctly.
- Swipe and slide can be misinterpreted as a tap, especially on hardware that is not sensitive enough.
This stems from the same issues as above, in which touch screens take some time to respond, and cannot send a consistent stream of data once a swipe or slide begins. In this case, it can result in the system reading the data as taps instead of slides. When this happens, swiping and sliding more slowly may help.
- Swipe from edge does not always work, especially with faster swipes.
Although we have the buffer accommodation described above, fast swipes from the edge sometimes suffer from response rate as well. Fingers that come in too fast from the edge don’t get picked up by the touch screen until it is past the buffer. Trying again at a slower speed usually helps here.
Here is a video that shows some examples of how hardware can affect the Windows 8 touch language.
Note that touch variability does not necessarily block usage, since you can adapt the way that you touch or interact with touchscreens to work around different timing or movement thresholds. For example, if the charms don’t appear after an edge swipe, you can try again, but swipe more slowly. However, this variability does tend to make you less confident about using touch on Windows. However, we don’t want app developers to have to accommodate all the variances in touch hardware. Ultimately, we want to keep the promise of consistency, and the promise that applications work on all Windows 8 PCs. This is why we are working hard to ensure that Windows 8 PCs have a consistently good touch experience, and why you will want one of these new PCs when they are released.
Touch hardware testing
To make sure that the Windows 8 experience works well on your existing Windows 7 PC, we’ve been testing a bunch of them. Listed below are some of the newer Windows 7 systems that are commonly used within the Windows organization. This is not an endorsement, and users of these PCs should not expect official support from PC vendors when installing Windows 8.
- HP Elitebook 2760p convertible
- ASUS EP121 tablet
- Dell Inspiron Duo convertible
- Lenovo x220t convertible
- 3M M2256PW 22” display
- Samsung Series 7 slate
To support our commitment to customers who upgrade, we also frequently test Windows 8 on a broader set of in-market systems. We listed many of these systems in the previous post, and will now share some of the data we collected. Our test team collected data on how the Windows 8 touch interactions perform on 64 different Windows 7-era touch screens. As seen in the pie charts below, the data covers a variety of different form factors and touch sensor technologies.
What we found was encouraging: the vast majority of Windows 7 touchscreens can be used with Windows 8. This means that touch drivers continue to load, and you can perform the basic touch interactions in Windows 8 with a reasonable degree of success. But, as described in the previous section, we did see significant variability in how touch interactions were interpreted across different Windows 7 touchscreens. For example, the same swipe gesture can be interpreted as selecting a tile on one touchscreen, as dragging it on another, and as activating (tapping) it on a third screen. The charts below show examples of how successful completion varied between touchscreens when performing Windows 8 interactions for swiping to select a tile, dragging a tile to move, dragging to resize a snapped view, and swiping the screen edge to invoke the charms. 100% means that all attempts succeeded (note that for Windows 8 PCs, we require all these tests to pass with at least 95% success*).
Test: Select a tile in Start
Expected result: Tile is selected with a single swipe
Test: Move a tile in Start
Expected result: Tile is moved on first drag attempt
Test: Resize a snapped application
Expected result: Application is snapped to new size
Test: Swipe the right edge to view Charms
Expected result: Charms bar appears on first swipe
* pass rates may vary between each test
The road to Windows 8 PCs
Throughout Windows 8 development, we worked closely with external hardware partners to reduce hardware variability and establish consistent Windows 8 requirements. At the time of the //build/ conference, we were still working with partners to establish these requirements in early prototypes. The Samsung slate that was handed out at //build/ was our first attempt to push new requirements into a production system. Those of you who had the opportunity to use the Samsung slate experienced a level of touch quality that is closer to what we expect for Windows 8. You’ll also find some of these improvements in the commercialized version of the same slate hardware, which Samsung calls the Series 7 slate. Experiencing Windows 8 on this hardware will give you an idea of what touch will be like on Windows 8 PCs.
We have published our requirements for new Windows 8 hardware, and we continue to work with touch hardware partners, suppliers, independent hardware vendors, and PC manufacturers to ensure that new devices meet the requirements. Microsoft tests and certifies each new touch device before it can enter the market as a Windows 8 PC. This is how we will ensure consistency and quality in touch hardware for Windows 8. We will talk more about the certification process in a separate blog post.
Experience the Windows 8 Consumer Preview
So if you have a Windows 7 touch-capable PC today, don’t hesitate to use the Windows 8 Consumer Preview and take advantage of the Metro style user experience that we’ve built. The core experience will work well, but you’ll need to be mindful of some of the issues we’ve covered above. On new Windows 8 PCs, these issues won’t be present.
If you don’t have a touch-capable PC, you can still experience the Metro style UI with a mouse and keyboard. Last and not least, if you develop applications for Windows 8, the developer tools include an emulator that you can use to simulate touch. It will give you a close approximation of how your application will work, and we encourage you to take advantage of it. We hope you agree that we’ve come a long way in ensuring that Windows 8 has the best touch experience. We’re excited to provide a way for you to be more hands-on with your PC.
- Jeff Piira, Test Manager, Human Interaction Platform Team
- Jerry Koh, Group Program Manager, Human Interaction Platform team