Over the years I’ve used a range of solutions for solving the basic challenge of wanting to experiment with new versions of operating systems, screen readers, applications and more without breaking a working system. From using dedicated test computers, various hard drive imaging solutions, dual booting (running two operating systems on the same machine) and of course using what are known as virtual machines through the various virtual machine technologies available.
The majority of my experience has been running virtual machine technology on Windows to run other windows machines in a virtual environment. Information in this post is therefore limited to that combination. There are viable solutions on other platforms as well.
The goal of this post isn’t to provide a full tutorial on using virtual machines. It is to share a few notes and things I’ve learned in case they are of assistance to others using similar technology in conjunction with a screen reader as a starting point.
For those unfamiliar with what a virtual machine is, think of it as a way to run a second or third computer on an existing computer through a software program. There are many benefits to this including as mentioned the ability to try things out without breaking a working environment.
The three virtual environments I’ve used are Hyper-V, built directly into Windows; VM Player and VM Work Station from VMware and VirtualBox from Oracle.
There is no one perfect virtual machine solution and in my experience each of the three options I’ve explored has strengths and weaknesses.
I have had success using all three of the solutions I’ve mentioned. Each requires you understand what’s necessary to get the virtual machine configured and how to access the machine of course. I do routinely use virtual machines in my environment though and they can be a very helpful tool.
Aside from possibly having to enable the feature, Hyper-V being part of Windows can be very handy and the machine management user experience works well in my experience with screen readers. In general screen reader-friendly tree-view and list-views are used for most controls. Perhaps the biggest limitation is that Hyper-V does not support audio directly until you are able to establish a remote desktop connection to the machine. This means that unless you are skilled at fully unattended operating system install and configuration, there’s a strong possibility you will need assistance in creating the initial virtual machines you want to use.
I have used both the consumer-oriented VM Player and the more enterprise-oriented VM work station over the years. The machine management experience in VM Player works well with screen readers. Again, most controls are screen reader-friendly tree-view and list-views. However, VM Player is limited in some key areas such as the ability to run multiple virtual machines at once or take what are commonly known as snapshots of a virtual machine. Think of a snapshot as a way to capture your virtual machine at a point in time so if something goes wrong or you want to get back to that point, it is as easy as applying that snapshot.
VM Work Station is a full-featured VM solution. However in my experience the machine management part of the program did not work as well with screen readers. Additionally, in my environment I have found more keyboard quirks when switching from a virtual machine back to the main operating system. These are not insurmountable problems and at one point I used VM Work Station with success for several years. In general VM Player is free for individual use while Work Station requires you purchase the software.
Both VM Player and VM Work Station have native support for audio. This means that with the ability starting in Windows 10 to use Microsoft’s Narrator during operating system install, in most cases it is possible to create a virtual machine completely independently.
Whether you use VM Player or Work Station, two important keyboard commands to know are CTRL+g to put keyboard focus into a virtual machine and CTRL+Alt to put keyboard focus back to your host or main machine operating system. In my experience, it has been helpful to press the Control key a couple times alone after using the CTRL+Alt combination to avoid modifier keys seemingly locked when switching back to your host machine.
Oracle’s Virtual Box has been an interesting experience. . The machine management and settings areas of the program are very mixed when used with screen readers. Some items work quite well, such as menus for working with individual machines, while others, such as the experience to modify hotkeys in the program and other machine settings, work poorly at best. Additionally, I’ve found keyboard access when using up and down arrows in a list of virtual machines sometimes jumps out of this list. I’ve taken to ensuring I give each virtual machine a name starting with a unique letter because I know once I am in the list of machines, I can press that letter and ensure I move focus to a specific machine.
As with the VMware products, VirtualBox has support for audio natively. This means that again, fully independent creation and configuration of a virtual machine running Windows 10 is possible.
By default VirtualBox uses the right, and only the right, Control key as what it calls the Host key. Use that key to toggle keyboard access between the virtual machine and your main computer. Use CTRL+Home to access a menu of options related to the running virtual machine and use CTRL+t to take a snapshot of the virtual machine.
VirtualBox also has extensive command line support. Chapter 8 of the user manual has all the details and I find myself largely using this option to work with my virtual machines when using VirtualBox.
VirtualBox has a licensing model that supports both personal use for free and business/enterprise use at a cost. Oracle’s licensing pages have more information.
As mentioned earlier, details here are largely based on a Windows environment. Similar solutions exist on other computing environments, often from the same companies mentioned here. Even on Windows, you are not limited to running just a Windows virtual machine. In fact that is one of the benefits of using virtualization technology.
Virtual machines can be a handy enhancement to a computing environment. There is a bit of learning, especially for the first machine you create and use. Once you’ve crossed that knowledge bridge, creating multiple machines becomes largely as easy as repeating what has been successful in the past.