DocumentationReference
Every check
All 41 checks, with the WCAG success criterion each one maps to, its severity, and whether a machine can settle it.
The plugin runs 41 checks: 36 on the server and 5 in the browser, on the rendered page. This table is generated from the plugin’s own rule registry, so it is the real list rather than a description of it.
The same information is in the plugin, from the coverage panel linked on the dashboard and at the foot of every findings list.
Reading the table
Severity is how much damage the fault does: Critical, Serious, Moderate, Minor.
Settled by is the honest column. Machine means a check can decide on its own and the finding is a real fault. Person means the check can spot the situation but cannot judge it, so the finding is raised for review rather than reported as a barrier. 30 of the 41 can be settled automatically; the rest need somebody to look.
Pass is where the check runs. Browser checks only happen once a page has been opened in the inspector, so a page that has only had the server pass has only had 36 of the 41 run against it.
The checks
| Check | WCAG | Severity | Settled by | Pass |
|---|---|---|---|---|
Image map region has no alt textimage-map-area-alt-missing | 1.1.1 | Critical | Machine | Server |
Alt text is a file name or a placeholderimg-alt-is-filename | 1.1.1 | Serious | Machine | Server |
Image has no alt attributeimg-alt-missing | 1.1.1 | Critical | Machine | Server |
Alt text repeats the caption or titleimg-alt-redundant | 1.1.1 | Minor | Machine | Server |
Alt text may be too long to listen toimg-alt-too-long | 1.1.1 | Minor | Person | Server |
Image button has no alt textinput-image-alt-missing | 1.1.1 | Critical | Machine | Server |
Audio needs a transcriptaudio-needs-transcript | 1.2.1 | Serious | Person | Server |
Video may have no captionsvideo-needs-captions | 1.2.2 | Serious | Person | Server |
Bold text may be standing in for a headingbold-text-as-heading | 1.3.1 | Moderate | Person | Server |
Form field has no labelform-control-label-missing | 1.3.1 | Critical | Machine | Server |
Form label is attached to the wrong thingform-label-orphaned | 1.3.1 | Moderate | Machine | Server |
Heading is emptyheading-empty | 1.3.1 | Moderate | Machine | Server |
Heading level is skippedheading-level-skipped | 1.3.1 | Moderate | Machine | Server |
Page has more than one top-level headingheading-multiple-h1 | 1.3.1 | Minor | Person | Server |
Page has no main landmarklandmark-main-missing | 1.3.1 | Moderate | Person | Server |
Page has no headingspage-has-no-headings | 1.3.1 | Serious | Machine | Server |
Table header cell is emptytable-header-empty | 1.3.1 | Moderate | Machine | Server |
Table has no header cellstable-headers-missing | 1.3.1 | Serious | Person | Server |
Text is underlined but is not a linkunderline-not-a-link | 1.3.1 | Minor | Person | Server |
Link inside text is marked only by colourlink-marked-by-colour-alone | 1.4.1 | Moderate | Machine | Browser |
Text has too little contrast with its backgroundcolour-contrast | 1.4.3 | Serious | Machine | Browser |
The page cannot be zoomedviewport-scaling-disabled | 1.4.4 | Serious | Machine | Server |
Text is justified to both marginstext-justified | 1.4.8 | Minor | Machine | Server |
Clickable link cannot be reached by keyboardlink-not-keyboard-reachable | 2.1.1 | Serious | Machine | Server |
Scrollable area cannot be reached by keyboardscrolling-region-not-reachable | 2.1.1 | Serious | Machine | Browser |
Content blinks or scrolls on its owntext-blinking | 2.2.2 | Serious | Machine | Server |
In-page link points at nothinglink-anchor-broken | 2.4.1 | Serious | Machine | Server |
Page has no titledocument-title-missing | 2.4.2 | Serious | Machine | Server |
Positive tabindex changes the focus ordertabindex-positive | 2.4.3 | Serious | Machine | Server |
Link has no accessible namelink-name-missing | 2.4.4 | Critical | Machine | Server |
Link text may not make sense on its ownlink-text-not-descriptive | 2.4.4 | Moderate | Person | Server |
Link downloads a file without saying solink-to-file | 2.4.4 | Minor | Machine | Server |
Clickable target is smaller than 24 by 24 pixelstarget-too-small | 2.5.8 | Moderate | Machine | Browser |
Page language is not sethtml-lang-missing | 3.1.1 | Serious | Machine | Server |
Text may be hard to readreading-level-high | 3.1.5 | Minor | Person | Server |
Link opens a new tab without saying solink-opens-new-window | 3.2.5 | Minor | Person | Server |
The same id is used more than onceduplicate-id | 4.1.1 | Moderate | Machine | Server |
ARIA attribute points at an element that does not existaria-reference-broken | 4.1.2 | Serious | Machine | Server |
Button has no accessible namebutton-name-missing | 4.1.2 | Critical | Machine | Server |
Frame has no titleiframe-title-missing | 4.1.2 | Serious | Machine | Server |
By success criterion
| WCAG | Checks |
|---|---|
| 1.1.1 | image-map-area-alt-missing, img-alt-is-filename, img-alt-missing, img-alt-redundant, img-alt-too-long, input-image-alt-missing |
| 1.2.1 | audio-needs-transcript |
| 1.2.2 | video-needs-captions |
| 1.3.1 | bold-text-as-heading, form-control-label-missing, form-label-orphaned, heading-empty, heading-level-skipped, heading-multiple-h1, landmark-main-missing, page-has-no-headings, table-header-empty, table-headers-missing, underline-not-a-link |
| 1.4.1 | link-marked-by-colour-alone |
| 1.4.3 | colour-contrast |
| 1.4.4 | viewport-scaling-disabled |
| 1.4.8 | text-justified |
| 2.1.1 | link-not-keyboard-reachable, scrolling-region-not-reachable |
| 2.2.2 | text-blinking |
| 2.4.1 | link-anchor-broken |
| 2.4.2 | document-title-missing |
| 2.4.3 | tabindex-positive |
| 2.4.4 | link-name-missing, link-text-not-descriptive, link-to-file |
| 2.5.8 | target-too-small |
| 3.1.1 | html-lang-missing |
| 3.1.5 | reading-level-high |
| 3.2.5 | link-opens-new-window |
| 4.1.1 | duplicate-id |
| 4.1.2 | aria-reference-broken, button-name-missing, hidden-element-still-focusable, iframe-title-missing |
What is not here
This list is what the plugin checks, not what WCAG contains. A great deal of WCAG cannot be checked by software at all: whether a heading describes the section beneath it, whether focus order makes sense, whether your alt text is accurate, whether an error message helps.
A clean report means these 41 checks found nothing. It does not mean your site is accessible. See What it cannot do.
Changing the set
wsak_rules filters the server pass, wsak_browser_rules filters the browser
pass. The browser pass additionally drops any finding naming a check outside its
published list, so it cannot report checks that were never documented here.
Last updated . Something here wrong or missing? Tell us and we will fix it.