Tuesday, February 24, 2015

Windows Installation and speech output petition: what is involved and practical

Last week, a blind user in Turkey submitted a petition asking Microsoft to make Windows installation process completely accessible. According to the petitioner, current procedure for installing Windows is completely inaccessible. Subsequent comments posted to various mailing lists provided examples where the assumptions of the petitioner was contradicted, including ability to use USB headsets during installtion, invoking Narrator for latter half of the installation steps and usign talking Windows Preinstallation Environment (WinPE), scripting the installation process and so forth.
Although I agree with basic premise behind the petition, I would question the practicality of this idea. In order for a screen reader to even come onboard to help finish Windows installation via speech, basic infrastructure such as a generic sound driver must be developed. Second, making initial phase of clean Windows installation, or for that matter, access to early phase of installation accessible will require close colaboration between the sound card, operating system and firmware, and this raises a number of issues such as driver incompatibility. Lastly, although this petition may cover clean installation scenarios, because many users would install Windows on top of the existing installation with the initial phase being accessible, the argument that Windows installation is completely inaccessible will not hold.
Before we discuss why the idea proposed in the petition may not be practical, let us examine how Windows is installed. The following procedure applies for installing Windows Vista and later:
1. For a clean installation, the user will select to boot from the installation source (DVD, USB flash drive, etc.).
2. Once user selects language and other basic data, the installation program will copy a minimal set of boot files to the target hard drive. Once this is done, the computer will restart.
3. After the first restart, the newly installed boot programs will start and will search the source media looking for more files to copy. During this time, the screen will display various progress information regarding file copying, installation steps and so forth. Once the needed files are copied, the computer will be restarted to complete the initial setup phase.
4. Once the computer restarts, a more graphical part of the setup will be displayed. At this point a blind user can invoke Narrator to configure settings such as user name, installing updates and so on. Once this is done, Windows will launch the desktop or start screen depending on the version installed.
The part that blind users are asking for improved accessibility is the initial boot phase (booting from the installation media and going through initial setup screens). at this point, Windows will rely on drivers installed in firmware (BIOS/UEFI) or certain basic drivers to show the setup screens. Thus the first steps to making this petition a reality is inclusion of a generic sound card driver that allows blind people to install Windows completely on their own via speech.
However, with the current infrastructure, this is far from reality. Different sound card vendors add custom features onto their sound cards that may not be compatible with the generic sound card framework. There is also a possibility that certain sound cards will not listen to sound card drivers. Here, "listen" means that a sound card hardware should output sound as directed by a hypothetical generic sound card driver. With a variety of sound cards out there (including built-in ones), the idea of a generic sound card will require discussion between sound card manufacturers (Creative, Realtech and others), motherboard makers (Asus, Gigabyte, etc.) and operating system vendors.
Speaking of discussion between makers of sound cards, operating systems and motherboards, the idea of a hypothetical generic sound output architecture is something that requires careful colaboration between sound cards, operating systems and firmware. This means that before the proposed idea of complete Windows installation via speech can come to life, sound cards must be willing to play whatever sound required during installation phases (speech, for instance) when device-specific driver isn't available. Next, the operating system must be willing to discover as much as it can about any sound cards present on a system and would be willing to load a generic sound driver. Lastly, firmware (BIOS (Basic Input/Output System)/UEFI (Unified Extensible Firmware Interface)) must expose protocols (contracts and rules) for accessing sound hardware so that the operating system installers (especially those that run from an installation media) can talk to sound hardware 9if any). Currently, UEFI specification permits loading external EFI applications, which may mean it might be possible to create a program to discover and provide a mechanism to talk to sound card so the operating systems can take advantage of it later.
But is loading a generic sound driver at installation time a true universal solution? Think about a situation when a network administrator may wish to install Windows on remote computers (or servers) with no guarantee of presence of a sound hardware or sound output isn't desirable. Another example is if the installation is automated and steps for loading the generic sound driver is skipped. These examples highlight the limited practicality of the idea that the petition is proposing: speech output during installation, and without a firm infrastructure for it, the proposed idea will just be a food in a picture.
Lastly, clean installation isn't the only way to install any operating system. For Windows installation, there are two methods of installing it: clean installation (the steps are outlined above) or in-place upgrade. In case of the latter, the initial phase of installation is usable by blind users using screen readers, as the setup screens are similar to the ones encountered when installing any program (in fact, operating systems are programs, although they have specific purposes and promise to run even though other apps stop functioning unless drivers that crashes the entire system are involved). Given that this initial setup screen phase are (no different than that of certain phases during clean installation (except for some parts) and this can be done by screen reader users familiar with installing programs, I would say this defeats a major assumption put forth by the petition: Windows installation should be completely accessible when in fact it is when done corectly.
Given the evidence above and when considering current technology, I would like to cast doubt as to practicality of the idea presented in the petition. Having speech output during clean installation is a dream that blind users of Windows have been dreaming for a long time. But in order for this to work, a minimal or a generic infrastructure must be present, which requires careful colaboration between the parties involved, namely the sound card, operating system and firmware. Also, given that many would use in-place upgrade to upgrade from say, Windows 7 to Windows 10 and since this process is usable for people using screen readers, the petition would be redundant. But there are use cases when clean installation is desirable, and barring circumstances, having at least a minimal, generic solution would allow power users who are blind to install Windows with minimal effort. Therefore, I would like to urge the lbind community and other parties involved to carefully research what the petition is asking, what's possible with technology and what can be done before signing this petition. Thank you.