# ♿ A11y
## What is it?
### ADA Compliance (American Disabiliy Act)
- The goal is to protect the civil rights of individuals with physical or mental impairments by way of reducing the accessibility barriers to public services (in this scenario, the web)
### WCAG (Web Content Accessibility Guidelines)
https://www.w3.org/TR/WCAG20/
### Who am I helping?
People who are...
- Blind or visually impaired
- Colorblindness
- Sensitive to movement
- Sensitive to sound volume
## What is it not?
- It is not a something you turn on with switch
- It is not a feature
- It is not a clean up task
## What can I do?
- Experiment with your OS's built-in screen reader `Cmd+F5`
- Get familiar with the browser's accessiblity tab in dev tools `Cmd+Opt+i`
- Text casing matters. All-caps should only be used for domain acronyms.
- Be mindful of your content's tab order
- For latin based languages, does it flow left->right, top->bottom?
- If you can tab to it, it should have an `aria-label`
- If your element needs has a click handler it should be a `button` element
- If you are changing the page's context, use an anchor (`a`) tag
- Leverage tooling to highlight trouble when it happens
- [Eslint + A11y plugin](https://github.com/evcohen/eslint-plugin-jsx-a11y)
- [Lighthouse](https://developers.google.com/web/tools/lighthouse) (Chrome)
- [Axe](https://www.deque.com/axe) (Deque Systems)
- [react-axe](https://github.com/dequelabs/react-axe)