Accessibility
The banner your visitors see meets WCAG 2.2 Level AA. This is our conformance report, which goes through it criterion by criterion in the format procurement teams ask for (VPAT).
Scope and method
- Product: the Flat Consent banner, version 0.3.16, audited on 25 September 2026 in every form a visitor can meet. That means the banner that asks first, its settings, the short notice, the inform notice, and the settings button and link.
- Standard: WCAG 2.2, Levels A and AA. For web content, this also covers EN 301 549, the standard behind the European Accessibility Act.
- Automated tests: we ran axe-core 4 on every form of the banner, on a desktop and on a 320 px phone, with light and with saturated brand colours. It found no violations.
- Scripted checks, which we can repeat on every release, cover keyboard reach and focus order, focus staying in the dialog, visible focus, target sizes, reflow at 320 px, enlarged text spacing, reduced motion, and the banner’s language and direction (tested in Arabic).
- Not yet done: testing with people who use screen readers and other assistive technology, and an audit of the dashboard that site owners use. Both are planned, and we’ll update this page when they’re done.
- The built-in wording is written in plain language, in 35 languages. If you replace it with your own wording, keeping that clear is up to you.
Summary
27 criteria supported, 10 not applicable, 0 partially supported, 0 not supported.
| Criterion | Level | Conformance | How |
|---|---|---|---|
| 1.1.1 Non-text content | A | Supports | The settings button’s icon has a text name. There are no other images. |
| 1.2.1–1.2.5 Time-based media | A | Not applicable | No audio or video. |
| 1.3.1 Info and relationships | A | Supports | A dialog with a heading, named by its title and described by its text; each category switch has a label; the notice is a named region. |
| 1.3.2 Meaningful sequence | A | Supports | Reading order matches the visual order, right to left for Arabic and Hebrew. |
| 1.3.3 Sensory characteristics | A | Supports | Instructions don’t rely on shape, size or position. |
| 1.3.4 Orientation | AA | Supports | Works in portrait and landscape. |
| 1.3.5 Identify input purpose | AA | Not applicable | No fields about the visitor. |
| 1.4.1 Use of colour | A | Supports | Switch states are shown by the tick, not colour alone. |
| 1.4.2 Audio control | A | Not applicable | No audio. |
| 1.4.3 Contrast (minimum) | AA | Supports | Text contrast is at least 4.5:1 whatever the site’s colours. Brand colours are kept, and any text colour that falls short is replaced with black, white or a readable grey, both when settings are saved and again in the banner. |
| 1.4.4 Resize text | AA | Supports | Scales with browser zoom to 200% without loss. |
| 1.4.5 Images of text | AA | Supports | No images of text. |
| 1.4.10 Reflow | AA | Supports | Fits a 320 px wide screen without scrolling sideways. |
| 1.4.11 Non-text contrast | AA | Supports | The focus ring is 3 px. Ticked boxes use the brand colour only where it contrasts with the background at 3:1 or more; otherwise they use the text colour. |
| 1.4.12 Text spacing | AA | Supports | Nothing is clipped with WCAG’s larger line, letter, word and paragraph spacing. |
| 1.4.13 Content on hover or focus | AA | Not applicable | No tooltips or pop-ups on hover. |
| 2.1.1 Keyboard | A | Supports | Every control works with the keyboard. |
| 2.1.2 No keyboard trap | A | Supports | While the banner asks, focus stays in it (it is a modal dialog) and leaves as soon as a choice is made with Accept, Reject or Save. |
| 2.1.4 Character key shortcuts | A | Not applicable | No shortcuts. |
| 2.2.1 Timing adjustable | A | Not applicable | No time limits. A confirmation message stays about five seconds and is also announced. |
| 2.2.2 Pause, stop, hide | A | Supports | Nothing moves on its own; animations stop when the visitor asks for reduced motion. |
| 2.3.1 Three flashes | A | Supports | Nothing flashes. |
| 2.4.3 Focus order | A | Supports | Focus moves into the banner when it opens and follows the visual order. |
| 2.4.6 Headings and labels | AA | Supports | The heading and labels say what they are for. |
| 2.4.7 Focus visible | AA | Supports | A 3 px focus ring. |
| 2.4.11 Focus not obscured (minimum) | AA | Supports | While the banner asks, focus stays in it. The short notice, which doesn’t take focus, keeps room at the bottom of the page so focused elements aren’t hidden behind it. The small settings button left afterwards can cover part of a control, never a whole one. |
| 2.5.1–2.5.4 Pointer gestures, cancellation, label in name, motion | A | Supports | Every action is a single tap and happens on release. Visible labels are the accessible names, and nothing uses device motion. |
| 2.5.7 Dragging movements | AA | Not applicable | No dragging. |
| 2.5.8 Target size (minimum) | AA | Supports | Every control is at least 24 × 24 px; buttons are 44 px tall. |
| 3.1.1 Language of page | A | Not applicable | Set by the site’s own page. |
| 3.1.2 Language of parts | AA | Supports | The banner states its own language (and direction), so screen readers switch voice when it differs from the page. |
| 3.2.1 On focus | A | Supports | Focus alone changes nothing. |
| 3.2.2 On input | A | Supports | Switching a category changes nothing until Save. |
| 3.2.6 Consistent help | A | Not applicable | No help mechanism in the banner. |
| 3.3.1–3.3.4, 3.3.7, 3.3.8 Input assistance | A/AA | Not applicable | No forms to fill in and no sign-in. |
| 4.1.2 Name, role, value | A | Supports | Buttons, switches, the dialog and the notice expose their name, role and state. |
| 4.1.3 Status messages | AA | Supports | Confirmations are announced as status messages without moving focus. |
Found something?
Write to hello@flatconsent.com. We treat an accessibility problem in the banner as seriously as any other bug that stops visitors from making a choice.