- Web accessibility quick intro
- A11y design patterns
- Accessibility basc validation checklist
- Getting started
- Testing web accessibility
- Additional resources
According to the WCAG (Web Content Accessibility Guidelines), there are four principles at the top of a11y that provide the foundation for a11y: perceivable, operable, understandable, and robust.
- Semantic markup — allows the application to be understood on a more general level rather than just details of what's being rendered.
- Keyboard accessibility — the application must still be usable when using only a keyboard.
- Visual assistance — color contrast, focus of elements and text representations of events.
Use appropriate HTML tags and ARIA roles and attributes to make the application accessible. See Design patterns below.
-
Every interactive element should be accessible via
tab
key orspace
wherever it is appropriate (lists, tabs, chips etc.). -
All modals, menus, popups should be accessible via
tab
key. -
All the forms should be completed using only a keyboard.
-
If a modal or overlay opens, keyboard focus should be trapped inside the new context until it is closed. All modals should be closed via
ESC
key.
-
The contrast ratio for text or elements and background should be at least 4.5:1.
-
The application, with resize to 200% in the browser, should be usable.
-
Every element with focus should have a visual indicator.
To make the application conform WCAG success criteria, it’s important to use semantic markup on a page.
See a list of the patterns described on ARIA (APG). See also the list of all ARIA design patterns indexed either by role or by ARIA properties and states.
-
Use semantic HTML whenever possible: headings, buttons, navigation, links, lists (
ul
,ol
,dl
), tables... -
Nest headings from
h1
downwards to show their relative importance. Don't skip heading levels. -
Use descriptive labels on controls and input fields: buttons with the icon only, links, inputs, text areas, radios, checkboxes, dropdown lists, list boxes.
-
All images should have an
alt
text. -
Use
autocomplete
for inputs where appropriate.
-
Make each screen fully keyboard navigable and operable by making sure that all screen elements that can be accessed with the mouse can be reached using the keyboard alone.
-
All actions that can be performed using a mouse can be performed using the keyboard alone.
-
All modals, menus, popups should be accessible via
tab
key. -
All the forms should be completed using only a keyboard.
-
If a modal or overlay opens, keyboard focus should be trapped inside the new context until it is closed.
-
All modals should be closed via
ESC
key.
-
Make all screen elements able to gain focus and the focus indicator clearly seen when using the keyboard alone.
-
Add error explanation close to the error, showing what is wrong and how to fix it.
-
All the required fields should be marked as required (
*
) and be pronounced asRequired
. -
Users should be able to resize the content in their web browser up to 200% without loss of meaning or function.
- Watch Accessibility Fundamentals with Rob Dodson
- Watch A11ycasts with Rob Dodson
- Read MDN on Accessibility
- Learn Web Accessibility - Udacity course
- See WAI w3c tutorials
- Read Web Content Accessibility Guidelines (WCAG) 2.1
-
The A11Y Project checklist. Check your WCAG compliance.
-
⭐️ axe DevTools - Web Accessibility Testing Chrome extension
-
⭐️ Lighthouse from Chrome devtools (uses axe under the hood)
-
Accessibility Insights for Web Chrome extension
-
WCAG Color contrast checker Chrome extension
-
Screen Reader Chrome extension
- Web Accessibility Initiative WAI — Strategies, standards, and supporting resources to help you make the Web more accessible to people with disabilities.
- WAI-ARIA (Web Accessibility Initiative — Accessible Rich Internet Applications) is a specification written by the W3C, defining a set of additional HTML attributes that can be applied to elements to provide additional semantics and improve accessibility wherever it is lacking.
- ARIA Authoring Practices Guide (APG), recommends approaches to help web application developers make widgets, navigation, and behaviors accessible using WAI-ARIA roles, states, and properties.
- WebAIM
-
Accessibility of Generated Content
::before|after → content
-
Accessibility Support. Will your code work with assistive technologies?