Accessibility statement
Last updated 3 September 2026
Our position. We aim to meet WCAG 2.1 Level AA. This statement records what we have actually tested and what we know is still imperfect, rather than claiming full conformance.
1. Standard we aim for
We target the Web Content Accessibility Guidelines (WCAG) 2.1 at Level AA. This site is partially conformant: most of it meets the standard, and the exceptions are listed in section 4.
2. What we have done
- Colour contrast. Every text and control colour has been measured against its background. Body text is 5.83:1, secondary text 4.72:1, links 6.97:1, and form control borders 3.02:1, all above the AA thresholds of 4.5:1 for text and 3:1 for control boundaries.
- Keyboard access. Every control can be reached and operated with a keyboard. Focus is always visible: a two-pixel outline with an offset, never removed.
- Text scaling. Form inputs are 16px so mobile browsers do not zoom unexpectedly, and the layout reflows without horizontal scrolling down to 320px wide.
- Touch targets. On touch devices every interactive element is enlarged to a comfortable minimum.
- Motion. The only animation is a short colour change on hover, and it is disabled entirely for anyone who has asked their system to reduce motion.
- Structure. One
h1per page, headings in order, landmark elements, and a language attribute on every page. - Labels. Every form field has a real label, not a placeholder standing in for one. The menu button reports its expanded state to screen readers.
3. The QR code itself
A QR code is a visual pattern, so it cannot be made readable by a screen reader. To keep the QR code generator usable without sight of the image, the panel beside the code states in text the version, the module count, and the exact data being encoded. Anyone using a screen reader can confirm what the code contains before downloading it.
4. Known limitations
- Decorative dividers are low contrast. The hairlines separating blocks sit at about 1.2:1. WCAG 1.4.11 does not require decorative separators to meet 3:1, and no information is conveyed by them alone, but they are faint. Every element they surround is also distinguished by spacing and text.
- The downloaded image has no alternative text. A PNG or SVG you download carries no description. When you place a code on your own site, add your own alt text saying where it leads.
- Colour customisation can break contrast. If you choose a light foreground in the custom colour generator, the result may be unreadable to scanners and to people. Our guide on why codes fail to scan covers contrast in detail. We keep black as the default for that reason.
5. How we tested
Contrast ratios were calculated against the WCAG relative luminance formula for every colour pair in the stylesheet, and structure, labelling and landmark use were checked against the markup. Keyboard operation was checked by hand on every control.
We have not yet completed a full screen reader pass with NVDA, VoiceOver or JAWS. Until we have, we are not claiming more than the checks above actually cover.
This statement was prepared on 3 September 2026 and is based on our own evaluation. It has not been independently audited.
6. Feedback
If you hit a barrier on this site, please tell us at contact@gen-qr-code.com. Describe the page and what went wrong, or use our contact page, and we will try to respond within a few days.
If we do not fix something, tell us again — there is no bureaucracy here, just an inbox. Accessibility complaints about a site like this one carry more weight with us than any formal process would.