Wednesday, November 26, 2014

Tentative Access: Current situation with Windows 10 and screen reader support announcements



For the past few weeks, one of the topics brought up on some blindness mailing lists and on social networking platforms was support for Windows 10 by screen readers. Since the release of technical preview of Windows 10, some blind users installed this OS and sent tweets regarding supposedly enhanced Narrator, some user interface issues and feelings about Windows 10 using their preferred screen readers. The consensus was that, although it felt like using Windows 8.1, it had its potential with return of start menu from Windows 7 yet cautioned that the OS is far from complete.

Then this week, AI Squared which acquired GW Micro not long ago, announced Window-Eyes 9.0 beta 1. Besides support for table reading and math player support, one of the highlights was support for Windows 10. Although the word “preliminary” was not used directly, as of November 2014, it is considered a preliminary support given latest developments in Windows 10, particularly some internal changes that may affect some code.

As someone who have used Windows 10 and a user of two screen readers, I believe it isn’t right for assistive technology companies to announce support for Windows 10 when NT kernel code base is still in late alpha stage. In software development lifecycle, “alpha” usually refers to bleeding-edge code meant for internal testing. Except for open-source projects, alphas are not released to the public (exceptions exist). In case of Windows 10, current releases can be considered late alpha code, with hints at very early beta code given user experiences, talks of OneDrive functionality changes and what not. Thus, given that NT kernel code can change rapidly (which is a trademark of fast-pace developments in large companies), November 2014 might be too early (I’d say, a bit early) of a date to announce support for Windows 10 by a screen reader. Although it has a tactical advantage of throwing competition off guard, when we consider Windows 10 from development perspective, I would say AI Squared may have sent out a possibly misleading message (again, the announcement is open to interpretation).

Second, developers are consumers as well. As screen readers are highly privileged software and thus are expected to be a trustworthy process to an operating system, any code changes that Windows 10 will introduce may have repercussions to trusted software such as jfw.exe, wineyes.exe, nvda.exe and others. This is more so if a critical part of an operating system changes that affect accessibility, such as kernel version bump (Windows 10 is no longer NT 6.4, but NT 10.0, according to news sources and confirmed by Microsoft) and prominent use of UIA – Windows Store apps use UIA extensively and is coded in such a way that prevents screen review facilities (JAWS cursor, screen review mode, etc.) from working correctly. A note of concern is UIA: if any part of UIA that screen readers rely on changes for some reason, screen reader vendors will be faced with retooling existing code to work with new routines, thus exposing screen reader developers to a similar level of frustrations like that of a consumer. In other words, as far as Windows API, User Interface Automation and coding is concerned, screen reader developers (for that matter, any developer writing Windows apps) are consumers as well.

So when would have been a more appropriate time to announce support for Windows 10? Based on current developments in Windows 10 and with the current tech preview series being quite unstable, I’d put forth spring 2015 to be the right time (more towards CSUN 2015 conference season). This would allow a more mature Windows 10 code to be available for early adopters and for screen reader vendors to prepare their source code to tackle changes in accessibility implementation, as by then developer preview with API release notes would have been released. However, even if support for Windows 10 (NT 10.0) is announced by Freedom scientific, AI Squared, NV access and others, vendors should keep an eye on any critical changes to accessibility implementations that warrant further refinements to their source code (JAWS is written in C++, evidenced by the fact that it installed C++ runtime redistributables, NVDA’s front end is written in Python while critical backend is written in C++). As it is now, I’d consider Windows 10 support (or announcement of it) providing “ten”tative access to Windows 10. Thanks.