Trusted and Efficient Browsing with Internet Explorer 9
Users want to browse without interruptions and with the confidence that the browsing experience is reliable and fast. Internet Explorer 9 was designed to provide the user with the following features that promote trusted and efficient browsing:
The Add-on Performance Advisor, which helps users stay in control of their browsing performance with add-ons. When add-ons have a noticeable impact on performance, Internet Explorer 9 notifies users that they can speed up browsing by disabling add-ons.
Support for hardware-accelerated text, video, and graphics, which enable websites to perform exactly like the applications that are installed on a user’s Windows-based computer.
Add-on Performance Advisor
As an addition to the feature in Internet Explorer 8 that exposed add-on load time, the Add-on Performance Advisor notifies users when add-ons are slowing down the browsing session. Users are notified if the total load time of all enabled add-ons takes more than 0.2 seconds. The Add-on Performance Advisor offers users an opportunity to make an informed decision to use the add-ons that they find valuable and to disable those that are less useful or too slow. This applies to the following binary add-ons:
Toolbars
Browser Helper Objects
Explorer Bars
The Add-on Performance Advisor uses two metrics to measure add-on performance: load time and navigation time. These metrics map to the two browser usage scenarios: tab creation and webpage navigation. These are the scenarios where add-ons are known to have the biggest performance impact. For more information about these metrics, see Add-on Performance part 2: Helping consumers make informed decisions.
Internet Explorer 9 monitors both the load time and navigation time for add-ons that are running in the browser. Every time that the user creates a new tab or navigates to a webpage, Internet Explorer records the load or navigation time for each add-on. Internet Explorer stores the last 10 data points for each add-on and uses the data to calculate the average load or navigation time.
When the total average load or navigation time of all enabled add-ons exceeds a threshold, Internet Explorer displays the following notification.
When users see the notification, they can choose to ignore it if they are comfortable with making the performance tradeoff for their add-ons. If the users dismiss the notification, Internet Explorer does not notify them about add-on performance issues for one day or until they subsequently enable an add-on.
Tapping the Choose Add-ons button opens the Choose Add-ons page, which displays the list of enabled add-ons, their load or navigation times, and the total performance impact.
Figure 2: Choose Add-ons Page for Disabling Add-ons
The times shown in the dialog box are based on excessive load or navigation time for an add-on. For example, if the total average add-on load time is 0.5 seconds and total average navigation time is 0.4 seconds, Internet Explorer displays the load time values on the page.
The add-ons are displayed in order of their load or navigation times (longest times first), with the times graphically displayed in colored bars as well. The red bars indicate that the performance impact exceeds the threshold. In other words, by disabling the add-ons with red bars, the user will be able to stay below the threshold. The width of the bars indicates the relative impact to the slowest add-on, which has a bar of maximum width.
After a user disables an add-on it no longer appears in the list and is immediately disabled in the browser. The total performance impact of the user’s add-ons is updated accordingly on the page.
Note Be aware that Internet Explorer does not automatically disable slow add-ons. Instead Internet Explorer displays this information to help the user make an informed decision about the add-ons. Users can still choose what add-ons they want to keep enabled.
In addition to the Add-On Performance Advisor discussed earlier, Internet Explorer 9 displays the following notification when Internet Explorer 9 is started for the first time after a new add-on is installed.
Instead of enabling the add-on automatically, Internet Explorer asks users if they want to use the add-on. This maintains the principle of keeping the user in control. Tapping Enable enables the add-on. If the user is enabling a toolbar or an Explorer Bar it will become immediately visible in the Internet Explorer window. Users can choose to dismiss the notification or tap Don’t enable. In this case the add-on will not be enabled.
Microsoft has designed this notification to be non-modal so that users can ignore the notification if they want to defer any action for the add-on. Because it is possible that the user may not notice the notification, Internet Explorer 9 keeps the notification displayed for up to five sessions. After that, Internet Explorer 9 no longer displays the notification and the add-on will not be enabled. Users still will be enable add-on at later time by tapping Manage Add-ons on the Tools menu.
Sometimes it is possible to have multiple add-ons installed at once. For example, some add-ons come bundled with many related components. Instead of showing several notifications on top of each other, Internet Explorer displays a variation of the previous notification.
Tapping Choose add-ons opens the Choose Add-ons page, where users can select which of the installed add-ons they want to enable.
Figure 3: Choose Add-ons Page for Enabling Add-ons
When a user enables an add-on, it no longer appears in the list. When a user taps Done, any add-on that remains in this list stays disabled. This new functionality in Internet Explorer ensures that any new binary add-ons that are installed run only with the explicit consent of the end user.
Note to OEMs
OEMs should be aware of the following:
Only users can change default add-on performance threshold of 0.20 seconds.
When upgrading to Internet Explorer 9, previously enabled add-ons continue to be enabled. After upgrade, new add-ons installed in Internet Explorer 9 will require user consent to be enabled.
Any add-ons that are preinstalled by OEMs into Internet Explorer 9 will be enabled when the user starts Internet Explorer 9 for the first time.
For more information about Internet Explorer add-ons, OEMs should review the information available at the following:
Guidelines for add-on developers
Add-ons: Staying in control of your browsing experience
Hardware Accelerated Browsing
Internet Explorer 9 uses the graphics processing unit (GPU) to accelerate webpage rendering. This significantly improves overall browser performance.
Internet Explorer 9 uses the GPU for all rendering unless performance, stability, or rendering quality issues in the GPU or GPU driver necessitate software rendering. This ensures the fastest possible experience for all customers by default. Unless software- based rendering is used, Internet Explorer 9 takes advantage of the hardware video decoder to decode h.264 videos played with HTML5 video element.
The new Internet Explorer 9 JavaScript engine takes advantage of the second CPU core to compile JavaScript into native code in the background. This makes JavaScript run faster on the computer that has multiple CPU cores.
Note to OEMs
In order to create the best browsing experience, OEMs should consider the following suggestions for their systems:
Use modern DX11, DX10, or DX9 GPU hardware. Always use the latest drivers from the hardware vendor.
Use a GPU that supports a hardware video decoder or include a hardware video decoder that works with Windows.
Use multicore CPUs.
Optimizing the User Experience
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:
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 uses the keyboard for touch and the pen for handwriting.
Figure 41: 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 5: Microsoft Touch Pack for Windows 7
Device Stage is a 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 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 6: 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 preinstalled 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 the following:
Windows Live Mail (email)
Windows Live Messenger (instant messaging, voice and video communication)
Windows Live Photo Gallery (photo editing and organization)
Windows Live Movie Maker (video editing)
Windows Live Family Safety (parental controls for online activity)
Windows Live Writer (blog composition)
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, 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.
Reduces 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.
Improves 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. This makes commands more touch friendly.
Note to OEMs
OEMs may show large icons on the Internet Explorer command bar on small portable computers that do not meet the minimum effective resolution of 1024x768.
In Internet Explorer 9, OEMs do this by setting the value of the SmallCommandBarIcons setting to FALSE. The SmallCommandBarIcons setting is part of the Microsoft-Windows-IE-InternetExplorer component in the Windows System Image Manager (Windows SIM).
For more information, refer to the Windows OPK documentation.
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 program requirements that are relevant to slate PCs are listed in this document.
Design Principles
In addition to following the Windows Logo Program requirements, OEMs can provide a differentiated experience through hardware and software design, as listed in the following sections.
Hardware Recommendations 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 whenever 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, glass coatings, or both that are 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 program 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, instead of 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 0.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 0.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 optimal 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 that 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 digitizer’s 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 users perform 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
Touch interfaces work best when the Windows DPI setting is configured to match the physical display DPI. Because 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 about how to configure the DPI value, see DPI Configuration for Small PCs.
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 × 768. For example, a screen size of 8 inches with a resolution of 800 × 600 has an effective screen resolution of 640 × 480, which is not acceptable. Choose the appropriate DPI setting as follows:
Physical DPI
|
Appropriate DPI Setting
|
< 115
|
96
|
Between 115 – 138
|
120
|
> 138
|
144
|
Support angled viewing by using wide-view LCD technology.
Use glass surfaces and glass coatings designed to reduce fingerprints.
Consider anti-glare materials and light-emitting diode (LED)–based illumination.
Sensors
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.
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
Balance the CPU, GPU, and media acceleration, memory capacity, and performance.
Determine the levels of chipset and memory resource utilization required for key scenarios with a full software load.
Provide extra resource allotment to accommodate the additional software that end-users will install.
Provide 2 gigabytes of memory on CPU-constrained and GPU-constrained systems.
Power Management
USB devices should support selective suspend.
Battery life should exceed 4 hours under normal operating conditions.
The PC should have sufficient battery to support standby time of at least 72 hours.
The system should resume from an idle state (for example, S3) in less than 2 seconds.
Storage. 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. 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.
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, users are 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.
Gestures
Gestures 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. Users 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:
When the Input Panel is opened from the in-place target (next to the textbox), it is in in-place mode. When using touch to open in-place mode, the Input Panel is opened 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.
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 opening and positioning the touch keyboard. Developers can use these APIs to optimize the experience. For example, for Slate PCs, developers can optimize automatically opening the touch keyboard when touch is used to set focus in a text box (without showing the in-place launch target). Developers can also specify the position of the touch keyboard.
When the Input Panel is opened 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 Panel’s 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 opening vertical 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 opens at the bottom of the screen. Most importantly, users 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 used; 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, users are 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 sensors, and temperature gauges. 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 touch-optimized applications, 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:
Tasks are optimized for touch by placing the most frequently performed commands directly on the UI or content instead of within drop-down menus.
The application's experiences have an immersive touch experience with real-world physical properties, such as momentum and friction.
Tasks are forgiving, allowing users to correct mistakes easily and accommodate inaccuracy that arises from touching and dragging.
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 is 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 9 provides a number of security features in a touch-optimized browser. Replicating this functionality on top of Internet Explorer's rendering engine, Web Browser Control (WebOC), can be very costly and is highly discouraged. The WebOC rendering engine provides the basics for rendering webpages, but it is not designed to be an all-inclusive platform for a modern, trustworthy browsing experience.
To implement a custom browser with the security, safety, and usability features on par with Internet Explorer 9, a developer would need to implement the following functionality otherwise not found in the WebOC:
Tabbed Browsing
Compatibility View List
Undo Tab Close
Restore Last Session
Address Bar
Search Box
Status Bar
File Menu
Low Rights IE
Frame Extensibility (toolbars)
Support for Browser Helper Objects
Download Manager
Travel Log
Antiphishing
XSS Protection
Content Filtering
InPrivate
Notification Bar
Feed Discovery
Accelerators
Crash Recovery
Home page
Tools/Options
Explorer Bars
For more information about security in the WebOC, 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:
Avoid using managed code for applications on the critical boot path.
Ensure that all applications respond quickly to shutdown notifications (WM_QUERYENDSESSION and WM_ENDSESSION messages).
Reduce delays in the shutdown path of services and applications by minimizing CPU, disk, and network activity in response to shutdown notifications.
Avoid delays in processing the suspend notification (WM_POWERBROADCAST message).
Respond quickly to resume events and minimize post-resume CPU, disk, and network usage.
Reduce application-resource consumption after boot.
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.
Do not start applications from the RunOnce key on every boot.
Value the Full Lifecycle of the Experience
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.
Note to OEMs
OEMs should test systems with all preinstalled software and ensure that the following criteria are met:
CPU utilization is less than 2% at idle state.
CPU is at the lowest “P-state” for at least 98% of idle time.
CPU is at the highest “C-state” for at least 98% of idle time.
Disk utilization is at less than 1% during idle time.
Disk access is tuned for AC and DC power, minimizing non-critical activity when the PC is on DC power.
BIOS implements Advanced Configuration and Power Interface (ACPI) functions to natively support Windows 7’s LCD auto-dimming feature.
Additional Logo Considerations
Windows Touch is an “If Implemented” logo program requirement. It requires that the digitizer pass the Windows Touch logo program requirements (requirement INPUT-0006 for pen/single touch and requirement INPUT-0046 for multitouch) as a standalone device as well as within a logo-qualified system. 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 program 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
|
Display adapter or chipset complies with Direct3D® 10 and DXGI Feature sets.
|
DirectX® 10 is required for mobile devices with screens larger than 10.2 inches. DirectX 9 is required for systems with a screen size up to 10.2 inches.
|
INPUT-0012
|
Tablet systems implement buttons using a HID-compliant miniport driver and include a dedicated security button.
|
|
SYSFUND-0003
|
System exposes a debug interface that complies with Debug Port specification.
|
|
SYSFUND-0043
|
Systems have user-accessible, fully powered USB 2.0 ports.
|
Not required for systems with screen sizes up to 10.2 inches.
|
SYSFUND-0046
|
Systems are capable of starting the Aero® theme.
|
|
SYSFUND-0062
|
System is capable of playing High-Definition content with no perceivable glitch during playback.
|
Not required for systems with screens up to 10.2 inches.
|
Call to Action
Review the requirements and consider the recommendations to build a slate PC that presents an end-to-end touch optimized experience. Overcoming the challenges presented by slate PC hardware is critical to delivering a top-quality touch experience. In addition to the Windows 7 User Experience design principles, consider touch optimizations that make the difference between an application with touch support compared to an application that was designed to work best with touch.
Resources
We are eager to work with the touch hardware and software ecosystem to deliver a high-quality user experience with Windows 7. The resources below provide comprehensive implementation guidance.
Title
|
Location
|
Introduction to Windows Touch
|
http://msdn.microsoft.com/en-us/windows/hardware/gg487480.aspx
|
How to Design and Test Multitouch Hardware Solutions for Windows 7
|
hhttp://msdn.microsoft.com/en-us/windows/hardware/gg487461.aspx
|
Developer Enhancements to Windows Touch and Tablet PC
|
http://msdn.microsoft.com/en-us/windows/hardware/gg487466.aspx
|
Digitizer Drivers for Windows Touch and Pen-Based Computers
|
http://msdn.microsoft.com/en-us/windows/hardware/gg487437.aspx
|
How to Enable USB Selective Suspend for Human Interface Devices
|
http://msdn.microsoft.com/en-us/windows/hardware/gg463158.aspx
|
Multi-Touch in Windows 7 [WinHEC 2008; 5.3 MB]
|
http://download.microsoft.com/download/5/E/6/5E66B27B-988B-4F50-AF3A-C2FF1E62180F/MBL-T527_WH08.pptx
|
Multi-touch Driver Development [WinHEC 2008; 3.1 MB]
|
http://download.microsoft.com/download/5/E/6/5E66B27B-988B-4F50-AF3A-C2FF1E62180F/MBL-T528_WH08.pptx
|
Multi-Touch: Designing and Testing for Logo Compliance [WinHEC 2008; 1.2 MB]
|
http://download.microsoft.com/download/5/E/6/5E66B27B-988B-4F50-AF3A-C2FF1E62180F/MBL-T529_WH08.pptx
|
Code Magazine: MultiTouch Capabilities in Windows 7
|
http://msdn.microsoft.com/en-us/magazine/ee336016.aspx
|
Windows Touch on MSDN
|
http://msdn.microsoft.com/en-us/library/dd562197(VS.85).aspx
|
Windows Touch Developer Resources
|
http://code.msdn.microsoft.com/WindowsTouch/
|
Windows User Experience Interaction Guidelines
|
http://msdn.microsoft.com/en-us/library/aa511258.aspx
|
Tablet and Touch SDK
|
http://msdn.microsoft.com/en-us/library/ms704849(VS.85).aspx
|
Sensor Development Kit for Windows 7
|
http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=SensorsAndLocation&DownloadId=5856
|
Windows OEM Preinstallation Kit (OPK)
|
Contact your Technical Account Manager at Microsoft to gain access to OPK documentation.
|
Windows Touch Test Lab
|
http://msdn.microsoft.com/en-us/windows/hardware/gg487482.aspx
|
Windows Touch Test Lab Logo Certification Testing Procedure
|
http://msdn.microsoft.com/en-us/windows/hardware/gg487485.aspx
|
Engineering Windows 7 Blog: Touching Windows 7
|
http://blogs.msdn.com/e7/archive/2009/03/25/touching-windows-7.aspx
|
Engineering Windows 7 Blog: Ink Input and Tablet PC
|
http://blogs.msdn.com/e7/archive/2009/04/23/ink-input-and-tablet.aspx
|
Introducing the Microsoft Touch Pack for Windows 7
|
http://windowsteamblog.com/blogs/windows7/archive/2009/05/27/introducing-the-microsoft-touch-pack-for-windows-7.aspx
|
Internet Explorer 9 Windows Summit presentations
|
http://www.microsoft.com/windows/windows-summit/internet-explorer-9.aspx
|
Internet Explorer Engineering Team Blog
|
http://blogs.msdn.com/b/ie
|
Internet Explorer Engineering Team blogs covering add-ons
|
http://blogs.msdn.com/b/ie/archive/tags/add_2d00_ons/
|
Guidelines and requirements for add-ons that extend Internet Explorer
|
http://support.microsoft.com/kb/973764
|
Pinned Sites Developer Documentation
|
http://msdn.microsoft.com/library/gg491731(v=VS.85).aspx
|
1/21/2014
© 2011 Microsoft Corporation. All rights reserved.
|