Testing Accessibility on Windows with VirtualBox

How I made an Accessibility DIY Kit for Windows

As a front-end developer, I like to make the projects I work on accessible. This includes testing in different kinds of screen readers, because, just like browsers, every screen reader has its quirks. As I work on a Mac, testing in VoiceOver is easy. However, how do you test screen readers for Windows?


The setup you need makes use of the virtual machines that Microsoft makes available for browser testing. As these contain full versions of Windows, you can install any compatible software on them, as well as configure the OS to your liking. I installed two screen readers on this virtual machine, and turned on High Contrast mode. This is a simple ‘productivity hack’ to be able to get more reliable results from my accessibility tests.

This is what it looks like:

How to build your own Accessibility DIY Kit

Download a virtual machine from Microsoft. I recommend IE on Win81, as not everybody uses the most up-to-date version of accessibility software and operating systems. Install the virtual machine in your virtualisation software of choice. I use VirtualBox.

Screen readers

After starting up the virtual machine, we are going to install some software.

  • First, download and install NVDA, a free open source screen reader. In the installation prompt, click the button ‘Install NVDA on this computer’. In the next prompt, deselect ‘Use NVDA on the Windows logon screen’.
  • Next, download and install JAWS. JAWS is commercial software, but offers a 40-minute trial mode in which you can use the full application. After installation, check ‘Do not show this dialog again’ and press the button ‘Continue to Run in 40 Minute Mode’.
  • Finally, download and install Firefox. Most screen readers work best with a specific browser. JAWS works best with Internet Explorer, and NVDA works best with Firefox.

Keyboard configuration

JAWS uses the INS (Insert) key for some functionality. Since my MacBook doesn’t have an Insert key, we have to map another key to it:

  • Download and install SharpKeys. Once it loads, map the Insert key (left column) to another key (right column). I chose the right Cmd key, as this key is not used in Windows for any important actions. Click on the button ‘Write to Registry’. Restart the virtual machine, and your new key mapping should work.
Map the right Cmd key (Special: Right Windows) to the INS key (Special: Insert)
  • For NVDA, you should tick the option ‘Use Caps Lock as an NVDA modifier key’ in the start screen. This way you can use NVDA with your laptop keyboard.

Hight contrast mode

Next, we are going to set up high contrast mode.

  • Click the Windows Start button, then select 'Settings' (the gear icon) → 'Ease of Acces' → 'High contrast'.
  • Choose the 'High Contrast Black' theme. Click on ‘Apply’.

As Firefox doesn’t completely take over the hyperlink colours like Internet Explorer in high contrast mode, we have to make those more visible.

  • Open Firefox, and go to 'Options'.
  • Under 'Fonts and Colors', click ‘Colors…’.
  • Pick yellow for 'Unvisited Links' and green for 'Visited links' to use the same colours as in IE.
Alter the colours for high contrast mode in Firefox

VirtualBox snapshot

Finally, we want to make sure we can keep using this setup since Microsoft’s virtual machines can only be used for a maximum of 90 days.

  • In the navigation bar of VirtualBox, click 'Machine' → 'Take Snapshot…'.
  • Give your snapshot a name and click 'OK'. When powering off the machine, always make sure you select the checkbox ‘Restore current snapshot’.
Always tick 'Restore current snapshot' when closing the virtual machine

How to use a screen reader

The manual for JAWS and manual for NVDA are available on their websites. WebAIM has nice quick start guides for both JAWS and NVDA. Additionally, Rob Dodson gives an excellent introduction to using NVDA in his A11ycasts series on YouTube. Happy testing!

You might also like

← All blog posts

Also in love with the web?

For us, that’s about technology and user experience. Fast, available for all, enjoyable to use. And fun to build. This is how our team bands together, adhering to the same values, to make sure we achieve a solid result for clients both large and small. Does that fit you?

Join our team