CASE STUDY · WCAG 2.1 CONFORMANCE

NPR.org Accessibility Audit

A WCAG 2.1 Level A and AA conformance audit in VPAT 2.5Rev format, evaluating NPR.org against accessibility criteria using automated and manual testing methods.

VPAT 2.5Rev WCAG 2.1 A & AA Spring 2026
AUDIT SCOPE
VPAT
REPORT
FORMAT
A+AA
CONFORMANCE
LEVELS
3
TESTING
TOOLS
UX
EVALUATOR
ROLE

A site I use and trust, tested honestly

Where accessibility investments meet ad reality.

Public media organizations carry an implicit accessibility contract with their audiences. NPR's mission is to inform, and that mission breaks down when the interface gets in the way of the people trying to receive it.

I chose NPR.org because it's a site I use and trust. I came in expecting a reasonably clean accessibility picture. What I found instead was a site doing several things genuinely well, and one thing that completely overshadows them: an ad implementation that has made keyboard navigation on article pages nearly impossible.

A VPAT (Voluntary Product Accessibility Template) is the standardized industry document used to report WCAG conformance. It's the format procurement, legal, and enterprise teams request when evaluating software accessibility. Producing one correctly takes systematic manual testing, not just a scan.

// WHAT THIS AUDIT COVERS

  • WCAG 2.1 Level A and AA conformance, reported in VPAT 2.5Rev format
  • Two page types tested in parallel: NPR homepage and a single article page
  • Manual testing with VoiceOver and keyboard navigation, plus automated scans with WAVE and HeadingsMap
  • Twelve documented failures across the homepage and article page
  • One central finding that overshadows the rest: a keyboard trap built by the ad implementation

How I tested

Testing was conducted manually and with automated tools on a MacBook running macOS, in Google Chrome. I tested two page types in parallel: the NPR homepage and a single article page. Testing each criterion against both page types showed where issues were site-wide versus specific to one context.

Automated tools (WAVE, HeadingsMap) surfaced structural and contrast issues quickly. Manual testing with VoiceOver and keyboard navigation revealed the behavioral failures automated tools miss: what it actually feels like to try to read an NPR article without a mouse.

WAVE HEADINGSMAP COLOR PICKER VOICEOVER KEYBOARD MOUSE

I brought working knowledge of NPR.org to the session. That mattered. I could tell the difference between something genuinely broken and something unfamiliar.

31 of 38 tab stops are ads

31/38TAB STOPS
ARE ADS
5+TAB PRESSES
PER AD UNIT
59IMAGES MISSING
ALT TEXT
44CONTRAST
ERRORS

On the NPR article page, 31 of 38 tab stops are ads or contextless inline links. For a keyboard-dependent user, reading an NPR article means tabbing through an ad gauntlet before reaching the content the page exists to deliver.

The failure is at WCAG 2.1.2 (No Keyboard Trap) and 2.4.3 (Focus Order). Sponsored content blocks require 5 or more consecutive tab stops to exit. The article audio player and KQED live player are technically keyboard-accessible, but buried under the ad stack in tab order, making them functionally unreachable.

This is a design and implementation decision with compounding consequences. NPR's genuine accessibility wins (its skip-to-main-content link, visible focus indicators) are negated for keyboard users the moment they enter an article page. The skip link clears the nav. It doesn't clear the ads.

Twelve failures, ranked by impact

All findings come directly from the VPAT below, organized by user impact rather than WCAG criterion order. Severity reflects how directly the failure blocks an actual person from using the site.

  1. CRITICAL

    Keyboard trap in sponsored content

    Keyboard users become trapped in ad units, requiring 5+ tab presses to exit each one. Over 27 of 38 total tab stops on the article page are ad-related. The article itself is functionally unreachable via keyboard.

    WCAG 2.1.2 · NO KEYBOARD TRAP · LEVEL A
    DOES NOT SUPPORT

  2. CRITICAL

    59 images missing alt text on the homepage

    WAVE detected 59 images and 3 linked images without alternative text on the homepage. 3 images and 3 linked images also failed on the article page. Screen reader users receive no information about these images.

    WCAG 1.1.1 · NON-TEXT CONTENT · LEVEL A
    DOES NOT SUPPORT

  3. CRITICAL

    32 empty buttons and 17 broken ARIA menus

    WAVE flagged 32 empty buttons on the homepage, 6 on the article page, and 17 broken ARIA menus. The podcast play button announces as "3 08 button," using audio duration as the accessible name. Every empty button is a dead end for screen reader users.

    WCAG 4.1.2 · NAME, ROLE, VALUE · LEVEL A
    DOES NOT SUPPORT

  4. CRITICAL

    Watch section videos have no title, description, or alt text

    Prerecorded videos on the homepage are announced only as "play video" via VoiceOver. Descriptions are teaser copy about the topic, not descriptions of the visual content. Entirely inaccessible for screen reader users.

    WCAG 1.2.1 · AUDIO-ONLY AND VIDEO-ONLY · LEVEL A
    DOES NOT SUPPORT

  5. HIGH

    Link purpose not conveyed to screen readers

    Section header links ("National," "Law") are announced by VoiceOver with the section name only, no destination context. Inline article links read without surrounding sentence context. Screen reader users cannot determine where a link goes without clicking it.

    WCAG 2.4.4 · LINK PURPOSE · LEVEL A
    DOES NOT SUPPORT

  6. HIGH

    44 contrast errors on the homepage

    WAVE detected 44 contrast errors on the homepage. On the article page, the audio player UI falls below the 4.5:1 minimum for normal text. For a news organization, low-contrast body text is a significant barrier to the primary use case.

    WCAG 1.4.3 · CONTRAST MINIMUM · LEVEL AA
    DOES NOT SUPPORT

  7. HIGH

    No audio description on Watch section videos

    Homepage videos include closed captions but no audio description track. Visual-only content in the videos is inaccessible to blind and low-vision users regardless of how well the captions are written.

    WCAG 1.2.5 · AUDIO DESCRIPTION · LEVEL AA
    DOES NOT SUPPORT

  8. MODERATE

    Focus order disrupted by ads on both page types

    Homepage focus order generally follows visual layout but is disrupted by sponsored content. Article page focus order is heavily disrupted, with the ad stack appearing before editorial content in keyboard sequence.

    WCAG 2.4.3 · FOCUS ORDER · LEVEL A
    PARTIALLY SUPPORTS

  9. MODERATE

    6 skipped heading levels and a silent section heading

    HeadingsMap and WAVE detected 6 skipped heading levels on the article page. On the homepage, the "Watch" section heading is not announced by VoiceOver at all, breaking section structure for users navigating by headings.

    WCAG 2.4.6 · HEADINGS AND LABELS · LEVEL AA
    PARTIALLY SUPPORTS

  10. MODERATE

    Inline links interrupt VoiceOver sentence reading

    On the article page, inline hyperlinks interrupt VoiceOver reading flow, requiring manual keyboard input to continue through a single sentence. Reading a linked paragraph becomes a stop-and-start process.

    WCAG 1.3.2 · MEANINGFUL SEQUENCE · LEVEL A
    PARTIALLY SUPPORTS

  11. LOW

    Live ads update without a user pause mechanism

    On both page types, live ads update automatically without a pause, stop, or hide control. The NPR logo animates once on load without looping, which is a reasonable handling of animation.

    WCAG 2.2.2 · PAUSE, STOP, HIDE · LEVEL A
    PARTIALLY SUPPORTS

  12. LOW

    Search results not announced to screen readers

    Submitting a search produced a brief audible tone through VoiceOver but no spoken announcement of results loading or result count. Users don't know if the search succeeded.

    WCAG 4.1.3 · STATUS MESSAGES · LEVEL AA
    PARTIALLY SUPPORTS

Where NPR gets it right

This audit is not a takedown. NPR has made real accessibility investments worth naming. A site can do all of these things correctly and still fail the people trying to read an article via keyboard. That is the problem.

WIN 01 · SUPPORTS

Skip to main content link

Appears on the first tab press on both page types. Correct behavior, correctly implemented.

WIN 02 · SUPPORTS

Visible focus indicators

A black outlined focus square appears on all tested interactive elements with strong contrast. A genuine strength. Many news sites skip this entirely.

WIN 03 · SUPPORTS

3-minute audio version of articles

A full audio reading of the written content. A meaningful media alternative, not just a checkbox. A content-level accessibility decision.

WIN 04 · SUPPORTS

Closed captions on Watch videos

Prerecorded video includes closed captions. Page titles are accurate and descriptive. Color is not used as the only means of conveying meaning.

What to fix, in order

Prioritized by impact on real users, not WCAG criterion order.

CRITICAL

Fix the ad implementation's keyboard behavior

This is the only recommendation that is also a legal exposure. WCAG 2.1.2 is a Level A criterion, baseline conformance. Ad units need to be navigable with a single tab stop, or grouped with a skip mechanism. This is not a front-end fix alone. It requires coordination with ad ops.

HIGH PRIORITY

Audit and remediate all empty buttons

32 empty buttons on the homepage and 6 on the article page each need an accessible name. The podcast play button should announce the episode name, not the duration. Every empty button is a dead end in keyboard navigation.

HIGH PRIORITY

Add alt text to all editorial images

59 homepage images lack alternative text. For a news organization, image alt text is also editorial context. A photo that can't be described is a story element that doesn't reach part of the audience. Establish an editorial workflow that requires alt text at upload.

MEDIUM PRIORITY

Repair ARIA menus and link purpose

17 broken ARIA menus on the homepage need to be corrected or replaced. Section header links need descriptive accessible names that communicate destination, not just the section label. This is a heading and landmark audit combined.

MEDIUM PRIORITY

Resolve contrast failures on the audio player

The article audio player UI falls below the 4.5:1 minimum for normal text. Given how central audio is to NPR's identity, this is a meaningful gap. It's a discrete component that can be corrected without a broader redesign.

The full VPAT

The complete WCAG 2.1 Level A and AA conformance report is formatted using the VPAT 2.5Rev template from the Information Technology Industry Council. It covers every applicable success criterion across both page types, with conformance level and remarks for each.

VPAT 2.5REV · WCAG 2.1 EDITION

NPR.org Accessibility Conformance Report

12-page conformance report · April 2026 · WCAG 2.1 Level A & AA · macOS Chrome + VoiceOver

▶ View Full VPAT (PDF)

The tension this audit revealed

NPR is publicly funded, editorially independent, and mission-driven. It also runs ads. Those two things are in direct conflict when the ad implementation breaks the experience for keyboard users.

This audit surfaced something that goes beyond checklist compliance. A site can demonstrate genuine care for accessibility at the content layer (audio alternatives, visible focus states, working skip links) and still fail the people who need it most at the implementation layer, because ad ops and accessibility weren't in the same room.

WCAG conformance isn't a design system problem. It's a cross-functional coordination problem. The keyboard trap in NPR's article ads isn't a failure of values. It's a failure of process. Nobody in the ad implementation workflow was checking whether these units could be exited by a keyboard user.

"That's the gap a VPAT surfaces that a quick WAVE scan doesn't. You have to sit in it and try to tab through an article."

— Stacy Tomasi · UX 60504 Accessibility & Universal Design · Spring 2026