Wednesday, October 28, 2015

An open letter to Microsoft and Windows 10 universal app developers and users concerning accessibility of universal apps

To leaders at Microsoft specializing in accessibility, customer and developer relations, Windows 10, universal app architecture and ecosystem and others, fellow developers of screen readers, Win32, WinRT and universal apps, users of Windows 10, screen readers, Windows 10 observers including Paul Thurrott, Mary Jo Foley and others:
My name is Joseph S. Lee, a blind college student from Los Angeles, a translation and code contributor to an open-source screen reader for Microsoft Windows and one of millions of blind and visually impaired users of Microsoft Windows operating system. First, a sincere thanks goes to Microsoft for your continued commitment to accessibility and starting a new era of Windows through release of Windows 10 in July 2015. Thanks also goes to millions of app developers for Microsoft Windows operating system for making your apps accessible for blind people, providing opportunities for blind users of your software to be productive in their workplace and use your apps in unexpected places.
One of the promises of Windows 10 is universality. although Windows 10 has opened up many possibilities for unification between devices, software ecosystem and so on, there is one major issue that many in the Windows 10 culture may have not grasped or just beginning to grasp: accessibility of universal apps, or as I see it, lack of such accessibility for people with disabilities, specifically blind and visually impaired users using screen readers. By writing this open letter to the parties addressed above, I hope to start a dialogue or perhaps let the general public know the impact that lack of accessibility of universal app platform could have on lives of millions of current and potential users of Windows 10, and in extension, universal apps from Windows store.
According to a recent fact sheet from World Health Organization (WHO), as of August 2014, there are about 285 million blind people around the world, with nine out of ten blind people living in low income regions (footnote 1). Even in developed nations such as United States, South Korea (where I'm originally from), parts of Europe and others, many blind and visually impaired users are classified as poor or low income, or in some cases, unemployed. Because of this, coupled with trends in computing and other factors, blind and visually impaired people are some of the most affected by information blackout, considering that access to information has become a must in 21st century.
One route taken by blind people to gain access to information is through a computer and a piece of software called a screen reader. A screen reader is a program that identifies what is on screen and presents this information to users via speech or braille. Technically, recent trends in screen reader ecosystem has focused on understanding and tracking events fired by various controls using a specific accessibility layer such as Microsoft Active Accessibility (MSAA) or UI Automation (UIA), and it has become a requirement for screen readers to include support for accessibility API's from the beginning.
A good example of mechanics of a screen reader is when toasts appear in Windows 10 (sometimes called Action Center notifications). When such notifications appear, the screen reader will gather necessary information about the toast (knowing that it was a UIA object firing an "alert" event) which has just fired an event. Once the screen reader gathers this information (which includes text of the notification), it will speak the notification so the user would be informed as to which app has fired this event and press Windows+V to go to and interact with the toast notification.
Another common use case of screen reading is web browsing. Because web page presentation is hierarchical in nature, screen reader vendors had to implement a way to give screen reader users an experience similar to reading a document from top to bottom. One such screen reader uses code injection to obtain just the needed information from web browsers such as Internet Explorer, Firefox, Chrome, Edge and others, and will construct a "linear" representation of this web document (footnote 2). This gets interesting when the web application provides extra information or coded in such a way that allows users to use a web application as though one has installed the app on his or her computer (a good example is Google Docs). Thanks to recent efforts such as WAI ARIA (Accessible Internet Rich Applications), websites have become accessible portal of information for screen readers.
However, when we examine accessibility of apps, particularly those powered by an emerging ecosystem called universal apps (Windows 10, we're seeing a bag of mixed accessibility. The level of accessibility of such apps (and for Windows 8.x, Windows Runtime apps) ranges from fully accessible (Windows Feedback, Facebook and others), partial accessibility (unlabeled or misuse of markup or other coding in Twitter, unlabeled radio buttons in Insider Hub and others) to outright inaccessibility (Maps, games and others).
One note of concern is partially accessible apps where screen reader developers such as I had to write workarounds for inaccessible parts. A good example is universal app version of Twitter, where tweets (or timeline) are shown as a list and thus exposed by UIA as list items. However, as far as screen readers are concerned, the items (or the labels for them) are images, which indicates poor UIA (Ui Automation) implementation. In contrast, the same UIA items used to show feedback in Windows Feedback app are coded correctly - feedback text are spoken by screen readers. This comparison shows that either something is going on with UIA, or Twitter developers might want to optimize certain parts of the app to make it shown correctly to screen readers when they request UIA to show them list item labels.
However, I'm afraid that this is just a tip of an iceberg. The Twitter example is just one of many apps that exhibit behavior that makes me and others wonder if developers thought about accessibility of universal apps in mind when they wrote the code and XAML (eXtensible Application Markup Language), the major components that powers such apps. Unless something is done to ask citizens of universal app ecosystem (users, developers, leaders at Microsoft, observers and others) to think about universal accessibility of universal app architecture and the products that will power or be powered by them (Windows 10 ecosystem and universal apps, respectivley), this app ecosystem will be ignored by current and potential users of Windows 10 who are blind, a minor yet important customer base for Windows 10 and various universal apps. If accessibility is not addressed early, it will come back to haunt us later, and I believe it is important for people to start talking about universal app ecosystem accessibility given Microsoft's proclamation that Windows will be a service and hopes of seeing one billion devices running Windows 10, some of them belonging to users with disabilities.
Thus, I would like to ask Microsoft and its partners, users and developers of universal app ecosystem, other users, screen reader users and developers and others to start thinking about accessibility of universal apps, as this app platform opens new opportunities and will be used by many, including people with disabilities for years to come. To developers of universal apps, as a fellow programmer, Windows Insider and as a user of some universal apps, I would like to ask you to think about accessibility of your apps, as it will mean great reviews by those with disabilities using your apps, which will translate to increase in user base, prominence in the ecosystem and more. To users of universal apps, please remember that, for a population of users who have experienced information blackout, accessibility of an app is one of their top priorities when they wish to join the band wagon. To Microsoft, I would like to seriously ask you to let universal app developers know about options available to make their apps more accessible, such as good use of UIA and learning about accessibility standards and why it is important to promote universal accessibility in their universal apps.
I hope to see the universal app architecture and the ecosystem flourish and increase and prominence, not only due to its potential, but also due to accessibility and efforts put into making universal apps universally accessible. Thank you.
Sincerely,
Joseph S. Lee

Footnotes:
1. Visual Impairment and Blindness, World Health Organization. http://www.who.int/mediacentre/factsheets/fs282/en/
2. NVDA architecture and design overview: http://community.nvda-project.org/wiki/DesignOverview