A QR code is a shortcut. For a lot of people, it is the only route offered: to the menu, the timetable, the ticket, the form. If they cannot scan it, they are locked out. Making codes accessible is mostly a set of small habits, and each one also helps every other reader.
Why this matters
Think about who might struggle. Someone with low vision cannot find a small code on a busy poster. Someone who is blind cannot aim the camera. A wheelchair user cannot reach a code mounted at head height. An older person may not know that the camera scans codes. Someone with a shaky hand cannot hold the phone still for a dense code. Every fix below removes one of these barriers.
Do this
A code at hand height with the URL printed beside it, a clear label saying what it does, and a destination page that reads well on a phone.
Not this
A code alone, high on a wall, linking to a PDF with no text layer.
1. Print the URL beside the code
This is the single most useful thing you can do. A short, readable URL under the code gives everyone a second route. It helps people whose phone will not scan, people who prefer to type, and people using a screen reader with a camera app that reads printed text. Keep it short and lower case, and make it the real address, not a redirect that looks like nonsense.
Do this
getqrstudio.app/menu printed in 12 pt or larger under the code.
Not this
No URL, or a shortener link of random letters that is impossible to read aloud or type.
2. Write alt text for digital codes
A QR code in an email, a web page or a PDF needs alternative text, the description a screen reader speaks. Describe the destination and the purpose. Also put the link itself next to the image, because a screen-reader user cannot scan an image on the screen they are already using.
Do this
alt text: QR code linking to the event booking page at example.org/book. The same link is given as text beside it.
Not this
alt text: qr-code-final-v3.png, and no text link anywhere.
3. Mount it where people can reach
Put the centre of the code between 900 and 1500 mm from the floor. That is reachable from a wheelchair, by a child and by a standing adult. Leave clear floor space in front so a chair can get close enough. Do not put codes above counters where a seated person cannot see them. The placement guide has the full table.
Do this
A code at 1100 mm on a clear wall with space in front of it.
Not this
A code at 1800 mm above a queue barrier.
4. Keep the contrast high
Low contrast fails everyone, and it fails people with low vision first. Use dark modules on a light background at a contrast ratio of 4.5 to 1 or better, the same threshold WCAG uses for normal text. Avoid patterned backgrounds and gloss. Print the code large enough that the modules are at least 1 mm. The colours and contrast guide has the numbers.
Do this
Black on white, 1 mm modules or larger, matt finish.
Not this
Light purple on lilac, on gloss card, with a background photo.
5. Add a tactile marker
A person who cannot see the code cannot find it either. A raised border, a strip of textured tape or a small braille label at a consistent spot, such as the bottom-left corner of every sign, tells someone with a cane or a hand where to point the phone. Consistency across a building or a network matters more than the exact form.
Do this
A raised frame around the code on every sign in the station, always at the same height and always to the right of the braille label.
Not this
Codes in a different spot on every sign, with nothing to feel for.
6. Consider NaviLens Accessible QR
NaviLens is a code system designed for blind and partially sighted users. Its codes can be detected by the NaviLens app from far further away than a standard QR code and without aiming the camera carefully, and NaviLens describes its Accessible QR format as readable at around twelve times the distance of a standard code. It is used on packaging and in transport networks. It is not a replacement for a QR code, because it needs its own app, but it can sit beside one on the same sign. For high-traffic public information, it is worth a look.
Do this
A standard QR code and a NaviLens code side by side on a platform sign, with the URL in print and braille.
Not this
Replacing the QR code with a proprietary format that most phones cannot read.
7. Make the destination page accessible
The code is only the door. The page behind it must work for the same people. The basics from WCAG, the Web Content Accessibility Guidelines, are enough to start:
- Real text, not text in images or a scanned PDF. Screen readers need text.
- Headings in order, so a reader can jump to the section they need.
- Text contrast of at least 4.5 to 1, and text that can be enlarged without breaking the layout.
- Every control usable by keyboard and by touch, with a visible focus state.
- Alt text on images, labels on form fields, captions on video.
- No timeouts that throw the reader out before they have finished.
Worked example: a restaurant menu. A web page with headings for Starters, Mains and Desserts, real text, prices in the same line as the dish, and a font size that can be pinched larger passes the basics. A photographed menu saved as a PDF fails all of them.
Do this
A mobile web page with headings, real text and readable contrast.
Not this
A photo of the printed menu, uploaded as a PDF.
Common mistake
Passing the code and failing the page. Teams test that the code scans and stop there. The person who could not read the poster now cannot read the PDF it led to, and the sign has simply moved the barrier.
8. Know the legal picture
The European Accessibility Act has applied since 28 June 2025. It requires listed products and services in the EU to be accessible, including e-commerce, banking, e-books, passenger transport information and ticketing. A QR code is often the route into one of those services, and the route and destination fall under the same duty. In the United States, the federal Section 508 guidance on QR codes gives similar advice: provide the URL in text, give the code alt text, and make the destination accessible. This page is guidance, not legal advice, so check your own obligations.
Do this
A transport operator that prints the URL, writes alt text, mounts codes at reachable height and audits the destination page against WCAG.
Not this
A ticketing service that assumes the QR code is enough and has never opened the destination with a screen reader.
Try it in QR Studio
QR Studio’s contrast check flags any colour pair below 4.5 to 1 as you design, and its export includes a text label with the URL beneath the code, so the printed fallback is in the artwork rather than left to the designer.
Checklist
- Short, readable URL printed beside every code
- Alt text on every digital code, naming the destination, with the link as text too
- Centre of the code between 900 and 1500 mm, clear floor space in front
- Dark modules on a light, plain background at 4.5 to 1 or better
- Modules at least 1 mm at the printed size
- Tactile marker or braille label in a consistent position
- NaviLens or a similar aid considered for public information
- Destination page uses real text, ordered headings, alt text and labelled controls
- Destination page tested with a screen reader and at 200 percent zoom
- Legal duties checked, including the European Accessibility Act where it applies
Try it yourself
Enter the module and background colours from your design. The checker gives the contrast ratio and tells you whether it clears 4.5 to 1.