It’s extremely useful to have a WCAG checklist to hand when you’re working through the guidelines. A WCAG checklist helps you to check your web accessibility progress, record how far you’ve come and set your targets out for the future.

Wuhcag is all about holistic web accessibility – that means taking everything about your website into account. That’s why I don’t rush you to make every web accessibility change at once – it’s too much for you to do and so it’s bad for your users. I love a structured approach to everything in life, and your website is no exception.

I’ve created a three checklists for you below, with links to articles about each guideline. You can get three free PDFs checklists when you join my free newsletter, where the Wuhcag community focuses on one guideline every week.

Get Your Free WCAG Checklists

Join over 3,700 subscribers who've used my WCAG checklists to make their projects more accessible, plus get my weekly web accessibility newsletter.

I won't share your details and you can unsubscribe any time. Powered by ConvertKit

Over 600 developers like you have learned more about the Web Content Accessibility Guidelines with my guidebook.

Learn more >

I’ve organised my WCAG checklists by level (read more about WCAG levels here). If you’re attacking the guidelines in order (and I suggest you do), you’ll move from Level A (Beginner) through Level AA (Intermediate) and on to Level AAA (Advanced).

WCAG Checklist Level A (Beginner)

1.1.1 – Non-text ContentProvide text alternatives for non-text content that serves the same purpose.
1.2.1 – Audio-only and Video-only (Pre-recorded)Provide an alternative to video-only and audio-only content.
1.2.2 – Captions (Pre-recorded)Provide captions for videos with audio.
1.2.3 – Audio Description or Media Alternative (Pre-recorded)Provide audio description or text transcript for videos with sound.
1.3.1 – Info and RelationshipsContent, structure and relationships can be programmatically determined.
1.3.2 – Meaningful SequencePresent content in a meaningful order.
1.3.3 – Sensory CharacteristicsInstructions don’t rely solely on sensory characteristics.
1.4.1 – Use of ColourDon’t use presentation that relies solely on colour.
1.4.2 – Audio ControlDon’t play audio automatically.
2.1.1 – KeyboardAll functionality is accessible by keyboard with no specific timings.
2.1.2 – No Keyboard TrapUsers can navigate to and from all content using a keyboard.
2.1.4 – Character Key ShortcutsAllow users to turn off or remap single-key character shortcuts.
2.2.1 – Timing AdjustableProvide user controls to turn off, adjust or extend time limits.
2.2.2 – Pause, Stop, HideProvide user controls to pause, stop and hide moving and auto-updating content.
2.3.1 – Three Flashes or Below ThresholdNo content flashes more than three times per second.
2.4.1 – Bypass BlocksProvide a way for users to skip repeated blocks of content.
2.4.2 – Page TitledUse helpful and clear page titles.
2.4.3 – Focus OrderComponents receive focus in a logical sequence.
2.4.4 – Link Purpose (In Context)Every link’s purpose is clear from its text or context.
2.4.7 – Focus VisibleKeyboard focus is visible when used.
2.4.13 – Page Break NavigationProvide a way to navigate between page break locators.
2.5.1 – Pointer GesturesMulti-point and path-based gestures can be operated with a single pointer.
2.5.2 – Pointer CancellationFunctions don’t complete on the down-click of a pointer.
2.5.3 – Label in NameWhere a component has a text label, the name of the component also contains the text displayed.
2.5.4 – Motion ActuationFunctions operated by motion can also be operated through an interface and responding to motion can be disabled.
3.1.1 – Language of PageEach webpage has a default human language assigned.
3.2.1 – On FocusElements do not change when they receive focus.
3.2.2 – On InputElements do not change when they receive input.
3.3.1 – Error IdentificationClearly identify input errors
3.3.2 – Labels or InstructionsLabel elements and give instructions
4.1.1 – ParsingNo major code errors
4.1.2 – Name, Role, ValueBuild all elements for accessibility

WCAG Checklist Level AA (Intermediate)

1.2.4 – Captions (Live)Add captions to live videos.
1.2.5 – Audio Description (Pre-recorded)Provide audio descriptions for pre-recorded videos.
1.3.4 – OrientationYour website adapts to portrait and landscape views.
1.3.5 – Identify Input PurposeThe purpose of input fields must be programmatically determinable.
1.4.3 – Contrast (Minimum)Contrast ratio between text and background is at least 4.5:1.
1.4.4 – Resize TextText can be resized to 200% without loss of content or function.
1.4.5 – Images of TextDon’t use images of text.
1.4.10 – ReflowContent retains meaning and function without scrolling in two dimensions.
1.4.11 – Non-Text ContrastThe contrast between user interface components, graphics and adjacent colours is at least 3:1.
1.4.12 – Text SpacingContent and function retain meaning when users change elements of text spacing.
1.4.13 – Content on Hover or FocusWhen hover or focus triggers content to appear, it is dismissible, hoverable and persistent.
2.4.5 – Multiple WaysOffer at least two ways to find pages on your website.
2.4.6 – Headings and LabelsHeadings and labels describe topic or purpose.
2.4.11 – Focus Appearance (Minimum)Focus indicators are clearly distinguishable when active.
2.5.7 – Dragging MovementsFunctionality that uses dragging movements can be achieved with a single pointer without dragging.
2.5.8 – Target Size (Minimum)The target size for pointer inputs is at least 24 by 24 CSS pixels.
3.1.2 – Language of PartsEach part of a webpage has a default human language assigned.
3.2.3 – Consistent NavigationPosition menus and standard controls consistently.
3.2.4 – Consistent IdentificationIdentify components with the same function consistently.
3.3.3 – Error SuggestionSuggest fixes when users make errors
3.3.4- Error Prevention (Legal, Financial, Data)Reduce the risk of input errors for sensitive data

WCAG Checklist Level AAA (Advanced)

1.2.6 – Sign Language (Pre-recorded)Provide sign language translations for pre-recorded videos.
1.2.7 – Extended Audio description (Pre-recorded)Provide extended audio descriptions for pre-recorded videos.
1.2.8 – Media Alternative (Pre-recorded)Provide text alternatives for pre-recorded videos.
1.2.9 – Audio Only (Live)Provide alternatives for live audio.
1.3.6 – Identify PurposeThe purpose of all components must be programmatically determinable.
1.4.6 – Contrast (Enhanced)Contrast ratio between text and background is at least 7:1.
1.4.7 – Low or No Background AudioAudio-only content is clear with no or minimal background noise.
1.4.8 – Visual PresentationOffer users a range of presentation options for blocks of text.
1.4.9 – Images of Text (No Exception)Don’t use images of text.
2.1.3 – Keyboard (No Exception)All functionality is accessible by keyboard with no exceptions.
2.2.3 – No TimingNo time limits on your website.
2.2.4 – InterruptionsUsers can postpone or supress non-emergency interruptions.
2.2.5 – Re-authenticatingSave user data when re-authenticating.
2.2.6 – TimeoutsWarn users about timeouts that cause data loss.
2.3.2 – Three FlashesNo content flashes more than three times per second.
2.3.3 – Animation from InteractionsUsers can disable motion animation.
2.4.8 – LocationLet users know where they are on your website.
2.4.9 – Link Purpose (Link Only)Every link’s purpose is clear from its text.
2.4.10 – Section HeadingsOrganise content with headings.
2.4.12 – Focus Appearance (Enhanced)Focus indicators are more clearly distinguishable when active.
2.5.5 – Target SizeThe target size for pointer inputs is at least 44 by 44 CSS pixels.
2.5.6 – Concurrent Input MechanismsNo restrictions on modes of input.
3.1.3 – Unusual WordsDefine any unusual words or phrases.
3.1.4 – AbbreviationsDefine any abbreviations.
3.1.5 – Reading LevelUsers with nine years of schooling can read your content.
3.1.6 – PronunciationDefine words where meaning is ambiguous without pronunciation. 
3.2.5 – Change on RequestElements do not change without a request.
3.3.5 – HelpProvide detailed help and instructions
3.3.6 – Error Prevention (All)Reduce the risk of all input errors

Find out more