As more and more services necessary to living life go online, it becomes imperative to ensure that everyone—regardless of ability or circumstance—can use the websites that host them.
Due to how software is typically built, accessibility testing usually isn’t performed thoroughly enough to ensure full compliance. To remedy this, we need to test our work using the same assistive technology the individuals who rely on it everyday use.
Compliance work is all about removing the obstacles that keep people from doing the things they want or need to do. In this post, I’m going to knock down one of the barriers that prevents many developers from doing thorough accessibility testing: not having access to a proper setup.
Too long; didn’t read
- Many developers don’t do thorough accessibility testing because it’s difficult to get a Windows machine to test on.
- Services like BrowserStack are insufficient because they do not let you install specialized accessibility software.
- Amazon allows you to create powerful virtual computers in the cloud that are easy to access, but difficult to initially set up.
- I have documented the steps you need to set up your very own virtual computer for accessibility testing.
- A gift to help you on your way!
A lot of modern web development is done on Mac laptops. Their Unix-based Operating System (OS) makes it easy to use many current development tools. It’s been enough of a success that Windows has offered a comparable experience in an effort to win people back.
However, in the world of accessibility development, Windows remains king. While macOS’ VoiceOver is a powerful and easy-to-use screen reader, the lion’s share of assistive software exists on Windows. This includes two of the most popular screen readers on the market—JAWS and NVDA—as well as aViewer, the Paciello Group’s specialized tool for exposing accessibility API information. Considering this, it makes sense to go where the attention is.
While many design and development operations allow their employees a greater degree of latitude for the programs they are allowed to install and run, they tend to purchase their hardware in bulk. Ordering a computer that runs Windows typically means extra expense and hassle to set up and maintain, meaning it is a request that is not commonly granted.
Unfortunately, another barrier to using Windows is convenience. Simply (and somewhat ironically) put, many designers and developers find the three ways of accessing Windows from a non-Windows device to be cumbersome.
1. A second computer
The most low tech of the approaches involves getting another computer that runs Windows and plunking it down next to your main computer.
In addition to the purchasing problem outlined earlier, there’s a very real hurdle to consider: developers are a notoriously lazy bunch. Moving between two computers is a physical and mental chore. It is also a hassle to make two different OSes talk to each other—even trivial tasks like moving and copying files becomes tedious.
2. Dual booting
Provided a computer has enough hard drive space and horsepower, it can have multiple OSes installed on it. This allows a person to shut down or suspend one operating system (say macOS) and launch another (Windows).
The problem with this technique is that it takes time to swap OSes, and sometimes the active OS cannot talk to the suspended ones. Coordinating information between sessions becomes a task not unlike conducting a conversation with a snail mail pen pal.
3. A local virtual machine
A virtual machine (VM) is a computer within a computer. They recreate the properties of a real computer via software that is programmed to act as hardware. With the proper setup, this allows a person to access one OS—including programs such as word processing, email, and web browsers—from a window in another OS in real-time. This includes nifty features such as a shared clipboard and being able to drag and drop files from the “real” desktop to the virtual one.
Is that the Inception horn I hear blasting in the background?
Simulating one computer within another puts significant strain on the host machine. It takes a lot of resources—only more powerful, higher-end computers are capable of doing it. Even for beefy setups, the strain can slow down both experiences, as it is effectively running two computers and all their programs in tandem.
Most design and development programs require a good deal of resources to operate, putting even further strain on a system running a VM. All too often this makes working on a computer running a Windows VM slow to the point where it is unviable.
At this point you may be wondering if services such as BrowserStack are sufficient enough to perform accessibility testing. In short, no. BrowserStack does not allow you to install software such as screen readers and specialized browser extensions. It also does not let you use OS-level features like Narrator and High Contrast Mode. Because of this you cannot perform your due diligence for a thorough audit.
So what’s to be done?
Amazon has an entire branch of their business dedicated to internet-related services, cleverly called Amazon Web Services (AWS). If you weren’t already aware, a concerning amount of the internet’s infrastructure uses their offerings—you might know it as the cloud.
Much like their virtual storefront that sells physical goods at volume, operating at a global scale enables Amazon to offer cheap access to remotely-hosted computing power. Their web services are split into a dizzying array of options, many of which use industry jargon that makes it difficult for the layperson to ascertain what it actually does.
One service they offer is called WorkSpaces. It allows you to create and host a VM using their servers. With proper configuration, an Amazon WorkSpace gives you a setup similar to a locally-hosted VM, but with one big difference: it consumes far fewer local system resources. When a VM is remotely hosted, it can have more processing power without slowing your local computer down. For the host computer, it is roughly as taxing as participating in a Google Hangout or watching Netflix.
This makes having access to a computer that runs Windows cheap and easy. So long as you have a fast, dedicated internet connection, you can use this magic portal to install and configure all the specialized Windows software you need, and run it at a usable speed!
How to do it
AWS‘ user experience is hostile at the best of times, but in blundering through the process on my own I’ve managed to blaze a trail. Following is a step-by-step guide on how to set up your very own Windows 10 WorkSpace for accessibility testing.
Before you go
- It’s best to play it safe and write down everything you configure in case you ever need a reference. While the layout in the following screenshots are liable to change, the kinds of information AWS will ask for probably will not.
- AWS is notorious for gleefully charging you in full for exactly what you ask for, even if the cost jumps by a factor of a few zeros in a short amount of time. However, individual WorkSpaces don’t cost much to run. The total for getting mine installed with all the relevant browsers and software came out to a whopping 5¢. For peace of mind’s sake, you can set up a warning threshold if costs exceed a defined amount via the Budget feature of their Billing service. I have mine set to a conservative fifty dollars.
- Some steps also require a little waiting for your request to be built, so be sure to have some time set aside before you begin. If you’d like some music to help pass the time I think this playlist could do the trick.
1. Sign In
If you don’t have an AWS account already, sign up for one. Use an email address you have reliable access to, as AWS will use it to send you the information necessary to launch your WorkSpace.
2. Set your location to US East
The second to last menu item in the header menu bar allows you to specify the location of your servers. At the time of writing this, WorkSpaces only works in a US East location.
3. Navigate to the WorkSpaces page
Using either the header menu bar or AWS services search bar, locate the WorkSpaces landing page. With a new account it might prompt you to start a setup wizard—when I used it, it didn’t work. Your results may vary.
AWS navigation has a nifty feature where you can pin a service landing page to the header menu for quick access. I recommend doing it for WorkSpaces.
4. Choose a Directory type
Before you set up a VM, you’ll need to set up users to add to it. To do this, they need a Directory to live in. You can do this by creating an AWS Directory. They function much like Microsoft Active Directory. For our purposes, a Simple AD should be sufficient.
5. Set up your Directory, review, and save
You will need to provide information for two sections to get a Directory going: Directory Details and VPC Details. Again, it is probably in your best interest to write the information you provide for these fields elsewhere—I store mine in a cloud-synced secure note.
The Directory Details information is fairly self-explanatory, and I trust that whatever is default in the VPC Details section is probably in my best interests, so I let it be.
After submitting this form, be sure to take a moment and check the following review page and verify there are no pesky typos. It will take a few minutes for the Directory’s status to become Active once saved.
6. Register your Directory
Registering your directory tells AWS that you want it to be used for WorkSpaces. After checking the directory you set up (which questionably uses a filled blue square instead of a checkmark), select the “Register” option from the “Actions” drop-down menu.
A modal prompt will ask you if you want to associate your Directory with Amazon WorkDocs, an AWS service that allows you to back up and sync documents much like how Dropbox does.
While you will incur extra charges for storing and using this data, it can be useful if you want to share information between your VM and the host computer. Once you have made your choice, it will take a little bit of time for the registration request to be acknowledged.
7. Create a WorkSpace
With a new account there may be a wizard step here. If not, the questionably-named “Launch WorkSpaces” will begin the VM creation process.
8. Select a WorkSpace Directory
The first step in a 5 step wizard. The Directory in the drop-down in the Select a Directory section should default to the one you created in Step 5. If not, select it and proceed to the next step.
9. Create a User
Much as how your physical computer can support multiple users, an AWS Directory supports AWS users. In this case, the user will be you. Remember to supply an email address you can actively check!
When submitting a user with the “Create Users” button, the “Username,” “First Name,” “Last Name,” and “Email” fields will clear, indicating a user has successfully been created. It’s a less-than-ideal experience.
10. Verify a user has been associated with a Directory
That disappearing user you created for yourself should show up in the WorkSpace portion of the page. Verify it is, and proceed to the next step.
11. Select your bundle
Using the “radio button that looks like a checkbox” control, select the “Standard with Windows 10,” as it is free. If you want to incorporate Microsoft Office or build a more powerful computer, you’ll have to pay.
After selection, the bundle should be associated with your Username in the “Assign WorkSpace Bundles” section. Double-check to verify, and proceed to the next step.
12. Configure your WorkSpace
You’ll want to enable AutoStop, which will automatically depower the VM if there hasn’t been any activity for a specified amount of time. If you’re as absent-minded as I am, this will save you from having to pay for the time you don’t use if you forget to disconnect after you’re done.
Encryption will add additional protection—good to have if you are working with sensitive information. Tags will help you locate this WorkSpace by providing additional metadata, such as your department name.
13. Review and launch
Verify one last time that all the information looks accurate, then hit that “Launch WorkSpaces” button!
It will take you back to the WorkSpaces subsection with a message that it may take up to twenty minutes for your WorkSpace to be ready.
14. Check your email
When everything is ready, Amazon will send you an email with instructions on how to access your brand new WorkSpace. It includes a unique link to download a specially-prepared installer that will connect you to your VM, as well as a registration code to log in. You’ll want to save this information for later.
15. Install your app
After your installer has downloaded, run it as you would any other app installer.
In the login screen, first, provide the code emailed to you in Step 14. Then provide the username you set in Step 9, then use the code for the password. Signing in might take a bit, but it’s worth the wait!
16. Set up your VM
Much like as you would any other Windows computer, you can now install and run programs to your heart’s content!
If you are looking for some guidance on what kinds of things you should be installing, I maintain a list on GitHub.
In addition to the aforementioned cost and connection issues, there are a few other potential factors to be aware of:
Unless you’re willing to spend a lot of time reading through inscrutable, jargon-laden help forums, shell out for a consultant, or purchase access to Amazon’s specialized support tier, you’re effectively on your own. That means for everything surrounding actually using the WorkSpace VM, tread very carefully.
I’m not an expert in cloud-based software management by any means. The steps outlined in this post were figured out through trial and error, as well as harassing some friends who are smarter than me. Sorry, folks.
While you can set your location to US East, the further you physically are from that location the larger your latency will get. This translates to a reduction in responsiveness from the VM, so it becomes that much more important to possess a fast, dedicated internet connection. Hotel, airport, rural, and conference internet may not be sufficient.
Unfortunately, the catchphrase, “The seats are free, but you’ll only use the edge!” isn’t applicable here. The Windows 10 VM won’t allow you to install Microsoft Edge, instead providing a copy of Internet Explorer 11—I’m guessing this is for some obscure licensing reason.
Edge has some nice concessions for accessibility, but keep in mind that you should be testing with the browsers that best interface with screen reader technology first.
Bye-bye, excuses. Hello accessible web!
With a little upfront work, it is possible to overcome what was traditionally a non-trivial obstacle to obtaining a proper accessibility testing setup.
Seeing how this is an Advent calendar, here’s a parting gift to go along with this post: I will send ten people $10 to get started. Needs-based and scope of impact will be given highest priority—contact info is in the bio. If any like-minded companies would like to match this, even better!