Skip to content

Method

Severity: what counts as critical, serious, moderate or minor here

A finding on its own does not say what to do first. That is why every finding carries a severity that reflects the impact on affected users. Below is the full catalog, currently 120 checks, each with its level and the reasoning. The list is not typed by hand: it is generated from the same table we assess by. When a check is added, it appears here.

A severity is not a conformance verdict

Conformance is binary per success criterion: met or not met. A page carrying only „minor“ findings is still non-conformant for every criterion those findings violate. Severity sequences the work, it does not replace an assessment against EN 301 549.

The four levels

  • Critical

    7 checks

    The barrier stops an affected user from completing the task at all. There is no workaround on the page itself: focus is trapped, a control cannot be operated, required content is unreachable.

    Weight in the score: 10

  • Serious

    61 checks

    The task stays possible but the barrier removes a normal route to it: content or state does not reach assistive technology, an element cannot be reached the usual way, or content is lost under an adaptation the standard guarantees.

    Weight in the score: 5

  • Moderate

    50 checks

    The task can be completed, but with avoidable effort or uncertainty: information arrives in an unhelpful order, a label does not match what is spoken, an error message identifies the problem without showing the way out.

    Weight in the score: 2

  • Minor

    2 checks

    A defect that degrades quality without materially obstructing the task. It still violates its success criterion, so it still has to be fixed for conformance.

    Weight in the score: 1

The full catalog

Every row is a check that runs on every audit, with its analysis layer, the WCAG criterion it assesses and the reasoning behind its level. The spread across the levels is uneven on purpose: we build checks of our own for barriers that actually hurt, not for cosmetics. Minor findings come almost entirely from Layer 1, where we take axe-core's rating unchanged.

Critical

Checks at level Critical
What is checkedLayerCriterionWhy this level
Keyboard focus enters a region and cannot leave it with Tab or Escape.Layer 2Keyboard2.1.2No Keyboard TrapA keyboard user is stuck on the page with no way forward. Nothing else on the page can be reached afterwards, so this is the definition of blocking.
The PDF has pages but almost no extractable text: it is a picture of a document rather than a document.Layer 10Documents1.1.1Non-text ContentA screen reader finds nothing at all to read, and neither does search or copy-and-paste. Everything in the file is unavailable, which is why this is blocking rather than serious.
Content is locked to one screen orientation without an essential reason.Layer 4Adaptation1.3.4OrientationAnyone whose device is fixed in the other orientation, for example mounted on a wheelchair, cannot use the content at all: the task ends here, with nothing on the page to work around it.
A validation error is not identified in text, or is not programmatically tied to its field.Layer 6Dynamic content3.3.1Error IdentificationThe form refuses to submit and the user cannot find out which field is wrong. There is no route left to completing the purchase, the booking or the sign-up.
Something on the page flashes more than three times a second over a large enough area to cross WCAG's flash threshold.Layer 1Rules2.3.1Three Flashes or Below ThresholdFlashing at this rate and size can trigger a seizure in someone with photosensitive epilepsy. It is the one accessibility defect that can injure a visitor before they can look away.
A "Refresh" HTTP response header reloads or redirects the page automatically after a delay between 0 and 20 hours, with no author-provided exception.Layer 1Rules2.2.1Timing AdjustableConfirmed, WCAG failure F41: the reload happens on the server's clock, not the user's, and axe's meta-refresh check cannot catch it because a response header never appears in the DOM it reads.
A large element runs an endlessly repeating animation with a cycle under 340ms.Layer 1Rules2.3.1Three Flashes or Below ThresholdConfirmed, this is the one criterion whose failure is a physical safety risk rather than an access barrier, so it outranks everything else regardless of the task.

Serious

Checks at level Serious
What is checkedLayerCriterionWhy this level
Focus enters a region that Tab and Shift-Tab cannot leave. Escape does release it, but nothing on the page says so.Layer 2Keyboard2.1.2No Keyboard TrapSomeone using only a keyboard has no way to know that Escape is the way out, so they experience the region as a dead end and give up on the page.
The probe focused this control and pressed Enter, Space and both arrow keys: nothing happened. A click on the same element in the same page state did something.Layer 2Keyboard2.1.1KeyboardWhatever this control does is unavailable to anyone who does not use a mouse. The rest of the page still works, which is why this is serious rather than blocking.
An element with no role and no tabindex reacts to a click, and the keyboard cannot reach it at all: it takes no focus, so no key can be pressed on it.Layer 2Keyboard2.1.1KeyboardThe function exists only for a mouse. A keyboard or screen-reader user has no way to reach it, and nothing on the page tells them it is there.
Pressing a single character key, with no modifier, made the page do something - proven on a freshly loaded page, against an idle window and against a Shift press that did nothing.Layer 2Keyboard2.1.4Character Key ShortcutsAnyone who types with speech input, or who cannot lift a finger cleanly off a key, triggers these by accident. The page acts on characters that were never meant as commands.
The PDF carries no tag structure at all: nothing in it is marked as a heading, a list, a table or a paragraph.Layer 10Documents1.3.1Info and RelationshipsAssistive technology reads one undifferentiated run of text with no way to navigate it. The content is there and the structure that makes it usable is not.
A figure inside a tagged PDF carries neither an alternative text nor a text equivalent.Layer 10Documents1.1.1Non-text ContentWhatever the image says is missing for anyone who cannot see it, and the rest of the document still reads, which is why this is serious rather than blocking.
An interactive control is never reached by the Tab sequence, or sits under aria-hidden while still being focusable.Layer 2Keyboard2.1.1KeyboardThe control is unusable without a mouse, but the rest of the page still works, so the task often survives via another route.
Focusing a control changes almost nothing visually, so the focus position is not recognisable.Layer 2Keyboard2.4.7Focus VisibleKeyboard operation stays technically possible but blind-navigating a page you cannot see your position on is a normal route removed, not a cosmetic issue.
When focused, the control paints nothing at its own position, and it paints once the element on top of it is hidden: it is entirely covered by other page content.focused control fully coveredLayer 2Keyboard2.4.11Focus Not Obscured (Minimum)The user has focus on something invisible: the same practical effect as no focus indicator at all.
Keyboard focus lands on a control whose box never intersects the viewport: it is not visible anywhere on screen.Layer 2Keyboard2.4.3Focus OrderThe user has focus on something invisible, with no automatic scroll bringing it into view: the same practical effect as no focus indicator at all.
The password field throws a pasted value away: the page cancels the paste event and nothing arrives in the field.Layer 2Keyboard3.3.8Accessible Authentication (Minimum)Entering a password is a memory test, and the mechanism that answers it for most people is the password manager, which needs pasting. Logging in stays possible by typing, so it is a normal route removed, not a blocked page.
A keyboard user crosses a large block of repeated links before reaching the content, and nothing on the page gets past it: there is no skip link, or the one that exists jumps nowhere.Layer 2Keyboard2.4.1Bypass BlocksThe block is crossed again on every page of the site, so the cost is paid over and over rather than once. Everything stays reachable, but reaching it takes dozens of keystrokes each time.
An image's alternative text is missing or does not convey what the image contributes.Layer 3AI visual review1.1.1Non-text ContentThe information in the image does not arrive at all for anyone who cannot see it, which removes a route to the content rather than merely complicating it.
The order content is announced in diverges from the order it visually reads in.Layer 3AI visual review1.3.2Meaningful SequenceThe page is announced in a sequence that does not carry its meaning, so comprehension breaks even though every element is present.
At 320 CSS pixels the page requires scrolling in both directions to read its content.Layer 4Adaptation1.4.10ReflowOn a phone or at high zoom, reading means chasing the text sideways line by line: a normal route to the content is gone.
At 200 percent text size, content is cut off, overlaps or disappears.Layer 4Adaptation1.4.4Resize TextAnyone who needs larger text loses content outright, and enlarging is the standard adaptation the criterion guarantees.
At 320 CSS px the page does not scroll sideways, but content is cut off at the right edge instead of reflowing.Layer 4Adaptation1.4.10ReflowThe criterion asks for reflow without loss of content, and throwing the overflow away is the same loss as forcing a sideways scroll - with nothing on screen to hint that anything is missing.
Text is sized in viewport units, so page zoom shrinks the viewport and the text in the same proportion and it never appears larger.Layer 4Adaptation1.4.4Resize TextAnyone who enlarges the page to read it gets a bigger layout and the same tiny text. The one adaptation the criterion guarantees is switched off for this text, and there is nothing on the page that makes up for it.
The web app manifest pins the installed app to one screen orientation.Layer 4Adaptation1.3.4OrientationWhoever installs the site as an app is held in that one orientation, with no way around it from inside the app. It is one step below the same lock in the browser tab only because the browser tab itself still rotates.
A widget arrives in the resolved accessibility tree without an accessible name.Layer 5Accessibility tree4.1.2Name, Role, ValueA screen reader announces the control without saying what it is for, so operating it becomes guesswork.
A widget does not expose its state (expanded, checked, selected) in the tree.Layer 5Accessibility tree4.1.2Name, Role, ValueThe user cannot tell what the control currently does, so the feedback loop that makes it operable is missing.
An element is mouse-operable but reaches the tree as a generic node, or not at all.Layer 5Accessibility tree1.3.1Info and RelationshipsFor assistive technology the control does not exist: it is invisible in exactly the layer that conveys structure.
A field's only label is its placeholder text, with no label, aria-label, aria-labelledby or title.Layer 5Accessibility tree3.3.2Labels or InstructionsThe label disappears the moment the user starts typing and is not reliably exposed to assistive technology, so the field's purpose has to be remembered rather than read.
Inside an orientation media query the page rotates itself back with a quarter-turn CSS transform, so it keeps one fixed orientation.Layer 4Adaptation1.3.4OrientationSomeone whose device is mounted in a fixed position, on a wheelchair or a stand, cannot turn it to match the page, and the content stays sideways for them.
The accessible name of an element is a code identifier - no spaces, separators inside it - and appears nowhere in the page's visible text.Layer 5Accessibility tree4.1.2Name, Role, ValueA screen reader reads the string out as it stands, so a logo link announces itself as "ptk underscore hh underscore logo underscore pad" and the user learns nothing about where the link goes.
Two or more fields in the same form resolve to one identical accessible name.Layer 5Accessibility tree2.4.6Headings and LabelsA screen reader announces them identically, so nothing in what is announced says which field is which - the user has to guess which box takes which value.
A group of radio buttons or checkboxes has no accessible group name.Layer 5Accessibility tree1.3.1Info and RelationshipsEach option is announced on its own, without the question or category it answers, so the relationship a sighted user sees at a glance has to be guessed at.
A status or error message appears without live-region semantics.Layer 6Dynamic content4.1.3Status MessagesAnyone not looking at that spot never learns the result of their action, which silently breaks the flow.
A field's style changes only in colour after a failed submit attempt - no text, icon, or shape change - to indicate the validation error.Layer 6Dynamic content1.4.1Use of ColorAnyone who cannot perceive that colour change gets no signal at all that the field is wrong, and the form keeps refusing to submit.
Audio plays automatically for more than 3 seconds (or loops) and no candidate control near it paused, stopped or muted it when clicked.Layer 6Dynamic content1.4.2Audio ControlThe sound keeps playing over anything a screen reader speaks, with no way found to stop it - a barrier to using the rest of the page, not only to the clip itself.
A click demonstrably revealed content, but the trigger's own `aria-expanded` still reads "false" afterwards.Layer 6Dynamic content4.1.2Name, Role, ValueAssistive technology has no signal that anything opened at all - the control looks unchanged to it while sighted users see new content.
A click demonstrably revealed content, and the clicked element carries neither `aria-expanded` nor `aria-pressed` at all.Layer 6Dynamic content4.1.2Name, Role, ValueNothing tells assistive technology the control has a state, let alone what it changed to - the same silent gap as the stale case, just with no attribute to have gotten wrong.
Focusing an element attempted to navigate the page, open a new window, or submit a form, with nothing clicked or confirmed - reproduced on a second focus.Layer 2Keyboard3.2.1On FocusA keyboard user cannot pass over the element to reach what is behind it: the attempt to move on is what carries them away, so a normal route through the page is gone.
A focus event reached the element, and then focus fell back to the page body on its own (WCAG failure technique F55) - reproduced on a second focus.Layer 2Keyboard3.2.1On FocusThe control cannot hold keyboard focus at all: a keyboard user is dropped back to the top of the page every time they reach it, with no way to operate it.
Changing a control's value, with nothing submitted, attempted to leave the page, open a new window, or submit a form - reproduced on a second change.Layer 2Keyboard3.2.2On InputA keyboard user arrowing through a select or toggling an option is carried off the page before reaching what they meant to do, unless the behaviour was announced to them beforehand.
An embedded third-party player is present and its captions cannot be read from outside the iframe.Layer 1Rules1.2.2Captions (Prerecorded)Confirmed, it is the same barrier as a missing caption track: the spoken content does not reach a deaf user.
Prerecorded audio is present without a discoverable text alternative.audio-only content, so a transcript is the alternativeLayer 1Rules1.2.1Audio-only and Video-only (Prerecorded)The entire content of that audio is unavailable to anyone who cannot hear it, and unlike a video there is nothing else to fall back on.
An embedded third-party player is configured to autoplay with its own controls explicitly disabled in the embed URL.Layer 1Rules1.4.2Audio ControlThe provider's default pause/stop/volume control is the one mechanism a foreign iframe normally offers, and this embed turns it off - if nothing else on the page can stop the sound, it plays over everything.
A <track kind="captions"> is declared, and fetching its file directly returns an error, an empty body, or no parseable cues.the declared file 404s, is empty, or has no parseable cuesLayer 1Rules1.2.2Captions (Prerecorded)Confirmed, the file reaches no user at all - a declared track whose content cannot be read is the same barrier as no track.
A control has no border, no outline, no background of its own and no text: nothing on screen shows where it is.no boundary of any kind, and no text to identify the controlLayer 1Rules1.4.11Non-text ContrastThere is no visual information identifying the component at all, so a normal route to the control is blocked rather than merely harder.
The placeholder text shown in an empty field is too faint against its background.a field's placeholder text falls below the WCAG 1.4.3 thresholdLayer 1Rules1.4.3Contrast (Minimum)The same user-impact class as any other 1.4.3 text failure: someone with reduced vision cannot read it, and when the placeholder is the field's only visible label, they cannot tell what to enter at all.
Text an author inserted via CSS `content` is too faint against its background.text generated by ::before/::after falls below the WCAG 1.4.3 thresholdLayer 1Rules1.4.3Contrast (Minimum)Reads identically to ordinary text to a sighted user, so the same 1.4.3 threshold applies; axe produces no result at all for this text, not even `incomplete`.
A link or button's text clears the contrast minimum at rest, but the colour a mouse-hover style applies drops it below the threshold.passes at rest, drops below the WCAG 1.4.3 threshold on :hoverLayer 1Rules1.4.3Contrast (Minimum)The same user-impact class as any other 1.4.3 text failure: someone with reduced vision loses the ability to read the control at the exact moment they are pointing at it.
A link or button's text clears the contrast minimum at rest, but the colour a keyboard-focus style applies drops it below the threshold.passes at rest, drops below the WCAG 1.4.3 threshold on :focusLayer 1Rules1.4.3Contrast (Minimum)The same user-impact class as any other 1.4.3 text failure, hitting a keyboard user at the exact moment they land on the control.
The page declares one language but its text is written in another.Layer 1Rules3.1.1Language of PageA screen reader takes its voice and its pronunciation rules from that declaration, so the whole page is read out in the wrong language and can become unintelligible - a wrong declaration is worse than a missing one, because nothing signals that anything is off.
A player loads what looks like a live stream, whose captions cannot be checked from the markup.Layer 1Rules1.2.4Captions (Live)Confirmed, a live stream without captions leaves a deaf user with nothing at all for the duration of the event, and unlike a recording there is no second chance.
A page-wide key handler reacts to a single character with no modifier key.Layer 1Rules2.1.4Character Key ShortcutsConfirmed, a stray character from speech input or an assistive device fires an action the user never asked for, which can carry them out of what they were doing.
A time value visible on the page fell at roughly real time between two readings a few seconds apart - a session countdown or a checkout deadline.Layer 1Rules2.2.1Timing AdjustableConfirmed, a limit that cannot be extended ends the task for anyone who needs more time, and typically discards what they had already entered.
A time value did not visibly change between two readings, but the text beside it names a deadline or the session it ends.static at capture (minute granularity, or a pre-rendered warning), carried by a deadline/session cue in the surrounding textLayer 1Rules2.2.1Timing AdjustableThe same time-limit risk as a moving countdown - it is simply too coarse (once-a-minute) or too early (a warning that starts counting only once its dialog opens) to catch falling within an affordable reading window.
Two or more links share the same accessible name and point at different destinations, with no sentence, list item, paragraph or table cell around either that tells them apart.Layer 1Rules2.4.4Link Purpose (In Context)Confirmed, WCAG failure F63/H30: someone scanning a list of links by name alone cannot tell the two apart at all, and has no way to pick the right one other than guessing or opening each in turn.
An element handles swipe or pinch gestures, or has taken gesture handling over from the browser.Layer 1Rules2.5.1Pointer GesturesConfirmed, someone who cannot perform a path-based or multi-finger gesture has no route to that function at all.
Tilting or shaking the device (measured live, under mobile emulation) changes page content or attempts a navigation that a still control window does not.Layer 6Dynamic content2.5.4Motion ActuationIt cuts both ways: someone who cannot move the device loses the function, and someone with tremors triggers it by accident. Whether an equivalent on-screen control exists, and whether the trigger can be switched off, is left to the reviewer - the probe proves only that motion does something.
Activating a control opened a modal dialog and the focus stayed outside it (WCAG failure F85), read twice to rule out a dialog that sets its focus late.Layer 6Dynamic content2.4.3Focus OrderThe dialog is on screen but out of reach: a keyboard user has to tab through the whole page behind it, and a screen-reader user is read the page they did not ask for.
A modal dialog was closed (with Escape or its own close control) and the focus did not return to the control that opened it.Layer 6Dynamic content2.4.3Focus OrderThe user is dropped back to the start of the page and has to tab all the way to where they were - the longer the page, the bigger the loss.
Something moves, blinks or scrolls on its own for longer than five seconds, and pressing every candidate pause control did not stop it.Layer 6Dynamic content2.2.2Pause, Stop, HideMotion beside text pulls the eye away from it. For people with attention or vestibular conditions it can make a page unreadable, and blinking can trigger discomfort or worse.
A control did its job while the pointer button was still down: pressing it and then moving away before releasing did not take the effect back.Layer 6Dynamic content2.5.2Pointer CancellationSomeone who presses the wrong control by mistake - anyone with a tremor, anyone on a phone in a moving vehicle - has no way to abort. On a normal control, sliding off before releasing cancels it.
An element is operated by dragging (draggable, a custom slider, a drag handler).Layer 1Rules2.5.7Dragging MovementsConfirmed, a user who cannot hold and move a pointer along a path cannot perform the action at all; keyboard support does not substitute for it.
Changing a control's value submits a form, navigates, or opens a window with no separate action.Layer 1Rules3.2.2On InputConfirmed, a keyboard user arrowing through a select is carried off the page before reaching the option they wanted, which can make the control unusable.
A form commits the user to something financial, legal, or irreversible.Layer 1Rules3.3.4Error Prevention (Legal, Financial, Data)Confirmed, the consequence of an uncorrected mistake here is money or lost data rather than inconvenience, which is why the criterion exists at all.
A CAPTCHA challenge (reCAPTCHA, hCaptcha, or Cloudflare Turnstile) sits on the page.Layer 1Rules1.1.1Non-text ContentConfirmed, a CAPTCHA that names no purpose and offers only a visual challenge blocks the task outright for anyone who cannot see or solve that challenge.
An image's alt text is a raw filename, repeats the file's own name, or is a generic placeholder word ("image", "bild", "slika").Layer 1Rules1.1.1Non-text ContentA screen reader announces the filename or placeholder instead of a description, which is functionally the same barrier as having no alt text at all.

Moderate

Checks at level Moderate
What is checkedLayerCriterionWhy this level
The PDF declares no document language.Layer 10Documents3.1.1Language of PageA screen reader reads it with whatever voice it happens to have, so German text can arrive pronounced with English rules. Understandable with effort, wrong throughout.
The PDF has no title in its metadata, so assistive technology and the browser tab fall back to the file name.Layer 10Documents2.4.2Page TitledSomeone with several documents open has nothing to tell them apart by, unless the file name happens to describe the document - which EN 301 549 accepts and a human has to judge.
A positive tabindex overrides the natural focus order.Layer 2Keyboard2.4.3Focus OrderEverything remains reachable, the sequence is just confusing: added effort, not a blocked task.
Focus jumps sharply backwards up the page, against the visual reading order.Layer 2Keyboard2.4.3Focus OrderEverything remains reachable, the sequence is just confusing: added effort, not a blocked task.
Link text does not say where it goes, out of context.Layer 3AI visual review2.4.4Link Purpose (In Context)The target is still reachable, it just takes surrounding context to understand: friction rather than a blocked task.
A button's or heading's name does not say what it does or what the section it introduces is about, out of context.the judged element is a button or a heading, not a linkLayer 3AI visual review2.4.6Headings and LabelsThe control is still operable and the section still readable, it just takes surrounding context to understand: friction rather than a blocked task, the same reasoning as the link variant.
With the WCAG text-spacing values applied, text clips or overlaps.Layer 4Adaptation1.4.12Text SpacingReadability suffers and single passages can become unreadable, but the page usually stays operable.
Content shown on hover or focus covers other content and cannot be dismissed with Escape.Layer 4Adaptation1.4.13Content on Hover or FocusThe information is reachable but hides what was underneath it, and there is no way to get that back without moving the pointer away.
Content shown on hover disappears as soon as the pointer moves onto it.Layer 4Adaptation1.4.13Content on Hover or FocusSomeone who magnifies their screen cannot move the pointer across the gap to the popup without it vanishing first, so they can see that something appeared but never get close enough to read it.
Content shown on hover or focus hides itself on a timer while the pointer is still resting on the trigger.Layer 4Adaptation1.4.13Content on Hover or FocusThe information disappears before it can be read, with no action from the user that would explain why.
The visible label is not contained in the accessible name.Layer 5Accessibility tree2.5.3Label in NameVoice control can fail on the visible wording, and the announcement diverges from what is on screen: usually confusing rather than blocking.
The order in the accessibility tree diverges from the visual order.Layer 5Accessibility tree1.3.2Meaningful SequenceContent arrives in an unexpected sequence: comprehension suffers, but the elements are all present.
A heading is exposed to assistive technology with an empty accessible name.Layer 5Accessibility tree2.4.6Headings and LabelsIt still occupies a slot in the screen reader's heading list, so the list a user navigates by gains an entry that says nothing about the section it introduces.
A heading's entire accessible name is an amount of money, so it names no section.Layer 5Accessibility tree2.4.6Headings and LabelsThe heading list a screen reader user navigates a page by shows prices instead of the products they belong to, which makes the list useless for finding anything.
A required field's required state is indicated nowhere: not in the field's own text or CSS-generated content, and not in a form-wide announcement.Layer 5Accessibility tree3.3.2Labels or InstructionsSomeone finds out a field was mandatory only after submitting the form and being told it failed, instead of before they start.
A field is visibly marked as required - an asterisk in its label, its placeholder, or painted by CSS - but the markup carries neither `required` nor `aria-required`.Layer 5Accessibility tree1.3.1Info and RelationshipsSighted users see which fields are obligatory before they start; a screen reader announces the same form as entirely optional.
A field collecting information about the user (name, address, phone, email, ...) has no autocomplete attribute, has autocomplete="off"/"on" (neither names a purpose), or declares a token that contradicts its own label.Layer 5Accessibility tree1.3.5Identify Input PurposeBrowsers and assistive input tools cannot offer autofill or a purpose-appropriate keyboard, so users who rely on either have to type everything by hand.
A live region is inserted into the DOM with its message already inside it.Layer 6Dynamic content4.1.3Status MessagesDepending on the assistive technology the message may or may not be announced: an unreliable announcement rather than a certain miss.
An identified error does not say how to correct it.Layer 6Dynamic content3.3.3Error SuggestionThe user knows where the problem is and can fix it by trial and error: extra effort, not a dead end.
Focusing an element moved keyboard focus to a different element, with nothing clicked or confirmed - reproduced on a second focus.Layer 2Keyboard3.2.1On FocusLanding somewhere the user did not choose, purely from moving focus, can disorient a keyboard user - whether it rises to a WCAG failure depends on what the destination is and needs a human judgment.
Changing a control's value, with nothing submitted, moved keyboard focus to a different element or opened a dialog that was not open before - reproduced on a second change.Layer 2Keyboard3.2.2On InputLanding somewhere unrequested purely from a value change can disorient a keyboard user - whether it rises to a WCAG failure depends on the destination and needs a human judgment.
A video may show information that its soundtrack never says, with no audio description.Layer 1Rules1.2.5Audio Description (Prerecorded)The main content still arrives through the soundtrack; what is lost is the visual detail, so the task stays doable with avoidable effort.
A video may show information its soundtrack never says, with neither an audio description nor a full text alternative.Layer 1Rules1.2.3Audio Description or Media Alternative (Prerecorded)Sits one step below the pure audio-description case: 1.2.3 accepts a text alternative too, so there are two ways for the content to still be reachable.
A video carries no audio track at all (measured), so everything it conveys is visual and 1.2.1 asks for an equivalent text alternative.video measured to have no sound track, so all of its content is visualLayer 1Rules1.2.1Audio-only and Video-only (Prerecorded)Anyone who cannot see the picture gets nothing from this clip - there is no soundtrack to fall back on. It stays below the audio-only case because a silent clip is more often illustration than sole content.
A <track kind="captions"> file was fetched and parses into real cues.the declared file delivers real cues, content unverifiedLayer 1Rules1.2.2Captions (Prerecorded)The file exists and is readable; whether the captions are accurate, cover non-speech sound and stay in sync is not something a fetch can measure.
The border or outline that shows where a control begins is too faint against what surrounds it.a boundary is drawn but does not reach 3:1Layer 1Rules1.4.11Non-text ContrastThe control is still findable by most users and by its label; someone with reduced contrast sensitivity has to hunt for its edges.
The outline or border a control shows while it has keyboard focus is too faint against what surrounds it.the boundary drawn while the control has keyboard focus does not reach 3:1Layer 1Rules1.4.11Non-text ContrastSomeone navigating by keyboard loses their place: the ring exists, but not visibly enough to say which control is about to be activated.
The control's edge falls below 3:1 in the CSS, but something we cannot resolve deterministically could be drawing the real boundary.a gradient, image or box-shadow may itself be the boundaryLayer 1Rules1.4.11Non-text ContrastStated at the level the confirmed case would carry. It never auto-accepts: it goes to a human who looks at the rendered control.
Across the scanned pages, fewer than two ways were found to reach this page.Layer 1Rules2.4.5Multiple WaysThe page is still reachable by the one way that exists, so what is lost is the alternative route someone would need if that way does not work for them.
The same navigation block lists shared items in a different relative order on different pages.Layer 1Rules3.2.3Consistent NavigationEverything stays reachable; what is lost is the learned position, which costs most for users who navigate by memory or by counting steps.
A link to the same target carries a different name on different pages.Layer 1Rules3.2.4Consistent IdentificationThe target is still reachable, but a speech-input user says a name that works on one page and not the next, which is avoidable effort rather than a dead end.
A language switcher names a language in that language's own words, without saying so in the markup.Layer 1Rules3.1.2Language of PartsA screen reader pronounces "Français" with the surrounding language's rules, which is what makes a language menu unusable by ear - the one menu someone in the wrong language most needs to find.
A passage is in another language than the page, and either says nothing about it or declares the wrong one.Layer 1Rules3.1.2Language of PartsAssistive technology keeps the page's pronunciation rules for that passage, so a quotation, an address or a whole paragraph comes out as noise instead of words.
Two different scanned pages carry exactly the same page title.Layer 1Rules2.4.2Page TitledThe title is what a screen reader announces first and what a browser tab shows, so identical titles leave someone with several tabs open, or listening to the page load, unable to tell the pages apart.
A block of text is styled larger and/or bolder than the body text around it, but carries no heading markup, and no real heading exists nearby.Layer 1Rules1.3.1Info and RelationshipsThe visual reader still finds the structure by eye; a screen-reader user loses the ability to jump straight to it and hears no announcement that a new section has started.
An instruction identifies its target by shape or position ("the round button on the right").Layer 1Rules1.3.3Sensory CharacteristicsThe user can usually still find the target by trying, so this costs effort and certainty rather than blocking the task outright.
An instruction identifies its target by colour ("the green button on the right"), technique G183.colour word in an instructional sentenceLayer 1Rules1.4.1Use of ColorThe user can usually still find the target by trying, so this costs effort and certainty rather than blocking the task outright.
An instruction identifies its target by shape, position or colour, and the page has more than one control of that kind whose labels the sentence does not name.measured: more than one matching control, none of their labels named in the sentenceLayer 1Rulesdepends on the findingThe user can usually still find the target by trying, so this costs effort and certainty rather than blocking the task outright - the same impact as the open question, now measured instead of asked.
A link inside running text is set apart by colour alone, and hovering it or focusing it with the keyboard adds no distinction that is not colour.measured: no non-colour cue on hover and/or on keyboard focusLayer 1Rules1.4.1Use of ColorThe colour difference clears 3:1, so most users still notice the link; what is missing is the second cue technique G183 requires for everyone who does not perceive the colour.
A link is distinguished by colour alone at rest, and the forced hover/focus read did not resolve, so whether those states add a second cue needs a human.clears 3:1, hover/focus state could not be measuredLayer 1Rules1.4.1Use of ColorThe colour difference is strong enough to be noticed by most users, so what is at stake is the remaining margin rather than the link's discoverability itself.
Two or more elements share a tag and class list, carry no text or accessible name, and differ from each other only in one colour property.Layer 1Rules1.4.1Use of ColorIf nothing on the page states what each colour means in text, someone who cannot perceive that colour - or who reads the page with colour removed - has no way at all to tell the states apart.
A <table> with no <th> and no <caption> (or marked role="presentation"/"none") lays out real content in a grid.Layer 1Rules1.3.2Meaningful SequenceA screen reader still reads it cell by cell in source order; if that order does not match the visual grid's statement, the meaning changes for someone who cannot see the layout.
The page has no main landmark, so nothing marks where the content begins.Layer 1Rules2.4.1Bypass BlocksA screen reader user jumps between landmarks the way a sighted user scans a page. Without a main region there is nothing to jump to, and every visit starts at the top of the menu again. Moderate rather than serious because a working skip link can serve the same purpose, which is why this always goes to a human.
Content sits outside every landmark, so region-by-region navigation skips past it.Layer 1Rules2.4.1Bypass BlocksAnything outside a landmark is invisible to the region list a screen reader offers. The content is still readable in sequence, which is why this is moderate: it costs orientation, not access.
Two landmarks of the same kind carry the same name, or none, so they cannot be told apart.Layer 1Rules2.4.1Bypass BlocksA region list that reads "navigation, navigation, search, search" forces the user to enter each one to find out which is which. The regions exist, they are just not distinguishable, which is why this is moderate.
Text was read out of the image file itself: this picture carries writing that could be real text.Layer 1Rules1.4.5Images of TextText in a picture does not reflow, does not follow a chosen font or colour, and blurs when the page is zoomed. It is legible for most people and unusable for some, which is why this is moderate rather than serious.
Two or more same-named links with different destinations are distinguished only by the heading or text of the card-like container they sit in - a unit WCAG's own definition does not enumerate (sentence, list item, paragraph, table cell), though most practitioners accept it.Layer 1Rules2.4.4Link Purpose (In Context)The links are not truly indistinguishable - a screen reader user who also reads the surrounding heading can still tell them apart - but the disambiguation sits outside what the criterion formally counts as context, so a human has to judge whether it genuinely carries.
The page's motion stops when the browser reports `prefers-reduced-motion: reduce`, but there is no control on the page itself.Layer 6Dynamic content2.2.2Pause, Stop, HideThat helps everyone who has set the system preference and nobody who has not. WCAG does not count the media query alone as a sufficient technique here, so a person decides whether it is enough in this case.
A <canvas> element draws visibly, with no fallback content between its tags and no accessible name.Layer 1Rules1.1.1Non-text ContentIf the canvas conveys information (a chart, a map, a result), a screen-reader user gets nothing at all where a sighted user gets the whole answer.
A later step of the same process asks again for information already entered, with nothing pre-filled and nothing to select.Layer 1Rules3.3.7Redundant EntryConfirmed, the process still completes, but everyone who cannot hold the earlier value in memory or read it back has to produce it a second time, and a mistyped repeat can cost the step.

Minor

Checks at level Minor
What is checkedLayerCriterionWhy this level
A muted looping autoplay video plays without controls, the decorative-background pattern.silent looping video, so only informational content needs an alternativeLayer 1Rules1.2.1Audio-only and Video-only (Prerecorded)Usually decorative and carrying no information of its own. It only matters when the clip is the only place some content appears.
Repeated help mechanisms appear in a different relative order from one page to the next.Layer 1Rules3.2.6Consistent HelpHelp is still present on every page; only its position moves, which degrades quality without obstructing the task.

Layer 1: why there is no separate catalog for it

The rules layer runs axe-core with around seventy rules for WCAG A and AA and takes its rating unchanged (critical, serious, moderate, minor). That is deliberate: axe maintains its scale against the same user-impact question, and rating each rule ourselves would be a fork that drifts with every update. Where a result carries no rating at all, we file it as moderate rather than dropping it.

Severity is not confidence

Severity says how bad it is if the finding holds. Confidence says how sure we are that it holds. They are separate axes: human review is decided by confidence alone, never by severity. A critical finding with clear evidence is accepted automatically; a minor one with unclear evidence goes to review.

Request a free scan

Tell us your domain - we run a free initial scan and show you the most important barriers.