Foreword — Contributed by Microsoft’s Windows 7 team, this whitepaper is aimed at OEMs, providing them pointers for creating the best possible tablet PCs. It should be interesting reading for anyone who wants to put the Windows 7-based Windows Embedded Standard 7 on a tablet PC, too. Enjoy!
Best Microsoft MCTS Training, Microsoft MCITP Training at certkingdom.com
Abstract
This paper describes the touch investments in Windows 7 and provides guidance for OEMs that want to take full advantage of Windows on slate PCs.This information applies to the Windows 7 operating system.
References and resources discussed here are listed at the end of this paper.The current version of this paper is maintained on the Web at https://www.microsoft.com/whdc/device/input/slate-pc-design.mspx.
Introduction
Windows 7 introduced Windows Touch, making PCs more intuitive, natural, and fun. By supporting multitouch technology, Windows 7 opened up a world of possibilities for hardware and software developers. The PC ecosystem has adopted multitouch rapidly, with a myriad of touch implementations for notebooks, all-in-one devices, touch-enabled monitors, and now slate PCs.
Touch enhancements make Windows 7 a compelling operating system for slate PCs. Windows 7, Windows Live, and Windows Internet Explorer 8 feature significant investments in optimizing touch experiences. Beyond native platform support for multitouch applications, the new taskbar in Windows 7 simplifies launching and switching between programs and touch gestures enhance overall user experience and web browsing.
Slate PCs are primarily recommended for consumption of information, services, and content available on the Internet. Windows 7 supports core usage scenarios for slate PCs including web browsing, communication, social networking, media consumption (including music, video, and TV), casual gaming, location-based services, and reading.
Success in delivering these scenarios requires a product that meets customer expectations for ease of use, performance, battery life, weight, screen size, resolution, security, and reliability. The combination of Windows 7 Home Premium, Windows Live, and innovative PC designs at competitive price points delivers the best experience for customers.
This document provides guidance for OEMs that want to take full advantage of Windows on slate PCs, by addressing the following topics:
* Touch Investments — Windows 7, Windows Live, Internet Explorer 8
* Fundamentals — Hardware and Windows Logo Requirements
* Design Principles — Recommendations on hardware and application design
* Windows assets — Windows Live, Touch Pack for Windows 7, Windows Media Center
Introduction
When a compatible digitizer is available to the Windows 7 Home Premium, Professional, Enterprise, or Ultimate editions, the operating system detects the digitizer and automatically adjusts its settings to provide a better touch experience for the user. Table 1 summarizes the extensive touch capabilities in Windows 7.
Table 1: Touch capabilities in Windows
Feature
Touch Capability
Description
Platform
Tap/DoubleTap
Tap/DoubleTap to select and open.
Platform
Panning/Scrolling
Panning/scrolling withinertia in applications with scroll bars (one or two fingerpanning).
Platform
Zoom
Zoomin any application that supports zoom, by using CTRL + scrollwheel.
Platform
Right-click
Pressand Tap and Press and Hold to right-click an item.
Platform
HighDPI
Changeto High DPI (120 pixels per inch) to display user interfaceelements that are easier to see and touch accurately. This isconfigurable by OEMs and end users.
Platform
Flicks
Flickto move forward or backward (navigational flicks); alsocustomizable for other uses (for example, copy, paste, and undo).
Taskbar
Drag
Dragup on taskbar icons to open Jump Lists; increased spacing betweenlines for touch.
Taskbar
Pressand Drag
Pressand Drag on preview thumbnails to Peek into the windows (same ashovering over thumbnails with the mouse pointer).
Taskbar
Largerbutton
ShowDesktop button is larger ontouch-enabled PCs.
Taskbar
Pressand Hold
Pressand Hold on the Show Desktop button to Peek at the desktop (same as hovering with the mousepointer).
Touchkeyboard (Tablet PC Input Panel)
Textprediction and multitouch input
Resizablesoft keyboard that supports text prediction and multitouch input.
Touchkeyboard (Tablet PC Input Panel)
Discoverable
TheTouch keyboard sits on the left side of the screen; tap or dragout over the icon to reveal the keyboard. An in-place launchtarget also appears next to the text box when you set focus withtouch.
WindowManagement
AeroSnap
Easierwith touch; no need to go all the way to the edge of the window toactivate.
WindowManagement
AeroShake
Touchthe window’s title bar and shake the window to minimize all otheropen windows behind it.
WindowManagement
Window-boundaryfeedback
Contentof window bounce when you reach the end of the scrollable pagewhile panning.
WindowsPhoto Viewer and Windows Live Photo Gallery
Gesturesupport
Zoom,Rotate, and Pan. Photo Gallery editor and date view havehigh-quality touch experiences, such as rotate animations.
WindowsExplorer
Gesturesupport
Gesturesupport in preview pane, and zoom through views and thumbnails.
Calculator
Largebuttons
Touch-friendlybutton size.
SnippingTool
Snipping
Usefingertips to select area to snip.
Magnifier
Navigation
Touch-enablednavigation controls for all modes.
Paint
Touch-friendlyRibbon user interface (UI)
RibbonUI includes more touch-friendly control and buttons sizes.
Paint
Touch-friendlycolor picker
Touch-friendlycolor picker enables easier color selection.
Paint
Multitouch
Multitouchbrush support enables all brushes support multitouch painting.
WindowsInternet Explorer 8
Tap tomagnify
It isdifficult to tap a link on a webpage accurately, especially if thelink is surrounded by many other links. You can use two fingertipsto tap anywhere on the page to instantly zoom in on that spot.Next, tap the link with one fingertip, which is easier when thelink is magnified. When the new webpage opens, it automaticallydisplays in normal size.
InternetExplorer 8
Choosehow much to zoom
Toincrease the zoom level, place two fingertips on the screen andmove them apart. The page appears increasingly larger as youseparate your fingers. To shrink the page, place two fingertipsapart on the screen and pinch them together.
InternetExplorer 8
Closetabs
It isdifficult to precisely tap the CloseTab button with your fingertip,to close a browser tab. On a touchscreen, the active area aroundthe button is larger and more forgiving.
InternetExplorer 8
Flickforward or back
Navigateback: Place fingertip on the page and flick it to the right, as ifflipping backward through the pages of a book.
Navigateforward: Flick the page to the left, as if you are brushing it offthe left side of your screen.
Whenyou flick forward or back, Internet Explorer momentarily shows asmall preview of the page that is about to open before the pageopens to the full-sized view.
InternetExplorer 8
Spacebetween links
InternetExplorer detects when the user uses a fingertip instead of a trackpad or mouse. If you tap the AddressBar or open your Favorites listwith a fingertip, Internet Explorer widens the spacing between thelinks. Wider spacing makes it easier to tap the desired link.
InternetExplorer 8
Open alink in a new tab
Toopen a link in a background tab, you can place your finger on alink, drag it off of its home spot, and release it.
InternetExplorer 8
Panning
Youcan place one fingertip on a long webpage and flick to scroll upor down quickly; or keep your fingertip on the screen and slowlypush the page up or down to move the page slowly.
InternetExplorer 8
Panning
If awebpage is too wide to fit in your browser window, you can placetwo fingertips on a webpage, hold them there, and drag the pageright or left.
WindowsMedia Center
Panning
Directpanning in Start menu and galleries (Pictures, Movies, Music, and more).
WindowsMedia Center
Touchseek-bar
Largecontrol with thumbnail peek into the video that is playing.
WindowsMedia Center
Largercontrols
Touch-sensitivecontrols with larger targets for touch.
WindowsMedia Player
Scrolling
Smoothscrolling through albums, artists, and song lists.
WindowsMedia Player
Dragand drop
Dragand drop to create playlists.
WindowsMedia Player
Largertouch targets
Largertouch targets for shuttle controls (volume slider, stop, play)make them easier to interact with using touch.
XPSViewer
Smoothgestures
Smoothzoom response to pinch and stretch gestures.
XPSViewer
TwoFinger Tap
Smart zoom,which enlarges text as a result of a two-finger tap.
XPSViewer
Thumbnailview
Thumbnailview is touch interface enabled, with zoom support.
WindowsGames
Increasedresponsiveness
Increasedresponsiveness for moving cards and tiles with touch.
Windows Games
Increased spacing
Increased spacing of cards.
In addition to the capabilities listed in Table 1, slate PC manufacturers can use and customize the following Windows assets to optimize the user experience:
* Taskbar — Pin touch-optimized applications to the taskbar, so that users can launch them with one touch instead of navigating through menus.
* Touch keyboard — Use the default settings for the touch keyboard. The touch keyboard detects touch and pen-digitizer hardware and displays either the keyboard layout or the ink layout, depending on the hardware detected. If the digitizer device supports both touch and pen, the touch keyboard defaults to keyboard for touch and handwriting for pen.
Figure 1: Windows 7 touch keyboard
* Microsoft Touch Pack for Windows 7 — The Microsoft Touch Pack for Windows 7 contains six multitouch-optimized applications and games that are great examples of immersive experiences in Windows 7. The pack includes three casual games and three Microsoft Surface applications.
Figure 2: Microsoft Touch Pack for Windows 7
* Device Stage — Device Stage is a new Windows 7 feature that OEMs can use to highlight their brand and their system attributes, and to aggregate applications, tools, and utilities so that the user can find them quickly and easily. Device Stage also helps to improve system performance by migrating application services out of the boot path and by grouping them in a logical manner.
We recommend that OEMs use Device Stage to emphasize the PC’s capabilities and to expose custom, conditional tasks that enable the user to access features, support, and accessories that are specific to their PC and that best represent your brand.
Figure 3: Sample Device Stage Experience
Windows Live Essentials completes the Windows 7 consumer experience by providing a suite of software for communications, photo and video editing, and online family safety. Preinstalling Windows Live on a new PC yields the following benefits:
* Meets consumers expectations for pre-installed software that delivers the most desired end-to-end PC experiences.Recent Microsoft consumer research indicates that the scenarios addressed by Windows Live are so pervasive that many consumers expect a new PC to include such software out of the box.
Windows Live delivers a variety of satisfying consumer scenarios in a single package that includes:
o Windows Live Mail (email)
o Windows Live Messenger (instant messaging, voice and video communication)
o Windows Live Photo Gallery (photo editing and organization)
o Windows Live Movie Maker (video editing)
o Windows Live Family Safety (parental controls for online activity)
o Windows Live Writer (blog composition)
o Windows Live Toolbar (browser toolbar)
* Provides marketable software and services that compete effectively with other consumer offerings.Windows Live delivers complete end-to-end experiences that are easy to use. The unified Windows Live suite, which is integrated with Windows Live online services such as Windows Live SkyDrive storage, brings seamless cloud experiences to life. For example, Windows Live provides a complete photo experience that includes importing photos, editing photos, organizing photos in an album, and sharing photos by using email or an online network.
* Lowers overall software planning and configuration cost through a single OEM preinstallation kit (OPK). Using the single Windows Live OPK reduces configuration and testing cost versus the alternative of assembling an alternative suite of individual applications.
* Enhances the slate PC experience with touch-optimized applications.Windows Live Photo Gallery supports a number of touch gestures including zoom, rotate, and pan. Photo Gallery editor and date view have high-quality touch experiences, such as rotate animations. Windows Live Photo Gallery, Windows Live Movie Maker, Windows Live Writer and Windows Live Mail support the ribbon user interface, making commands more touch friendly.
In Internet Explorer 8, the user can optimize the touch experience by switching to large icons. This setting can be changed by the user, but they may not realize it is possible, or find the feature on their own.
Figure 4: Default icons in Internet Explorer 8
Figure 5: Large icons in Internet Explorer 8
Fundamentals
This section describes hardware requirements for slate PCs that OEMs must consider in addition to the Windows 7 PC requirements.
Hardware requirements
To deliver a high-quality product that will delight customers, you need to select the right hardware components and software image.
The digitizer technologies that enable natural and intuitive gestures are revolutionizing human-computer interaction and heralding a new era of natural user interfaces. Consumers expect the multitouch experience to be effortless, intuitive, and consistent.
For this to occur, every component in the technology stack must be responsive, robust, and tuned to work in the ways that real people interact with touch screens. The strict and sometimes complex demands of the user experience affect the hardware level the most, because the user interacts first with the digitizer. Behind every touch that the digitizer detects is a user who has very high expectations and a very low tolerance for dubious quality.
The Windows Logo program for Windows 7 ensures that solutions on the market meet the minimum expectations of users and provide a successful touch experience across applications and environments of use. The logo requirements that are relevant to slate PCs are listed later in this document.
Design Principles
In addition to the Windows Logo requirements, OEMs can provide a differentiated experience through hardware and software design, as listed in the following sections.
Human factors and ergonomics
To increase the usability and comfort of slate PCs, we recommend the following guidelines:
* Design bezel and chassis plastics so that they do not interfere with touch targeting along edges and in the corners of the screen.
* Ensure the enclosure has smooth edges near any handgrip area.
* Ensure handgrip regions are designed away from heat dispersion and venting.
* Design chassis buttons to protect against accidental activation.
* Consider the center of gravity of any handheld device (for example, heavier items such as batteries should be placed near the handhold area, when possible).
* Enumerate computer buttons (for example, those located on the bezel) as physical devices and not virtual devices.
* Consider using haptic feedback to increase user confidence in activating a touch event.
* Utilize glass and/or glass coatings designed to reduce fingerprints. Consider anti-glare materials and LED-based illumination to ensure screen readability in outdoor and brightly lit environments.
Digitizer logo requirements
To ensure a high-quality user experience, digitizer devices must meet the following logo requirements:
* Human Interface Device (HID) Compliance — For the Windows 7 operating system to respond appropriately to device and driver input, your device must adhere to HID protocols for Windows Touch.
* Resolution — The screen resolution must be at least 25 pixels per inch and at least display resolution to enable Windows Touch to accurately detect touch and multitouch actions. Display-level resolution is important for graphical applications and many other scenarios.
* Sampling Rate — Sampling rate should be at least 50 hertz per finger. A high sampling rate contributes to higher performance, perceived responsiveness of the system, and data integrity for contacts in fast motion.
* Ghost Noise — Do not report data for locations where contact is not made. Random input can have a significant destructive effect on user workflow, and can quickly reduce the trust that users have in the Windows Touch experience. You should tune contact detection to recognize valid finger contact, rather than other non-human contamination.
* Contact Accuracy — For a single touch on a stationary contact point, the contact position reported must be within 2.5 millimeters (mm) of the target point. For a single touch that traces a line, circle or other predetermined pattern, the contact data reported must be within 2.5 mm of the target pattern, with an offset from the pattern that varies no more than 1 mm for every 10 mm of travel, and without interruption to the pattern.
For additional touches on a stationary contact point, the contact position reported must be within .5 mm of the target point. For additional touches that trace a line, circle or other predetermined pattern, the contact data reported must be within .5 mm of the target pattern, with an offset from the pattern that varies no more than 2 mm for every 10 mm of travel, and without interruption to the pattern.
Recognition of gestures for pinch and rotate relies on fast and accurate location reporting. This also applies to the standard interaction gestures, such as panning, scrolling, and dragging. Applications will develop new customized gestures and movements that depend on high accuracy and response rates.
Digitizer implementation guidance
Follow these guidelines for a digitizer device:
* Screen coverage — Ensure that there are no blind spots or dead areas anywhere on the screen. Some digitizer technologies work better than other technologies to recognize input consistently across all touchable areas of the screen. Some technologies encounter problems, especially at the edges and corners. Poor casing and bezel placement can also cause screen coverage issues for otherwise well-performing digitizers when they are integrated into systems during the manufacturing process.
* Digitizer screen size — Ensure that your digitizer device reports accurate physical dimensions of the display. Windows can provide greater gesture accuracy when the digitizer reports the exact physical dimensions of the display.
* Performance — Ensure optimum responsiveness of the digitizer. The responsiveness of the touch digitizer is a primary factor in determining the success of any given PC or device. Therefore, it is important that you build and test for performance from the beginning. You should not include any firmware or driver processing that is not dedicated exclusively to providing Windows Touch processes with correct human interface device (HID) packets.
* Battery Power — Ensure the digitizer performs consistently, regardless of the power source. It is important that you maintain consistency of the touch experience whether touch PCs are plugged in or are running on battery power.
* Jitter — Report a stationary contact as stationary and without jitter. If the digitizer reports movement when the contact remains in the same location, Windows can misrecognize the interaction as a drag action or other unintended movement.
* Separate and Simultaneous Contact — Maintain minimal offset whether users make multiple touches simultaneously or in sequence, with or without an overlap or in other scenarios. Digitizers should distinguish and correlate x and y coordinates for points of contact with a high degree of accuracy, and this should not depend on sequential placement or other factors.
* Contact Width and Height — Report contact width and height. Supporting the HID usages for height and width of contact (digitizer page 0x0D, with proposed usages 0x48 and 0x49) enables applications to provide richer touch support. This includes applications that have different functionality for finger-tip versus finger-pad gestures, or graphics applications that use the dimensions of the contact for brush sizing.
* Confidence Usage — Apply confidence usage for palm rejection. Digitizers should implement palm rejection to reduce accidental touch events caused by the hand or other objects. Confidence usage (page 0x0D, usage 0x47) is a value that signals the digitizers confidence that the contact is valid and intentionally interactive. Set this value to 0 when the contact does not include interactive input, such as a palm resting on the screen or an accidental contact.
* Calibration — Perform device calibration in the factory, to ensure a positive out-of-the-box experience. If calibration linearity is not performed during the manufacturing process, the user experience will be poor until the user performs their own calibration. This negatively impacts the out-of-box experience. The issue may be exacerbated if calibration is difficult for the user to discover.
Hardware design recommendations
For the best user experience, consider the following items when you design your slate PC hardware:
* Screen
o Touch interfaces work best when the Windows DPI setting is configured to match the physical display DPI. Since slate PCs have smaller screens, OEMs are encouraged to configure the Windows DPI value to match the physical display size, and to test the applications delivered on the PC to ensure that they work properly in this configuration. For information on configuring DPI value, see DPI Configuration for Small PCs.
o Consider effective screen resolution, which accounts for physical resolution and the DPI setting of the display. Effective screen resolution should not be lower than 1024 x 768. For example, a screen size of 8 inches with a resolution of 800×600 has an effective screen resolution of 640 x 480, which is not acceptable. Choose the appropriate DPI setting as follows:
o Support angled viewing by using wide-view LCD technology.
o Use glass surfaces and glass coatings designed to reduce fingerprints.
o Consider anti-glare materials and light-emitting diode (LED)-based illumination
* Sensors
o Enable rotation with a manual hardware button or enable auto-rotation with an accelerometer. Ensure that auto-rotation is responsive and behaves as a user would expect. Sensors should be exposed by using the sensor platform, as documented in the Sensor Devices Design Guide.
o Include one or more ambient light sensors to enable the adaptive brightness feature in Windows, which automatically dims and brightens the display for better readability across varying lighting conditions. Multiple sensors help reduce shadow effects and improve usability.
* Biometric logon — Consider including a fingerprint reader for improved ease of access for logon and security scenarios.
* Web camera — Enable video conferencing with Windows Live Messenger. Also consider adding more than one microphone to allow for acoustic echo cancelation, which greatly improves voice communication with Windows Live.
* Peripherals — Provide peripherals that are complementary to the slate PC form factor and usage scenarios. For example, provide protective sleeves for screen protection and provide power supplies that are compact and easy to transport.
System architecture recommendations
Consider the following items when you design the system architecture of your slate PC:
* Chipset and memory
o Balance the CPU, GPU, and media acceleration, memory capacity and performance.
o Determine the levels of chipset and memory resource utilization required for key scenarios with a full software load.
o Provide extra resource allotment to accommodate the additional software that end-users will install.
o Provide 2 gigabytes of memory on CPU-constrained and GPU-constrained systems.
* Power Management
o USB devices should support selective suspend.
o Battery life should exceed 4 hours under normal operating conditions.
o The PC should have sufficient battery to support standby time of at least 72 hours.
o The system should resume from an idle state (for example, S3) in less than 2 seconds.
* Storage
o Slate PCs should use solid-state drives (SSDs) to enable lower power consumption and high reliability in a mobile environment. SSDs also have greater performance than most traditional platter drives. Many Windows performance optimizers do not need to operate on SSDs.
o Windows 7 disables selected optimizations on an SSD, if the SSD meets certain requirements:
+ Disk defragmentation is turned off when at least one of the following is true:
# ATA Word 127 is set to 1 (zero-latency device).
# Windows System Assessment Test (WinSAT) random read performance value exceeds 8.0.
# The disk is a dynamic disk or a child virtual hard disk.
+ SuperFetch is disabled when the WinSAT Random Write (primary disk) score exceeds 6.5.
+ ReadyBoost is disabled when at least one of the following is true:
# The ReadyBoost score does not meet the performance threshold.
# SuperFetch is disabled.
o Windows 7 supports the TRIM function, which can improve the lifetime of a flash drive. This feature operates when the SSD firmware and driver supports TRIM, and the ATA function is enabled.
Touch application design recommendations
This section provides background and guidance for designing touch applications for slate PCs.
Touch optimization principles
Touch experiences must appear inviting and simple, while behaving in a way that is forgiving and responsive. As with any user experience, aesthetics are critical, but touch experiences combine both aesthetic and practical requirements.
These additional requirements present design challenges that can be addressed by the following touch optimization principles:
* Increase Confidence and Efficiency
In an inviting experience, the user feels confident about trying new things without fear of making mistakes or causing errors. If the user interface (UI) is simple, the user can focus on exploring and learning without being inundated with demanding tasks or overly complex designs. In many cases, touch support is added to an existing user experience and the UI contains legacy elements, such as scroll bars, that are not optimized for touch experiences. In the worst-case scenario, the scroll bars do not support touch. In the best case scenario there are no scroll bars, which invite the user to try panning instead.
A forgiving UI is one that lowers the need for precision and makes tasks easier. Touch makes it difficult to target small items, which are commonplace in traditional mouse and keyboard scenarios. The fingertip obscures the target, unlike a small, unobtrusive cursor. If a task is too difficult to perform with touch, the user becomes frustrated.
Responsiveness is critical in a touch environment, because touch must feel direct. When the user touches the screen to make something happen, there must be an immediate visual response. Without feedback, the user is likely to believe that they missed the target, so they touch it again, or repeatedly touch it until it responds.
* Direct Manipulation
Direct manipulation occurs when touch contacts directly manipulate on-screen content. Users control the user interface with their fingers to move content (panning), adjust scale (pinch/stretch), or rotate content. Users expect to touch what is displayed on-screen and control it easily, similar to picking up an object and moving it; because of this user expectation, the visual interface must present an immediate, precise response that is authentic.
As obvious as this may seem, direct manipulation presents several challenges, such as the need for smooth animations and physics, and visual considerations for the challenges that result from using a hand and fingers that cover large parts of the screen.
GesturesGestures are touch actions that are one step removed from direct manipulations. Typically, gestures are mapped to common operations like keyboard shortcuts. Gestures are ideal to invoke secondary actions and functionality on content. Touch in Windows 7 is designed for consistency throughout the experience. This requires the use of consistent gestures across Windows applications. The user would become confused and frustrated if a commonly used gesture did not work as they expected.
Windows 7 design principles
We believe the strength of Windows is in the openness as a platform, and success relies on the richness and variety of the software that runs on Windows. At the same time, various feedback channels tell us that the overall experience of using a PC can be perceived as complex and inconsistent, for a wide variety of reasons. The Windows 7 Design Principles describe our approach for designing the user model and experience for Windows 7. OEMs can also apply these principles to their decision-making process for the software that they distribute with slate PCs.
This section describes the key Windows 7 Design Principles that apply to slate PCs. We placed special emphasis on full-screen applications and design considerations for how these applications interact with Windows.
* Reduce concepts to increase confidence
Good applications provide innovative, clearly purposed, well-designed experiences that leverage what Windows does best: launching, switching, configuring, and servicing the breadth of scenarios that people expect from a Windows PC. The Windows UI provides users with access to a wide variety of objects necessary for running applications and managing the operating system.
The Shell Developer’s Guide provides conceptual material about how the Shell works and how to use the Shell’s API in your application. The Shell Reference section documents programming elements that make up the various Shell APIs. Shell SDK Samples provides links to Shell samples. Most samples can be downloaded from MSDN Code Gallery. All samples are included in the Windows SDK.
Telemetry research has shown that PC users spend as much as 19% of their time in the Windows shell. This includes time in the Start menu, browsing files, and in the Control Panel. Replicating even a small subset of that functionality in a Shell application does not provide an enhanced experience for customers. Consumers are typically required to do many tasks in Windows, and it is hard to define clear boundaries between the Shell application and Windows. This approach tends to create frustrating experiences by introducing new concepts and making usage more complicated.
Building great applications for Windows is the best way to showcase slate PCs.
* Small things matter: good and bad
Small aspects of touch experiences have a major impact, when they are critical to primary tasks or used frequently. If done well, small things can create touch experiences that delight the user. Windows 7 includes many new features that enable OEMs to differentiate their touch applications.
The Tablet PC Input Panel has different modes, and the Tablet PC Input Panel APIs enable customization of launch and placement settings, as follows:
o When the Input Panel is launched from the in-place target (next to the textbox), it is in in-place mode. When using touch to launch in-place mode, the Input Panel is launched at the bottom of the screen, or at the top of the screen if necessary, to avoid covering the text box. The user can move the Input Panel around, and it will automatically close if the focus is changed.
o The Tablet PC Input Panel APIs can be used to customize the Input Panel when it is in in-place mode. This gives developers control of launching and positioning the touch keyboard. Developers can use these APIs to optimize the experience, such as auto-launching the touch keyboard when touch is used to set focus in a text box (without showing the in-place launch target), which is convenient for slate PCs. Developers can also specify the position of the touch keyboard.
o When the Input Panel is launched from the taskbar or the edge target, it is in floating mode. In this mode, the Input Panel remains open until the user closes it, and the user is in full control of the Input Panel. The Input Panels default docking setting is floating mode, which displays the touch keyboard based on the location of the text box being tapped: at the top or bottom of the screen.
The vertical launch location of the Input Panel is based on the location of the edge-tab, and the user can drag the edge-tab up and down as desired. If the user moves the edge-tab toward the bottom of the screen, the Input Panel launches at the bottom of the screen. Most importantly, the user can reposition the touch keyboard easily at all times, as they switch between applications and change display orientation.
A consideration for third-party keyboard usage is that the Input Panel can be disabled within an application, but not at the system level, including the Windows log-on experience.
In Windows 7, the Input Panel provides a fully localized experience, which should be taken into consideration when adding an additional on-screen keyboard solution to an application.
If you are designing software using full-screen DirectX graphics, the Input Panel cannot be launched; rather, you must provide your own on-screen keyboard in the application, as needed.
For more information on enabling and extending the soft keyboard in applications, see the following API documentation:
+ Text Input Panel Interfaces
+ ITextInputPanel Interface
* Be great at “look” and “do”
Delivering on the promise of enticing visual experiences is critical with touch. Regardless of the aesthetic appeal, it is detrimental to present visual experiences that do not respond to touch. Ideally, the user is presented with a UI that invites them to touch, and with contextual tasks that are optimized for touch input.
The Microsoft Touch Pack for Windows 7 includes sample touch applications and games that embody these principles. For example, the Surface Globe application is immersive and designed for touch exploration. The UI anticipates what the user wants to do next, and the user’s direct manipulation and gestures enable quick and easy navigation.
Windows 7 also includes native support for sensors to create environmental awareness in Windows applications. Such sensors include location sensors (such as GPS devices), ambient light sensor, and temperature gauge. Location sensors can unlock new opportunities for location-based services. For more information on working with sensors, see the Sensor API.
The new Windows Touch APIs support rich gestures, such as pan, zoom, and rotate. All gestures should provide direct visual feedback, and enable interaction with underlying content in a natural and intuitive manner.
The Windows 7 Touch guidelines offer detailed information on how to develop a touch-optimized application, as well as how to make the most of existing applications. An application is considered touch-optimized when it has been specifically designed for touch, which means:
o Tasks are optimized for touch by placing the most frequently performed commands directly on the UI or content instead of within drop-down menus.
o The application’s experiences have an immersive touch experience with real-world physical properties, such as momentum and friction.
o Tasks are forgiving, allowing users to correct mistakes easily and accommodate inaccuracy that arises from touching and dragging.
o Tasks avoid or reduce the need for heavy text input or precise selection.
Smaller screen size limits the available screen real estate; as a result, it is important to consider rendering and how the application looks on a variety of screen sizes. Additionally, ensure that the application adapts well to different screen orientations. Another issue that often affects applications in the lack of support for high-DPI settings. This may be the case if the application is not originally designed to support touch, or designers are not aware that DPI settings can be changed in Windows.
By using built-in Windows controls and APIs, applications can comply with these guidelines with minimum effort. The controls in Windows respect scaling, accessibility, and are designed for touch. For instance, the Windows Ribbon framework is a rich command-presentation system that provides a modern alternative to the layered menus, toolbars, and task panes of traditional Windows applications.
To provide a highly accessible UI, the Ribbon framework implements Microsoft Active Accessibility. By automatically populating relevant Microsoft Active Accessibility properties with valid and helpful information, the framework reduces the burden on developers to provide an inclusive experience for all users. In addition, the Ribbon framework is a Windows feature and, as such, is localized for all languages that Windows supports. Developers, however, are responsible for localizing their own specific application resources.
Another key benefit of using built-in Windows functionality is evident in web browsing. Windows Internet Explorer 8 provides a number of security features in a touch-optimized browser. Among the security features are protected mode, anti-phishing safeguards, malware protection, tab isolation, and regular security updates. Replicating this functionality on top of Internet Explorer’s rendering engine, WebOC, can be very costly. The WebOC rendering engine provides the basics for rendering Web pages, but it is not designed to be an all-inclusive platform for a modern, trustworthy browsing experience.
For more information about security in WebOC, please see the MSHTML Host Security FAQ: Part I and Part II.
* Time matters: Build for people on the go
Value-added applications are an important aspect of OEM differentiation. However, poor application performance can have a negative perception of the system. It is important to thoroughly test each application against the specific hardware and software configuration of any given system. In addition to the system fundamentals, follow these application-performance recommendations:
o Avoid using managed code for applications on the critical boot path.
o Ensure that all applications respond quickly to shutdown notifications (WM_QUERYENDSESSION and WM_ENDSESSION messages).
o Reduce delays in the shutdown path of services and applications by minimizing CPU, disk, and network activity in response to shutdown notifications.
o Avoid delays in processing the suspend notification (WM_POWERBROADCAST message).
o Respond quickly to resume events and minimize post-resume CPU, disk, and network usage.
o Reduce application-resource consumption post-boot.
o Be consistent in technology platform choice to benefit from cross-application code sharing. For example, .NET code will be loaded only once when used by multiple applications.
o Do not start applications from the RunOnce key on every boot.
* Value the full lifecycle of the experience
Windows incorporates a single, coherent design that accommodates the range of things that people need to do on a PC, including configuration, launching and switching between programs, browsing for and managing files, device management, logon, account management, and task management. Out of the box, customers expect things like customization, personalization, and multiple-language support. It is important that applications do not insulate users from those important activities by jumping straight into a full-screen application experience.
In the design of each of these areas of Windows, we put significant thought into the design of the overall experience. For example, if a critical update is available for Windows or a driver, the Action Center notifies the user through the notification area. This is the same way that Windows notifies the user of other important information: power status, network status, current volume, and so forth. These notifications and the UI used to present them ensure that a range of frequent and important tasks are never more than a few clicks away. The Windows desktop UI is optimized to support rich, interconnected scenarios like this.
Presenting users with full-screen applications can disrupt many of these user scenarios. It is important to recognize that users will have a need to get back to Windows to perform additional tasks. Full-screen applications that do not provide standard controls such as close buttons are prone to creating user confusion and dissatisfaction. For example, Windows 7 includes Windows Media Center, which offers a great touch-enabled experience for media consumption. Windows Media Center can be launched and switched to just like a standard application, but it can also be configured to temporarily operate in full-screen mode.
While Windows Media Center offers an immersive experience in its full screen mode, it allows users to easily go back to the Windows desktop for required operating system tasks such as connecting to a wireless network or installing updates. It is important to recognize that these immersive experiences can never accomplish all user tasks and should not lock users away from the Windows desktop.
* System performance guidance
Consumers will buy slate PCs based on how they look as well as what they are capable of doing. In order to deliver the full range of scenarios that a customer expects, it is important that applications leave enough system capacity available for users and their applications. Give careful consideration to the impact that an application has on the boot experience, power efficiency, and system responsiveness. OEMs should test systems with all preinstalled software and ensure that:
o CPU utilization is less than 2% at idle state.
o CPU is at the lowest P-state for at least 98% of idle time.
o CPU is at the highest C-state for at least 98% of idle time.
o Disk utilization is at less than 1% during idle time.
o Disk access is tuned for AC and DC power, minimizing non-critical activity when the PC is on DC power.
o BIOS implements Advanced Configuration and Power Interface (ACPI) functions to natively support Windows 7s LCD auto-dimming feature.
Additional logo considerations
Windows Touch is an If Implemented logo requirement. It requires that the digitizer pass the Windows Touch logo requirements (Logo input-0006 for pen/single touch and Logo input-0046 for multitouch) as a standalone device as well as within system logo. Testing at both the device and system levels helps ensure that performance is not compromised during integration into a PC system.
The following hardware logo requirements represent additional considerations for slate PC form factors. This is a summary list, based on the current logo requirements, and may not be all inclusive.
Requirement ID
Requirement title
Notes
GRAPHICS-0020
Displayadapter or chipset complies with Direct3D 10 and DXGIFeature sets
DirectX 10is required for mobile devices with screens larger than10.2 inches. DirectX 9 is required for systems with ascreen size up to 10.2 inches.
INPUT-0012
Tabletsystems implement buttons using a HID-compliant mini-port driverand include a dedicated security button.
SYSFUND-0003
Systemexposes a debug interface that complies with Debug Portspecification.
SYSFUND-0043
Systemshave user-accessible, fully powered USB 2.0 ports.
Notrequired for systems with screen sizes up to 10.2 inches.
SYSFUND-0046
Systemsare capable of starting the Aero theme.
SYSFUND-0062
System is capable of playing High-Definitioncontent with no perceivable glitch during playback.
Not required for systems with scre