Home

Awesome

Web Accessibility (a11y) Course Notes

Just one of the things I'm learning. https://github.com/hchiam/learning

These are my notes for Google's Udacity course: https://classroom.udacity.com/courses/ud891 (and its companion GitHub repo), plus other some helpful supplemental resources/notes I found.

For other notes, I also have a repo hchiam/learning-a11y with a URL that's easier to type and remember.

Key things I personally focus on most:

  1. Use WAVE or some other automated a11y checker, like axe DevTools for Firefox or lighthouse or axe DevTools for Chrome.
  2. Use VSCode extension axe-linter
  3. Use a screen reader.
  4. Tab. Shift+Tab. Enter. (And screen reader + arrow keys.)

Click the following to expand:

<details> <summary>Resources</summary>

Automated Testing

WebAIM's WAVE browser extension:

aXe Chrome Extension or Node module with 0 false positives:

Integrate Lighthouse into your CI (e.g. GitHub Travis CI):

Web Accessibility VSCode Extension (live coded linter)

https://marketplace.visualstudio.com/items?itemName=MaxvanderSchee.web-accessibility

Short WCAG checklist (A, AA, AAA)

https://www.a11yproject.com/checklist

Practical Solutions, Considerations, Pattern Library

After (or before!) you find a11y problems via the automated tools and UX testing, here are ways to fix them:

https://inclusive-components.design

WebAIM's WCAG 2 Checklist

https://webaim.org/standards/wcag/checklist

Chrome Web Server

https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb

NoCoffee (to Simulate Vision Deficiencies)

https://chrome.google.com/webstore/detail/nocoffee/jjeeggmbnhckmgdhmgdckeigabjfbddl

High Contrast (check if content still visible)

https://chrome.google.com/webstore/detail/high-contrast/djcfdncoelnlbldjfhinnjlhdjlikmph

ARIA design patterns and links to live examples

https://www.w3.org/TR/wai-aria-practices-1.1/#aria_ex

VisBug

(Hover items to see contrast levels, or move items around like an artboard.)

https://chrome.google.com/webstore/detail/visbug/cdockenadnadldjbbgcallicgledbeoc

</details> <details> <summary>Motivation</summary>

Design for everyone. Making your website accessible helps everyone. Disability is more broad than what you might typically think of as disability: aging, temporary disability, and situational disability even for healthy individuals. Different devices and different situations (e.g. outdoors screen with low contrast). This goes beyond permanent disability and can affect everyone.

Aside: I found an article on Medium.com that gives more examples and another one.

You don't have to choose between a delightful website and checking some "accessibility checkbox".

Tip: Start with the most frequently-used pieces of UI.

A11y = make sure all of your users can use your content.

Good a11y -> good UX. (Example: clearing out clutter in UI helps screen readers get to content, but also improves the UI for everyone in general. Good contrast helps for low-contrast projectors and outdoor displays.)

My summary of https://www.w3.org/WAI/business-case/ :

</details> <details> <summary>Focus</summary> </details> <details> <summary>Semantics</summary> </details> <details> <summary>Semantics: ARIA</summary>

ARIA Relationship Attributes

Hiding/Showing Only for Accessibility Tree (AT)

Alerting the User

</details> <details> <summary>Style</summary>

Overview

Focus Styling

ARIA States Styling

Responsive UIs Styling (flexible device/zoom views)

Colour Contrast

</details> <details> <summary>P.O.U.R.</summary>

My summary:

</details> <details> <summary>Random Notes</summary> </details>