How Screen Readers Work (And Why Sites Fail Them)
Most accessibility advice tells you whatto fix — add alt text, label your buttons, mind your headings — without ever explaining why. And if you don't understand how a screen reader actually reads a page, every fix feels like superstition: rules you follow because an auditor said so. So let's fix that. Once you can picture what a blind user hears when they land on your site, the WCAG rulebook stops being arbitrary and starts being obvious.
What a Screen Reader Actually Is
A screen reader is software that converts what's on screen into synthesized speech or refreshable Braille. It's the primary way millions of blind and low-vision people use computers and phones. The big names are JAWS and NVDA on Windows, VoiceOver built into macOS and iOS, and TalkBack on Android. They're free or bundled on most platforms, so the barrier to your users isn't cost — it's your markup.
Here's the mental model that matters: a screen reader user does not experience your page as a picture. They experience it as a linear stream of announcements — heading, link, button, “image, product photo,” “edit text, email” — that they move through one item at a time, or jump between using keyboard shortcuts. Your gorgeous three-column layout, your hover states, your subtle gray hint text: none of that exists to them. Only the underlying structure does. If the structure is wrong, the whole experience is wrong, no matter how good it looks.
The Accessibility Tree: Where Your Page Becomes Speech
A screen reader doesn't read your HTML directly, and it definitely doesn't read your CSS. The browser builds a parallel structure called the accessibility tree— a stripped-down version of your page where every element is reduced to three things a screen reader announces:
- Role — what the element is. Button, link, heading, checkbox, list item, image. This comes free from semantic HTML: a
<button>has the role “button” automatically. A<div onclick>styled to look like a button has no role at all. - Name — what the element is called. The visible text of a link, the alt text of an image, the label of a form field. No name means the screen reader announces just “button” with no idea what it does.
- State — what's happening right now. Checked, expanded, disabled, selected, “current page.” This is what tells a user their menu opened or their box got ticked.
Almost every screen-reader failure is one of these three going missing or wrong. Write plain, semantic HTML and the browser fills in role, name, and state for you for free. Reach for <div> soup plus JavaScript and you're now hand-building the accessibility tree yourself — which is exactly where things break. That's also why bolting ARIA attributes onto broken markup usually makes things worse, not better; we cover that trap in common ARIA mistakes.
The Five Things That Break Screen Readers Most
You don't need to memorize all of WCAG to dramatically improve the screen-reader experience. The same handful of issues account for the overwhelming majority of real barriers:
- Images with no alt text. The screen reader either says nothing or reads the filename — “D S C underscore 0 4 8 2 dot jpg.” If the image carries meaning, it needs a description; if it's decorative, it needs an empty alt so it's skipped. Our guide to writing alt text walks through the judgment calls.
- Unlabeled controls. Icon-only buttons (cart, search, hamburger, close) and form fields with placeholder text instead of a real label announce as bare “button” or “edit text” with no purpose. The user is guessing.
- Fake buttons and links. A clickable
<div>or<span>isn't in the accessibility tree as an interactive element, so it's invisible to keyboard and screen-reader users even though it works fine with a mouse. - Meaningless heading structure. Screen-reader users navigate by pulling up a list of headings the way sighted users skim. Skip from an
h1to anh4because it looked right, or fake headings with bold text, and that map falls apart. - Silent changes. A cart count updates, a form error appears, a “copied!” toast pops — and the screen reader says nothing because the change was never announced. Sighted users see it; everyone else doesn't know it happened.
Want to know where your site stands?
Run a free scan →Why a Scanner Alone Won't Tell You the Whole Story
We build an automated accessibility scanner, so you might expect us to say a scan is all you need. It isn't, and anyone who tells you their tool catches everything is selling you something. Automated scanning — CompliaScan included, and we're built on the open-source axe-core engine — reliably catches only about 30–40% of WCAG success criteria. That's the honest number, and it's not a knock on automation.
A machine can tell you an image has no alt attribute. It cannot tell you whether “photo” is a useful description of the photo. It can flag a button with no accessible name; it can't tell you the “copied!” toast never announced, or that tabbing through your checkout skips the payment field entirely. Those are judgment calls a human with a screen reader makes in thirty seconds and a scanner can't make at all. So use the scanner for what it's great at: catching the boring, high-volume, machine-detectable failures fast and repeatedly. Then close the gap with real testing. We lay out the division of labor in automated vs manual testing, and a structured accessibility audit is how the two fit together.
How to Test With a Screen Reader Yourself
You already own a screen reader, and an hour with it will teach you more than a month of reading guidelines. You don't need to become an expert user — you need to hear your own site the way a real user does. Start small:
- Turn one on. On a Mac, press
Cmd + F5for VoiceOver. On Windows, download NVDA for free. On your phone, VoiceOver and TalkBack are both a settings toggle away. - Close your eyes and use the keyboard. Put the mouse away. Tab through your homepage and your most important flow — sign-up, checkout, contact. Can you reach everything? Does each stop announce what it is and what it's for?
- Pull up the headings and links list. Every screen reader can list a page's headings and links. If that list is gibberish — five “click here” links, no headings, or headings in the wrong order — your structure needs work.
- Do the thing your users do. Actually complete a purchase or submit the form with your eyes shut. This is where you discover the silent errors, the focus traps, and the unlabeled fields that no scanner surfaced.
Pair that manual pass with a scan and a checklist and you have a genuinely reliable process. Run your pages through the ADA compliance checker first to clear the machine-detectable issues, then work down the WCAG checklist for the human ones.
The Bottom Line
Screen-reader accessibility isn't a mysterious specialty — it's mostly the payoff for writing honest, semantic HTML and then actually listening to the result. Get role, name, and state right on every interactive element, keep your headings meaningful, and announce your changes, and you will have cleared the barriers that matter to the largest number of people. No tool guarantees compliance and nothing makes you “lawsuit-proof” — but a site that a blind person can genuinely use is the real goal, and it happens to be the same site that holds up in court. Scan it, hear it, fix what you find, and keep checking as your site changes.
See your lawsuit risk in 30 seconds
Over 5,100 ADA website lawsuits were filed in 2025 — a 20% year-over-year increase. Scan your site now and know exactly how exposed you are before a plaintiff's firm runs the same check.
Free scan · No signup required · Results in ~30 seconds
Keep reading
All articles →Automated vs Manual Accessibility Testing
Automated scanners catch roughly 30–40% of WCAG criteria. Manual testing catches the rest. Here is the honest breakdown of what each method finds, misses, and costs.
Common ARIA Mistakes That Break Accessibility
ARIA is the most misused tool in web accessibility. Here are the most common ARIA mistakes we see, why bad ARIA is worse than none, and how to fix them.
Section 508 Compliance Explained: A Plain-English Guide
Section 508 governs federal IT accessibility and trips up vendors who sell to government. What it actually requires, how it relates to WCAG and the ADA, and how to test honestly.
Related Resources
Accessibility Compliance Hub
How ADA, WCAG 2.2, Section 508, and the European Accessibility Act apply, broken down by industry.
Compare Accessibility Tools
See how CompliaScan compares to other accessibility scanners and overlay widgets, side by side.
Free Accessibility Tools
Color contrast checker, WCAG 2.2 checklist, alt text checker, and accessibility statement generator.