Instructor: Erin Doyle
Thank you for signing up for the workshop on Building Accessible Web Apps with React! Please read through this entire document and follow the steps to get set up. Please complete each step before the workshop starts to ensure that you are ready to go from the start!
The slides from the workshop are available here.
Please follow the steps to get your machine set up before Friday Sept 7th to ensure that you're ready to code from the start.
A laptop is required to attend this workshop. It's suggested that you also bring a pair of headphones for listening to the screen reader that we'll be using frequently for testing.
Please ensure that your machine has the following core tools installed:
- Git
- Node.js v8.0 or higher
- NVM is the easiest way to manage Node. Its setup instructions
here. Then run
nvm install node && nvm alias default node
, which installs the latest version of Node.js and sets up your terminal so you can run it by typingnode
. With nvm you can install multiple versions of Node.js and easily switch between them. - New to npm?
- NVM is the easiest way to manage Node. Its setup instructions
here. Then run
- An editor of your choice that you are comfortable using
When you've verified that your machine has the above requirements, install the following tools:
- aXe browser plugin:
- tota11y browser plugin:
- High Contrast Mode:
- Mac - High Contrast browser plugin:
- Windows - High Contrast Mode:
- See here for how to enable: https://support.microsoft.com/en-us/help/13862/windows-use-high-contrast-mode
- Screen Reader:
- Mac - VoiceOver:
- See here for how to use and familiarize yourself with: https://help.apple.com/voiceover/info/guide/10.11/
- Windows - NVDA:
- Download: https://www.nvaccess.org/download/
- See here for how to use and familiarize yourself with: https://www.nvaccess.org/files/nvda/documentation/userGuide.html?
- Mac - VoiceOver:
If you are using a Mac and would like to also be able to test Windows-only based tools such as the NVDA screen reader, High Contrast Mode, and IE or Edge browsers then you can do so by setting up a Windows Virtual Machine on your Mac. See here for step by step instructions: How to Set Up a Windows VM
Other optional tools:
- NoCoffee browser plugin:
- WCAG Luminosity Contrast Ratio Analyzer browser plugin:
Note that different browsers may have different keyboard control options available. Most modern browsers support pressing Tab to move forward or Shift + Tab to move backwards through the focusable elements, but some browsers have their own idiosyncracies:
Safari doesn't allow you to tab through links by default; to enable this, you need to:
- open Safari's Preferences
- go to Advanced
- check the Press Tab to highlight each item on a webpage checkbox
Firefox for the Mac doesn't do tabbing by default. To turn it on, you have to:
- go to Preferences > Advanced > General
- then uncheck "Always use the cursor keys to navigate within pages"
- Next, you have to open your Mac's System Preferences app
- then go to Keyboard > Shortcuts
- then select the All Controls radio button
- Clone this project
- Install dependencies by entering
npm install
- Run by entering:
npm run start
- Open
http://localhost:3000
in a browser
NOTE: the HEAD revision of the master branch contains the fully completed workshop source. We will be checking out various revision tags to step through the evolution of improving this code with the first being completely inaccessible and ending with a version that has all accessibility findings resolved.
Please review the following materials to help you better prepare for the workshop:
Here are some short videos that may be helpful to watch that we probably won't have time to watch during the workshop and will help us hit the ground running:
For the workshop you'll need to be able to check out specific tag revisions using git. Please familiarize yourself with how to do this.
- Git Basics Tagging See section "Checking out Tags".
If you're not familiar with ES6, you'll want to start here. Read one or both.
- ES6 Interactive Guide
- ES6 Guide. Only sections 1-5 recommended.
If you're not comfortable with React, you should read through the following resources: