Enabling accessibility

Windows 8 is a product we design for an incredibly broad spectrum of people around the world. One of the areas where we have worked to deliver an even greater level of innovation is in ensuring that Windows 8, particularly the new Metro style experience, is accessible to everyone regardless of their physical abilities. In this post we will talk about the engineering work that goes into the features we refer to as “accessibility” – though as you will see, many of these features are broadly applicable and just make the product better for everyone. If you are interested in Microsoft’s overall efforts in accessibility and related topics, please be sure to check out www.microsoft.com/enable. This post is especially important for developers building Metro style apps for inclusion in the Windows Store, as we are asking you to test the accessibility of your application prior to submission. I encourage folks who have never seen these tools in action to learn about them through the video. The upcoming beta will be a great chance for everyone to experience the product.

An important note. With the next public release of code (later this month) we will see a significant improvement in the capabilities described in this post, but we still have work to do between beta and RC especially with regards to working with the latest releases of third party tools. I just want to make sure folks know that this post talks about improvements in the next release as well as functionality that will still be improving as we get to the release candidate.

This post was authored by Jennifer Norberg, a senior program manager lead on our HID team.

--Steven

We want all users to be able to experience Windows 8 Metro style apps on their desktops, laptops, or the new touch-capable devices. This includes people with disabilities who rely on assistive technologies to use the PC.

About 15% of the world's population has a disability1. In the United States alone, 49.6 million people have a disability2 and 45 million in Europe3. When it comes to interacting with computers, these disabilities affect individuals in a number of ways:

Visual impairments include color vision deficiency, low-vision and blindness – all of which may impact the individual’s ability to see content displayed on the screen.

Mobility impairments include arthritis, cerebral palsy, Parkinson’s disease, multiple sclerosis, and paraplegia, which impact the ability to use the keyboard and/or mouse to interact with the PC.

Hearing impairments include conditions ranging from mild hearing loss to total deafness, and impact the individual’s ability to experience audio content generated by the computer.

The rates of individuals with disabilities are also increasing across the world due to the aging population and increases in chronic health conditions. One of the consequences of the global aging phenomena is the impact it will have on the workforce. For example, in the US, workers aged 55 and older are anticipated to increase from 18.1 to 23.9 percent by 20185. That is more than one in five workers. Functional limitations as a result of aging (for example, presbyopia, the gradual loss of the eyes' ability to focus actively on nearby objects, a condition that usually becomes noticeable in one’s mid-40s and continues to worsen until around age 65) will impact an older workforce’s ability to use technology that isn’t easy to see. As a result, there will be an increase in the number of working-age adults who are likely to benefit from the use of accessible technology.

New technologies and designs are especially difficult for people with disabilities to adopt because many new technologies are not made accessible when they are first released to the public. We have heard this concern about previous versions of Windows and we want to ensure that everyone can experience Windows 8 right away by providing a comprehensive accessibility platform for the desktop and Metro style features.

Our accessibility goals in Windows 8 are to:

Improve the assistive technologies that are components of Windows, and provide a good experience with the Metro style UI.

Provide developer tools that have baseline accessibility built in, so that accessible Metro style apps are available in the Store.

Each of these goals and audiences are discussed in detail in this blog.

Past investments in accessibility

Before we look forward, let’s look back on the history of accessibility in Windows. In past releases, we established a foundation called UI Automation (UIA). UIA is used by developers to provide information about their code, and it’s how assistive technologies (ATs) access and use the information from the developers applications.

We’ve also shipped ATs as components of Windows:

Narrator is Windows’ built-in screen reader that allows people with visual impairments to interact with their system and applications. User feedback on previous versions of Narrator has consistently been that it needs to respond faster, read more controls, and support more languages.

Magnifier is a tool in Windows to make text and graphics large enough to see for people with low vision. This was initially shipped in Windows 98, and was updated significantly in Windows 7 with the ability to magnify the full screen. This change received positive feedback. However, there were still issues with Magnifier, as it sometimes conflicted with settings for High Contrast colors.

Speech recognition initially shipped in Windows Vista to aid people with mobility impairments to navigate and use their PC. User feedback on this feature has been really positive, telling us that the accuracy in speech recognition is good, it transcribes your voice to text quickly, and it is able to handle some uncommon words.

On-screen keyboard has been available to those with mobility impairments since Windows XP.

While these Windows ATs cover a range of impairments, Windows depends on the rich ecosystem of AT vendors to cover the broad diversity of disabilities, and fully supports innovation in the ecosystem. This does not change with this new release of Windows. While we have focused on improving the ATs that we provide as Windows components and are providing support for new scenarios like the Metro style UI, we are also continuing to provide a rich platform and ecosystem where AT vendors can thrive.

Accessibility improvements in Windows 8

With each new release, we collate and respond to user feedback. It is clear that users want richer AT offerings to be included with Windows 8. In this release, we invested in the following areas to support this feedback:

We redesigned Narrator to improve its performance so that it quickly reads out what you have selected.

We added more languages and voices to Narrator to support additional countries and preferences.

We updated components and features within Windows to leverage UI Automation that allows them to be read by Narrator.

We updated UI Automation (UIA) with more text patterns and document content so that Narrator can use it to read the outputs from applications.

We focused the above improvements specifically to address two key scenarios:

Installing, setting up, and configuring your PC: Using an existing Windows 7 PC, turn on Narrator by opening Ease of Access and selecting Narrator. Then go to the webpage that hosts the Windows 8 download and install point (download Windows 8 Developer Preview here), and walk through the setup with Narrator speaking to you. There are still a few bugs in the process that we are working on. But this now provides you with the ability to install using Narrator.

Narrator has some new configuration options in Windows 8. You can select a voice, change the speed at which it speaks, create customizable commands, and specify some other aspects of Narrator’s behavior.

Narrator main screen to configure settings

Right out-of-the-box with a new Windows 8 tablet, you will be able to press the Windows logo key and Volume Up to launch Narrator and walk through the setup of your machine. Whether you’re blind, have low vision, or are fully sighted, you’ll be able to start experiencing a Windows 8 tablet from the moment you get it.

Web browsing: Previously Narrator didn’t say much on webpages, and it was slow. But with the updates in Internet Explorer to leverage text patterns built into the UI Automation platform, and with additional performance updates, Narrator keeps up with you as you explore text on a webpage. Narrator provides you with the ability to continuously read a page (Use the Windows logo key + Alt + \ to invoke the reading) and then responds quickly to commands such as Ctrl, which will instantly stop Narrator from speaking. This allows you to interact with a control like a hyperlink (Windows logo key +Alt + Enter tells Narrator to select the hyperlink, and Windows logo key + Alt + Space navigates to the linked page).

In addition to addressing user feedback, a significant amount of work went into making sure that Metro style apps could also be accessible.

Evolving the accessibility platform for developers

Making Windows accessible while features are being built is challenging, and doing this while introducing a whole new development platform is even more difficult. However, we wanted users with disabilities to enjoy Metro style experiences right away (compare this to the Win32 platform, which took many years and multiple releases to become accessible).

As a start, we updated our accessibility foundation with support for industry standards. By supporting standards from the Web Accessibility Initiative, Accessible Rich Internet Applications (ARIA), HTML5, and XAML, it is easier for developers to code accessibility into their applications and for the ATs using UI Automation to consume the information that makes accessibility scenarios work on Windows 8.

This is in contrast to previous releases, where AT vendors used different “creative” ways of getting information from the system, in order to manipulate it and present it to their users. While a variety of approaches can provide rich experiences for users, it also creates a problem when non-standard approaches have to change in a new release. This is why we needed to create a strong foundation within the platform that leverages the existing coding standards (to which developers should adhere), and that can also be consistent from release to release. AT developers who use the platform can then reliably get accessibility information and don’t have to do any special tricks or coding.

Diagram of developer, platform, and AT required to provide information to the user

With a consistent platform, developers of Metro style features within Windows can now leverage the standards and platform to ensure their components are accessible. While the features are designed, developed, and tested, we continually track the progress made towards accessibility. When we released the build for the Windows 8 Developer Preview, the team had been working on accessibility. However, we still had bugs that impacted High Contrast, keyboard navigation, and programmatic data for the ATs to consume. We are by no means done, and we continue to drive the accessibility requirements across the team to ensure we meet our goals. In each public release of Windows 8, you will see improvements being made in this area.

The Metro style UI is a new experience for Windows, and gives us an opportunity to present accessibility settings in a new way. This opportunity allowed us to simplify and optimize the key settings that people with disabilities depend on to manage their experience.

For example, we have a new way to toggle settings for high contrast, which is easier to discover and simpler to apply. We also made it easier to adjust the size of UI elements to be bigger, and take care of the DPI scaling settings for you, so you don’t have to manage it manually. We think simplifying these settings will help a large set of users.

Developers creating and selling accessible apps

With Metro style apps, developers have an incredible opportunity to improve the accessibility ecosystem by creating and selling apps that meet a baseline of accessibility.

Fortunately, developers don’t need to learn new technologies to make their apps accessible. We rely on existing standards to reduce the learning curve for building accessible apps. HTML apps rely on the public HTML5 standard, which includes ARIA (a markup schema designed for declaring accessibility information). Likewise with XAML apps, we use the well-known markup schema used by similar platforms like Silverlight and Windows Presentation Framework (WPF). Additionally, the dev platform and tools shipped for Windows 8 support making an accessible app through every step of the development process:

Creating: When creating a project using one of the project templates from Visual Studio Express, the code is accessibility-ready. This means that you can immediately use it with a screen reader (Narrator), it is fully usable with a keyboard, it works well in High Contrast mode, and it is visually accessible for text contrast and color. This gives the developer a great starting point towards building an accessible app.

Coding: During coding of an app, there is additional support offered by the platform and tools:

Accessibility support is built into the Windows 8 controls. In most cases, all you need to do is define a good accessible name.

Use the Dev Center guidelines and samples to learn best practices and copy/paste accessible code.

At this point you are probably thinking: how can these efforts possibly work for interactive games or HTML5 Canvas based apps? You’re right; there are still classes of apps in which implementing accessibility will be more challenging than just leveraging the tools and templates. To help address these cases, we will continue to work with the developer community, post custom solutions, and expand accessibility guidelines with more examples.

Testing: When your app is ready for testing, use the Windows SDK accessibility testing tools to validate the markup. The Dev Center documentation also offers guidelines about testing a Metro style app for accessibility.

Selling: Once the app is complete, if it meets the baseline accessibility scenarios, you can declare it as accessible during the Windows Store publishing process by selecting the Accessibility check box. This will allow users looking for accessible apps to easily find them in the Store.

When developers build an application for Windows 8, they should follow this process and ensure their apps do the following to reach the accessibility community:

Support the standards. Ensure people with low vision or those who are fully blind can use a screen reader such as Narrator to accomplish the main scenarios offered by the app. The screen readers will leverage UIA and the standards discussed above to get information from the apps.

Make keyboard shortcuts. Ensure people with mobility impairments or users of screen readers that prefer keyboard navigation can use a keyboard to interact with the app and its UI elements. This includes navigating with the Tab and arrow keys; activations with Spacebar and Enter keys; and the use of shortcuts (access keys and accelerators).

Support high contrast and “make it bigger.” Ensure people with moderate visual impairments can distinguish the UI and text with sufficient text contrast ratios, and a good high contrast mode; and respect layout settings when the “Make everything on your screen bigger” mode is active.

Discovering accessible Windows 8 apps

Users will be able to set an accessibility filter in the Windows Store that will allow them to discover the apps that have been declared accessible by the developer. Additionally, users will be able to provide comments and ratings to help each other find the apps that are most accessible, and to help the developer understand how well they did in making their apps accessible

Adapting accessibility features for new form factors

One of the most exciting changes in Windows 8 is the introduction of touch-only devices into the Windows family. And, as with all form factors that Windows supports, we want these new touch-only devices to be accessible. As a result, we spent a considerable amount of time planning what it would take to make our Windows ATs useful on touch-only devices, mainly through the adaptation of the Magnifier and Narrator features.

Magnify your screen and navigate using touch

Magnifier can be used in different ways, but one of the most popular ways to use it is with keyboard shortcuts (Windows logo key + and Windows logo key -). However, on a touch-only device, you don’t have the keyboard available to input shortcuts, so we had to figure out how to make Magnifier work well in this scenario. We wanted to create a touch-based solution that was simple, fast, and unobtrusive. If you’ve used Magnifier before, you may have experimented with different modes in Windows 7. We chose to focus on full-screen mode for touch because of the data we gathered through the Customer Experience Improvement Program, which showed full-screen mode was the most commonly used. It’s also the best mode to leverage touch gestures because it spans the whole screen.

One of the great benefits of using touch is that you can directly interact with everything on your screen. There’s no need for separate devices like a mouse and keyboard – just touch exactly what you want. The downside we’ve heard from users who rely on magnification is that it can be hard to see and touch simultaneously because your hand is on the screen and it blocks you from seeing what’s behind it. But the entire goal of Magnifier is to help users see the screen – not to hinder. Therefore, one of our design principles for touch-enabled devices was to make sure that you can control Magnifier entirely from the edges of the screen.

When you start Magnifier on a touch-enabled device (in the Ease of Access panel, set Magnifier to start when you press the Windows logo key + Volume up), you will immediately notice a border that appears around the edges of the screen. We know you will need to access all areas of the screen, so we made it easy to move the Magnifier around the screen using these borders. Simply drag your finger along the border to move Magnifier in that direction. When the border disappears, you are at the edge of the screen.

Drag your finger along the border to move around the screen. Borders disappear when you reach the edge of the screen.

The plus (+) and minus (-) buttons in the corners allow you to zoom in or out. We also built in support for multi-touch zoom using these same borders. Moving two fingers closer together or farther apart on the border allows you to quickly change the zoom level.

When you are zoomed in, sometimes it’s confusing to know where you are on the screen. To remedy this, Magnifier has a preview feature that shows you exactly where you are in the context of the entire screen. Activate this by tapping with a thumb or finger on opposite borders at the same time. The preview will zoom out to show you exactly what part of the screen you’re on, then it will zoom back in to your current location.

Tap on two opposing borders at the same time. Full screen preview highlights where you are on the screen.

You can even drag the highlighted region while it’s zoomed out to move the Magnifier around the screen.

Most importantly with Magnifier, you don’t need to change the way you interact with your device to use it with touch. Once it’s turned on, it will work with all of your apps. For users with low vision who have trouble seeing their devices, Magnifier makes it easy to see the screen and touch it, too.

Explore and learn the UI with Narrator

In Windows 8, Narrator has been redesigned to be substantially faster and support many new features. To support Narrator on touch-only devices we’ve implemented a standard way to launch Narrator, by holding down the Windows logo key and pressing the Volume Up button. Once Narrator is running, you can use Narrator’s built-in touch commands to explore the screen and control your device.

If you’re blind, then the challenge with touch is that there’s no way to find something on the screen without activating it. On a Windows 8 device, Narrator addresses this challenge by allowing you to drag a single finger around the screen. Narrator will read what is under your finger but won’t activate it. Users with vision will notice that the Narrator cursor will follow your finger as well. We refer to this as “exploring.” A good way to understand this is to imagine there is a sheet of glass on top of your screen – Narrator will allow you explore what is underneath by touching the glass but without touching the screen directly. Once you’ve found the item you’re looking for by exploring with a single finger, you can activate it by tapping anywhere with a second finger.

These are just two examples of ATs that are shipping with Windows 8 and that are now optimized for touch-only devices. There are many other improvements across all the Windows 8 ATs, but we will save that to discuss at a later time.

Onboarding assistive technology vendors

There are many scenarios and a wide range of impairments to cover, and so we’ve engaged and partnered with AT vendors to ensure we are creating the best and most comprehensive experiences for the disability community. The assistive technologies that ship in Windows 8 will work across both the desktop and Metro style UI experiences, to provide seamless access to the PC. People who need advanced AT features may need or want to purchase solutions from specialty Assistive Technology vendors (AT vendors) to meet their specific needs.

AT vendors create sophisticated ATs that can provide richer experiences to the disability community. For example, they may provide in-depth support for specific applications and for legacy applications. The ATs shipped in Windows may not work well with apps that do not support industry standards or platform technologies, including for example, legacy applications that do not implement UIA.

In Windows 8, we invested heavily in building the foundation for the new Metro style UI and adopting the industry standards that will benefit application developers, ATs, and the disability community.

By providing a standardized way of getting the information, ATs can work with the standards that app developers are used to, but more importantly, AT vendors can rely on these standards to be supported through multiple Windows releases, to ensure their ATs don’t break with each release. Since the //Build conference, we have partnered with leading AT vendors to help them get started with Windows 8. This has included support for previously used mirror drivers and UIA support.

We continue to sync up with the AT vendors to ensure that their questions are addressed, and we are working toward the common goal of an accessible Windows 8.

Windows 8 has been an incredible opportunity for us to improve our accessibility support. Not only have we evolved the platform, we have introduced new opportunities for developers to broaden their application’s reach into the disability community. We have also focused a lot of attention on the ATs that are included with Windows 8, not only improving performance and language support, but also enabling new form factors including touch-only devices. We continue to be very committed to a rich and innovative third-party ecosystem, and with more standardized and consistent interfaces, we hope to help the ecosystem continue to innovate on Windows.

If you are a user with accessibility needs, we think you will like what we have done. If you are a developer, build an accessible app and reach a larger spectrum of users! If you are an AT vendor, come work with us and refresh your applications using our platform. This is an exciting and compelling release that will change how people of all abilities interact with PCs.

There is still work to be done in Windows to meet all the accessibility needs, but we would like to encourage people to try out the Metro style experiences with our free, updated Windows 8 ATs.