WCAGvaktAccessibility you can document
WCAG 2.1 A and AA · 48 of 50 success criteria covered · 1.2.3 and 1.2.4 not covered

Requirement matrix with evidence levels

This page shows what the system can prove automatically, what has partial machine support, and what still needs human review. We cover 48 of the 50 A/AA success criteria, with the evidence level shown per criterion. Machine findings are based on rules, DOM, CSS, HTTP and measured browser behavior, not AI.

Test a website
48Success criteria covered
21Deterministic machine findings
23Partial machine support
4Manual checks only
92%Machine-supported review before expert review

Status explanations

Deterministic machine findings

When the tool finds an issue here, the finding should be technically verifiable in the DOM, CSS, HTTP or actual browser behavior. Judgement-based parts are marked for expert review.

Partial machine support

The machine finds concrete signals or performs a bounded measurement, but the whole requirement cannot be decided safely without expert review. These are shown as 'needs review', not red machine evidence.

Manual checks only

The requirement needs human judgement or domain/media understanding, for example media, flashing or legal/financial transactions.

This runs in every scan

Several engines look at the same page. They never count the same violation twice - if two of them find the same thing, that strengthens the evidence instead.

axe-core

The industry standard for automated rule testing.

Our own rules and behaviour tests

We tab through the page in a real browser: visible focus, 200 % text, 320 px reflow and target size are measured, not guessed.

QualWeb (W3C ACT rules)

The official ACT rules run independently and corroborate our findings. Corroborated findings are marked in the report.

v.Nu (Nu Html Checker)

HTML validation. Catches parser errors such as duplicate ids and unclosed elements - errors the other layers do not see.

veraPDF (PDF/UA)

PDFs you link to are checked for tagging, language, title and text layer. Reading order and content still need a human.

Shadow DOM guard

Says so when part of the page is closed to inspection, instead of letting it pass in silence.

The scan uses no language model, and your page is not sent to any third party.

1.1.1 A Non-text content
✓ Machine evidence
Checks: Machine evidence: missing alt via axe/custom.
1.2.1 A Audio-only and video-only (prerecorded)
○ Manual
Checks: Coverage of the text alternative = manual
No automated check. Requires manual review.
1.2.2 A Captions (prerecorded)
◐ Partial
Checks: Behaviour: is there a <track kind=captions>? Quality/sync = manual
Manual review recommended before conclusion.
1.2.5 AA Audio description (prerecorded)
○ Manual
Checks: Coverage of the audio description = manual
No automated check. Requires manual review.
1.3.1 A Info and relationships
✓ Machine evidence
Checks: Machine evidence: heading/list/table/ARIA semantics via axe/custom.
1.3.2 A Meaningful sequence
◐ Partial
Checks: Behaviour: CSS reorders (order/*-reverse) AND the geometry confirms the text sequence actually changed.
Manual review recommended before conclusion.
1.3.3 A Sensory characteristics
◐ Partial
Checks: Deterministic: an instruction pointing to colour/shape/position alone, except where the element is named.
Manual review recommended before conclusion.
1.3.4 AA Orientation
✓ Machine evidence
Checks: Behavior: does the page lock orientation (CSS/JS)?
1.3.5 AA Identify input purpose
✓ Machine evidence
Checks: Behavior: correct autocomplete on name/email/phone fields.
1.4.1 A Use of color
◐ Partial
Checks: Behaviour: text links with no underline or other distinction than colour (color-only-link)
Manual review recommended before conclusion.
1.4.2 A Audio control
✓ Machine evidence
Checks: Behavior: audio autoplays for >3s without pause/control
1.4.3 AA Contrast (minimum)
✓ Machine evidence
Checks: axe: text contrast 4.5:1 / 3:1.
1.4.4 AA Resize text
✓ Machine evidence
Checks: Behavior: 200% text zoom → clipping/loss of content.
1.4.5 AA Images of text
◐ Partial
Checks: SVG text is read directly (inline and <img src=*.svg>, fetched outside CORS): a visible sentence drawn as an image with no other graphics = violation; text inside a chart/illustration = should be checked; logo/wordmark and hidden text exempt. Raster images with text: model layer from the screenshot only.
Manual review recommended before conclusion.
1.4.10 AA Reflow
✓ Machine evidence
Checks: Behavior: real 320 px test → horizontal scroll?
1.4.11 AA Non-text contrast
◐ Partial
Checks: Measures border/surface contrast for CUSTOM controls (ui-component-contrast, 3:1) + forced-colors. axe 4.10 has no 1.4.11 rule. Graphics/icons are not measured yet
Manual review recommended before conclusion.
1.4.12 AA Text spacing
✓ Machine evidence
Checks: Behavior: inject WCAG text-spacing CSS → clipping/overlap?
1.4.13 AA Content on hover or focus
◐ Partial
Checks: Behavior: measured by hovering every focusable element – new content must be hoverable, persistent and dismissible (Escape or documented keys) when it covers other content. Without scripts on the page a missing dismissal is proven; with scripts = should be checked. title attribute = should be checked (the browser's own tooltip is exempt). JS tooltips delayed more than 180 ms are not caught.
Manual review recommended before conclusion.
2.1.1 A Keyboard
✓ Machine evidence
Checks: Behavior: real Tab walkthrough: is all interactive content operable without a mouse?
2.1.2 A No keyboard trap
✓ Machine evidence
Checks: Behavior: can focus always leave each component?
2.1.4 A Character key shortcuts
◐ Partial
Checks: Heuristic: global single-character shortcuts with no visible off/on/remap must be confirmed
Manual review recommended before conclusion.
2.2.1 A Timing adjustable
◐ Partial
Checks: Behaviour: detects timeouts/meta-refresh; adjustability = partly manual
Manual review recommended before conclusion.
2.2.2 A Pause, stop, hide
✓ Machine evidence
Checks: Behavior: measured in the DOM (Web Animations API) and confirmed with two screenshots: a running animation that actually changes position/visibility of information, over 5 s or forever, with no pause/stop/hide control = violation. Stops under reduced motion = should be checked. <marquee> = infinite. JS-driven movement (setInterval) is not measured.
2.3.1 A Three flashes or below threshold
○ Manual
Checks: Flash analysis of video/animation = manual
No automated check. Requires manual review.
2.4.1 A Bypass blocks
✓ Machine evidence
Checks: axe/behavior: analysed in the rendered DOM across pages – a visible block repeated on 2 or more pages of the same site without a skip link with an existing target, main landmark or heading (h1–h6) = violation. A single page alone: skip link/landmarks = should be checked.
2.4.2 A Page titled
✓ Machine evidence
Checks: Machine evidence: <title> exists, via axe.
2.4.3 A Focus order
◐ Partial
Checks: Behavior: measured on the real Tab sequence (wrap-around from autofocus is separated from interleaving) – focus leaving a fieldset/form group and coming back = violation; the same pattern in section/nav = should be checked. Positive tabindex = should be checked (not a violation in itself).
Manual review recommended before conclusion.
2.4.4 A Link purpose (in context)
◐ Partial
Checks: Deterministic: the same link name pointing to different targets, and vague link text without distinguishing context.
Manual review recommended before conclusion.
2.4.5 AA Multiple ways
◐ Partial
Checks: Behaviour: are there at least two ways to the content (menu + search or sitemap)
Manual review recommended before conclusion.
2.4.6 AA Headings and labels
◐ Partial
Checks: axe: structure + deterministic: the same label on two fields in the same form, and placeholder headings.
Manual review recommended before conclusion.
2.4.7 AA Focus visible
✓ Machine evidence
Checks: Behavior: real keyboard focus gives a visible indicator.
2.5.1 A Pointer gestures
◐ Partial
Checks: Behaviour: gesture-based navigation without a simple alternative; edge cases manual
Manual review recommended before conclusion.
2.5.2 A Pointer cancellation
◐ Partial
Checks: Behaviour: action on the down-event (should be up/undoable)
Manual review recommended before conclusion.
2.5.3 A Label in name
✓ Machine evidence
Checks: axe label-content-name-mismatch (experimental, enabled explicitly). Machine evidence only when visible text and name share no word; otherwise should be checked (hand-verified 15.09)
2.5.4 A Motion actuation
◐ Partial
Checks: Behaviour: motion-actuated function; alternative/off switch = partly manual
Manual review recommended before conclusion.
3.1.1 A Language of page
✓ Machine evidence
Checks: Machine evidence: <html lang> exists and is valid, via axe.
3.1.2 AA Language of parts
◐ Partial
Checks: Offline language detection (py3langid) per paragraph, never within Scandinavian.
Manual review recommended before conclusion.
3.2.1 A On focus
◐ Partial
Checks: Behaviour: focus alone triggers a change of context; edge cases manual
Manual review recommended before conclusion.
3.2.2 A On input
◐ Partial
Checks: Behaviour: typing/selecting changes context unexpectedly; edge cases manual
Manual review recommended before conclusion.
3.2.3 AA Consistent navigation
✓ Machine evidence
Checks: Cross-page: main menu order across pages (deterministic).
3.2.4 AA Consistent identification
✓ Machine evidence
Checks: Cross-page: same link = same text across pages (deterministic).
3.3.1 A Error identification
◐ Partial
Checks: Behaviour: aria-live/role=alert present, and an error message without a suggestion (error-message-without-suggestion)
Manual review recommended before conclusion.
3.3.2 A Labels or instructions
◐ Partial
Checks: axe: field has a label + deterministic: a requirement with no explanation (input-constraint-without-hint)
Manual review recommended before conclusion.
3.3.3 AA Error suggestion
◐ Partial
Checks: Deterministic: a pattern requirement that is never explained, and an error message without a suggestion (read from validationMessage/aria-errormessage).
Manual review recommended before conclusion.
3.3.4 AA Error prevention (legal, financial, data)
○ Manual
Checks: Undo/confirm on important transactions = manual
No automated check. Requires manual review.
4.1.1 A Parsing
✓ Machine evidence
Checks: axe duplicate-id/duplicate-id-active enabled EXPLICITLY (marked obsolete in axe, but the Norwegian supervisory authority profile lists the criterion). Versioned profile choice, see _AXE_NORSK_PROFIL
4.1.2 A Name, role, value
✓ Machine evidence
Checks: Machine evidence: name/role/value and ARIA validity via axe + screen reader basis (role, state and broken relationships).
4.1.3 AA Status messages
◐ Partial
Checks: Behaviour: form without an aria-live region for status messages; whether the region covers all updates = manual
Manual review recommended before conclusion.
← Back
LanguageNOEN