Accessibility
This is an accessibility checklist used by the core team when designing and developing new features. It helps us improve the experience for everyone who uses our products and ensures our high standards are met.
Generic
Run npm run build && npm run test:a11y. It runs axe-core against every component’s
docs demos and writes the report to reports/a11y/, which is the accessibility evidence of
record. CI runs the same scan with --strict, so a new violation fails the build.
Download and install Accessibility Insights for Web, then run its FastPass on the page. It runs axe-core underneath, so what you see on screen matches what CI reports.
Download and install NVDA for Windows to check off this item.
Download and install Jaws for Windows to check off this item.
macOS ships with VoiceOver which can be enabled through preferences.
Android ships with TalkBack which can be enabled by following these instructions.
High contrast mode uses a limited color palette with contrasting colors to make an interface easier to use.
Follow the instructions to change the default text size in Chrome.
Content
Accessible writing ensures your content is understandable for everyone to read. Use Readability Analyzer set to ‘8th grade level’ to check your writing.
The h1 element should be used to communicate the high-level purpose of the page or view.
Markup
Valid HTML helps to provide a consistent, expected experience across all browsers.
This helps assistive technologies, such as screen readers, to pronounce content correctly.
This helps people using assistive technologies to understand what view they are going to start navigating.
Landmarks help communicate the layout, and allow direct access to these regions.
Elements that are inherently focusable don’t require a tabindex.
The title attribute has multiple issues and should not be used.
Keyboard
Can a person navigating with a keyboard, switch, voice control, or screen reader see where they currently are?
Images
If your are using embedded SVGs, always set role=“img” and give the element a label.
Forms
Color contrast
Mobile
Ensure that touch target sizes are large enough for users to activate them.