WCAG for humans

The Web Content Accessibility Guidelines (WCAG) summarised on one page in 7 themes.

WCAG is the main international minimum standard making websites work for disabled people. This is my handwritten interpretation of version 2.2 level AA - the latest version and most commonly used level.

This is only a summary of WCAG, not a replacement, to give you a broad idea of what it involves. You will still need to read the finer detail when doing any accessibility work. More about WCAG.


7 themes (colourful stripes)

This guide groups WCAG by 7 practical themes instead of the traditional structure of Perceivable, Operable, Understandable and Robust (POUR). Overall, it covers 55 success criteria — testable things to ensure you pass WCAG.

To meet WCAG 2.2 AA, websites need to:

  1. work predictably with a keyboard
  2. have readable text, including when you zoom in (zoom and legibility)
  3. not rely on particular senses or disrupt you (sensory)
  4. work with assistive technology (such as screen readers and voice control) by having accessible code and labels
  5. make forms usable
  6. not rely on gestures or precise movement
  7. work coherently across a whole site

This guide uses the term "website". However, the same comments largely apply to documents and to mobile apps too.

The following themes are the same as the WCAG map but each success criterion only appears in one section, to keep this page simple.

How success criteria map to this guide

If you already know which success criterion you're interested in, here's how it maps to this guide.

Success criterion Theme Requirement
1.1.1 Non-text content (A) Sensory Images need text alternatives
1.2.1 Audio/video only (A) Sensory Audio and video need alternatives
1.2.2 Captions (prerecorded) (A) Sensory Audio and video need alternatives
1.2.3 Audio description or media alternative (A) Sensory Audio and video need alternatives
1.2.4 Captions (live) (AA) Sensory Audio and video need alternatives
1.2.5 Audio description (AA) Sensory Audio and video need alternatives
1.3.1 Info and relationships (A) Code and labels Code must reflect how structured content looks
1.3.2 Meaningful sequence (A) Code and labels Code must reflect how structured content looks
1.3.3 Sensory characteristics (A) Forms Forms must be easy to complete
1.3.4 Orientation (AA) Gestures Content must work in portrait and landscape
1.3.5 Identify input purpose (AA) Forms Forms must be easy to complete
1.4.1 Use of colour (A) Sensory Information must not rely on colour
1.4.2 Audio control (A) Sensory Content must not disrupt you
1.4.3 Contrast (AA) Sensory Things need enough contrast
1.4.4 Resize text (AA) Zoom and legibility Content must be readable at different zoom levels
1.4.5 Images of text (AA) Sensory Images need text alternatives
1.4.10 Reflow (AA) Zoom and legibility Content must be readable at different zoom levels
1.4.11 Non-text contrast (AA) Sensory Things need enough contrast
1.4.12 Text spacing (AA) Zoom and legibility Content must be readable at different zoom levels
1.4.13 Content on hover or focus (AA) Gestures Hover and focus content must be usable
2.1.1 Keyboard (A) Keyboard Functionality must work with a keyboard
2.1.2 No keyboard trap (A) Keyboard Keyboard focus must be able to move through the page
2.2.1 Timing adjustable (A) Forms Forms must be easy to complete
2.2.2 Pause, stop, hide (A) Sensory Content must not disrupt you
2.3.1 Three flashes or below threshold (A) Sensory Content must not disrupt you
2.4.1 Bypass blocks (A) Keyboard Keyboard focus must be able to move through the page
2.4.2 Page titled (A) Whole site It must be easy to find your way around a site
2.4.3 Focus order (A) Keyboard Keyboard focus must be visible and logical
2.4.4 Link purpose (A) Code and labels Things need appropriate labels
2.4.5 Multiple ways (AA) Whole site It must be easy to find your way around a site
2.4.6 Headings and labels (AA) Code and labels Things need appropriate labels
2.4.7 Focus visible (AA) Keyboard Keyboard focus must be visible and logical
2.4.11 Focus not obscured (AA) Keyboard Keyboard focus must be visible and logical
2.5.1 Pointer gestures (A) Gestures Functionality must not rely on gestures
2.5.2 Pointer cancellation (A) Gestures Pointer mistakes must be prevented
2.5.3 Label in name (A) Code and labels Things need appropriate labels
2.5.4 Motion actuation (A) Gestures Functionality must not rely on gestures
2.5.7 Dragging movements (AA) Gestures Functionality must not rely on gestures
2.5.8 Target size (AA) Gestures Pointer mistakes must be prevented
3.1.1 Language of page (A) Code and labels Languages must be specified in code
3.1.2 Language of parts (AA) Code and labels Languages must be specified in code
3.2.1 On focus (A) Keyboard Focus must work predictably on focus or input
3.2.2 On input (A) Keyboard Focus must work predictably on focus or input
3.2.3 Consistent navigation (AA) Whole site Things must be consistent across pages
3.2.4 Consistent identification (AA) Whole site Things must be consistent across pages
3.2.6 Consistent help (A) Whole site Things must be consistent across pages
3.3.1 Error identification (A) Forms Forms must help you avoid errors
3.3.2 Labels or instructions (A) Forms Forms must be easy to complete
3.3.3 Error suggestion (AA) Forms Forms must help you avoid errors
3.3.4 Error prevention (AA) Forms Forms must help you avoid errors
3.3.7 Redundant entry (A) Forms Forms must be easy to complete
3.3.8 Accessible authentication (AA) Forms Logging in must not require a test
4.1.2 Name, role, value (A) Code and labels Information on interactive things must be available in code
4.1.3 Status messages (AA) Code and labels Information on interactive things must be available in code

1. Keyboard

Not everyone can use a mouse or touchscreen, so websites must work with a keyboard. This also benefits people who use screen readers and voice control software.

Functionality must work with a keyboard

Common controls are:

Keyboard issues often occur when developers use custom components instead of standard HTML (Hypertext Markup Language).

References for keyboard working

Keyboard focus must be visible and logical

When you navigate using a keyboard, interactive elements must show a visible indicator to show you where the focus currently is.

The order that things receive keyboard focus must be meaningful and usable.

Focused components must not be hidden by other objects.

References for Keyboard focus

Keyboard focus must be able to move through the page

Keyboard focus must never get trapped in part of a page. While it's fine to limit focus to a currently highlighted section like a cookie banner, there must be a way to exit that section using the keyboard.

Where there are repeated menus, there must be an easy way to skip past them, like a "skip to main content" link.

References for Focus not stuck

Focus must work predictably on focus or input

Keyboard focus must stay where you expect it to when you focus on a form field, or update an interactive element like a checkbox.

References for On focus or input

2. Zoom and legibility

Content must be readable at different zoom levels

Text must be readable at 200% zoom, to help people who need to read larger text.

Content and functionality must also work on a small screen (320 pixels wide), without requiring you to scroll side by side, unless the layout is essential.

Text must also be readable when spaced out to a reasonable level.

References for Readable content

3. Sensory

Things need enough contrast

Text, interactive components and graphics all need to have enough contrast against their surroundings to make them easy to see.

Contrast is measured using a ratio and there's a contrast checker on this site. To meet level AA:

References for Contrast

Information must not rely on colour

Colour must not be the only way to convey or distinguish information.

References for Colour

Images need text alternatives

Meaningful images (or anything else that isn't text) must be described in text for people who cannot see them. In HTML, this is commonly done using the alt attribute on an image img element.

Images that are purely decorative need to be marked as such, for example with alt="".

Important text should not be visually embedded within images as it can be difficult for some people to see. If images do include text, the same text must be available nearby as text rather than in an image.

References for Text Alternatives

Audio and video need alternatives

Audio and video need to work for d/Deaf and blind people, or people with a visual or hearing impairment. In particular, when pre-recorded:

Some extra points:

References for Media

Content must not disrupt you

In particular:

References for Disruptive content

4. Code and labels

People who use assistive technology, such as screen readers or voice control software, need content to use appropriate code and accessible names (which are read to assistive technologies).

Code must reflect how structured content looks

Common examples:

This can usually be achieved by using HTML correctly. Where HTML alone cannot communicate structure, additional code called ARIA (Accessible Rich Internet Applications) may be used to complete any information given to assistive technology users.

The page must also be readable in a logical order to everyone including screen reader users.

References for Consistent code

Information on interactive things must be available in code

An interactive component must include the following information in its code so that it can be conveyed to assistive technology users:

This is easiest to achieve by using HTML correctly.

Also, whenever a status update appears dynamically on a page (like an error message or the number of search results available), that update must be read out "live" to screen reader users.

References for Interactive info

Things need appropriate labels

A link's purpose needs to be clear either from its text alone or its immediate context.

All headings and labels need to be descriptive.

Whenever there's a visible text label (for example "Search"), that must be part of the component's accessible name that's used by assistive technologies. For example, a speech recognition user might say "Click Search".

References for Labels

Languages must be specified in code

The language of the text - for example English - must be specified in the code. If there's a section of text in different language, the change must also be marked.

References for Languages

5. Forms

Forms must be easy to complete

Forms must have labels or instructions to help you complete them.

To make it easier to fill in forms:

References for Easy forms

Forms must help you avoid errors

When filling in a form and an error is generated, it must be clear where the error lies. The error must also be described in text, and suggestions on how to fix it must be provided whenever possible.

When submitting a form related to legal, financial or other important data, there must be a way to either reverse the submission, automatically check it for errors, or invite you to check the data before you submit it.

References for Error handling

Logging in must not require a test

When logging in, you must not have to rely on memorising a passcode, or any kind of test like solving a puzzle. It's OK if the field where a passcode allows text to be pasted into it, or if there's an accessible alternative.

References for Login

6. Gestures

Functionality must not rely on gestures

Functionality must not require you to:

"Pointer" means input from a device such as a mouse, touchscreen or stylus.

It's fine to have this functionality as long as there's an accessible alternative.

References for Relying on gestures

Pointer mistakes must be prevented

For clickable things such as links and buttons, to avoid errors:

References for Pointer mistakes

Hover and focus content must be usable

When extra content becomes visible on hover or keyboard focus, it must be there as long as you need it, including when you hover over it. You must also be able to dismiss overlapping content without moving the hover or focus.

References for Hover and focus

Content must work in portrait and landscape

On a mobile device, the content must work in both portrait and landscape orientations.

References for Portrait and landscape

7. Whole site

It must be easy to find your way around a site

Pages must have descriptive titles (this is the text that appears in the browser tab, which comes from the HTML title element). They should also usually be different for every page.

There must be more than one way to get to anything that's not part of a process - like a navigation menu, search or a sitemap.

References for Wayfinding

Things must be consistent across pages

The following things need to be the same between pages:

References for Consistency

More about WCAG

WCAG structure

WCAG is grouped into four principles:

  1. Perceivable — people need to know that content or functionality is there
  2. Operable — people need to be able to use things
  3. Understandable — things need to be easy to understand
  4. Robust — things need to be compatible with different technology

A principle like 2. Operable has guidelines within it, such as 2.4 Navigable. Within those, there are success criteria such as 2.4.7 Focus visible. However, criteria that are closely related in practice can sometimes appear under different guidelines.

This guide uses an alternative approach, grouping by practical theme (such as Keyboard), then requirements (such as Keyboard focus must be visible and logical), then the same success criteria (such as 2.4.7 Focus visible).

To understand each success criterion in more detail, go to the official Understanding documents or read one of the other explainers below.

WCAG levels (A, AA, AAA)

Every WCAG criterion has a level: A, AA or AAA:

To pass at any level, you also need to pass the ones before it. For example, a level AA pass includes all level A and AA criteria.

The legal standard in many countries is to pass at level AA, and most accessible websites aim for this as a minimum.


Other guides

My work

The WCAG 2.2 map illustrates the 7 themes as a transport map.

Web content accessibility guidelines map resembling an underground train map. Follow the link for more detail.

If you're testing, the WCAG decision tree follows a similar structure to help you check against every criterion.

Other WCAG explainers

There are plenty of other WCAG explainers out there which approach WCAG from different angles (some of which I've contributed to). The official summary is WCAG 2 at a glance.

Guides from the UK Government:

Other interpretations:


About this guide

This project was inspired by Martin Underhill's WCAG, but in language I understand. However, I wanted to group WCAG by theme rather than numerically.

It's intentionally simple and does not replace WCAG – I believe that it's fine (possibly even good) to skip some of the finer details of WCAG if it helps more people understand the core intent behind it.

The themes in this guide are not official but they have been used elsewhere, including the card deck and WCAG in Plain English mentioned above.

Feedback is welcome via the contact details at the end of this page.

Thanks

Many thanks to Martin Glancy for reading an initial draft.

Also thank you to Adrian Roselli and Eric Eggert for the constructive suggestions.


Licence

Thanks for visiting! This work is licensed under Creative Commons: CC BY-NC 4.0CC logoattribution icon - personnon-commercial icon - dollar sign crossed out

I'm happy for anyone to use or adapt this guide but please: