Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.FAlt Text QualityAction56 of 194 images have issuesFIX
| Issue | Count |
|---|---|
| missing | 48 image(s) |
| filename | 8 image(s) |
| too long | 57 image(s) |
Images without alt text are invisible to screen readers.
Each image without alt text is a WCAG 1.1.1 failure — invisible to screen-reader users, lost from Google Image Search.
Learn more ▾ ▴
WCAG 2.1 Level A requires text alternatives for non-decorative images. Empty alt='' is fine for decorative; meaningful images need descriptive text. Common fixes: CMS audit + bulk add, build-time linter (alt-text-required ESLint rule), CI gate on Lighthouse a11y score.
Source: WCAG 2.1 SC 1.1.1 / WebAIM Million Report
An image inside a link with no alt creates an empty link.
Image-only links with no alt create empty links — screen-reader users hear 'link' with no destination context.
Learn more ▾ ▴
An <a><img></a> with no img alt is the worst-case for accessibility: AT announces the link but can't describe where it goes. Either add alt to the image OR add aria-label to the link.
Source: WCAG 2.1 SC 2.4.4
FLink & Button QualityAction27 issue(s) across 495 links and 90 buttonsFIX
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| /newsletters/ | Newsletters | new tab | Add '(opens in new tab)' to text |
| /programs/morning-edition/ | Morning Edition | img no alt | Add alt attribute to the image |
| /programs/weekend-edition-saturday/ | Weekend Edition Saturday | img no alt | Add alt attribute to the image |
| /programs/weekend-edition-sunday/ | Weekend Edition Sunday | img no alt | Add alt attribute to the image |
| /programs/all-things-considered/ | All Things Considered | img no alt | Add alt attribute to the image |
| /podcasts/510318/up-first/ | Up First | img no alt | Add alt attribute to the image |
| /podcasts/510051/here-x26-now/ | Here & Now | img no alt | Add alt attribute to the image |
| /podcasts/510310/npr-politics-podcast/ | NPR Politics Podcast | img no alt | Add alt attribute to the image |
| https://www.npr.org/programs/wait-wait-d… | Wait Wait...Don't Tell Me! | img no alt | Add alt attribute to the image |
| https://www.npr.org/programs/fresh-air/ | Fresh Air | img no alt | Add alt attribute to the image |
| https://www.npr.org/podcasts/510379/wild… | Wild Card with Rachel Martin | img no alt | Add alt attribute to the image |
| https://www.npr.org/podcasts/510317/its-… | It's Been a Minute | img no alt | Add alt attribute to the image |
| https://www.npr.org/podcasts/510289/plan… | Planet Money | img no alt | Add alt attribute to the image |
| https://plus.npr.org/?utm_medium=nprweb&… | Get NPR+ | img no alt | Add alt attribute to the image |
| /newsletters/ | Newsletters | new tab | Add '(opens in new tab)' to text |
| (empty) | empty | Add link text or aria-label | |
| Mannequin Pussy: Tiny Desk Con… | img no alt | Add alt attribute to the image | |
| Lecrae: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Aterciopelados: Tiny Desk Conc… | img no alt | Add alt attribute to the image | |
| Bush: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Militarie Gun: Tiny Desk Conce… | img no alt | Add alt attribute to the image | |
| Kronos Quartet: Tiny Desk Conc… | img no alt | Add alt attribute to the image | |
| Mumford & Sons: Tiny Desk Conc… | img no alt | Add alt attribute to the image | |
| Caamp: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Tiana Major9: Tiny Desk Concer… | img no alt | Add alt attribute to the image | |
| Madi Diaz: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Maybe Happy Ending: Tiny Desk … | img no alt | Add alt attribute to the image | |
| De La Soul: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Buddy Guy: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Immanuel Wilkins: Tiny Desk Co… | img no alt | Add alt attribute to the image | |
| FLO: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Ganavya: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Jill Scott: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Sarah McLachlan: Tiny Desk Con… | img no alt | Add alt attribute to the image | |
| Geese: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| John P. Kee & New Life: Tiny D… | img no alt | Add alt attribute to the image | |
| Miguel: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Ollella: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| FORAGER: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Sally Baby's Silver Dollars: T… | img no alt | Add alt attribute to the image | |
| yeule: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Guitarricadelafuente: Tiny Des… | img no alt | Add alt attribute to the image | |
| John Fogerty: Tiny Desk Concer… | img no alt | Add alt attribute to the image | |
| From the Top: Tiny Desk Concer… | img no alt | Add alt attribute to the image | |
| Destin Conrad: Tiny Desk Conce… | img no alt | Add alt attribute to the image | |
| Coco Jones: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Great Grandpa: Tiny Desk Conce… | img no alt | Add alt attribute to the image | |
| Daniel Caesar: Tiny Desk Conce… | img no alt | Add alt attribute to the image | |
| GIVĒON: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Sixpence None the Richer: Tiny… | img no alt | Add alt attribute to the image | |
| Odeal: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Sean Shibe: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Billy Strings: Tiny Desk Conce… | img no alt | Add alt attribute to the image | |
| Annie DiRusso: Tiny Desk Conce… | img no alt | Add alt attribute to the image | |
| Air: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Brandi Carlile: Tiny Desk Conc… | img no alt | Add alt attribute to the image | |
| David Byrne: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| SEVENTEEN: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Robert Plant: Tiny Desk Concer… | img no alt | Add alt attribute to the image | |
| Goo Goo Dolls: Tiny Desk Conce… | img no alt | Add alt attribute to the image | |
| Ghost-Note: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Pulp: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| Kris Davis Trio: Tiny Desk Con… | img no alt | Add alt attribute to the image | |
| Nova Twins: Tiny Desk Concert | img no alt | Add alt attribute to the image | |
| https://www.npr.org/lifekit | Life Kit: Tools to help you ge… | new tab | Add '(opens in new tab)' to text |
| https://www.npr.org/podcasts/510351/shor… | Short Wave podcast: Revealing … | new tab | Add '(opens in new tab)' to text |
| /newsletters/ | Newsletters | new tab | Add '(opens in new tab)' to text |
| /network/ | NPR Network | new tab | Add '(opens in new tab)' to text |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
Links without text are announced as raw URLs by screen readers.
a#mainContent
Links with no accessible text (empty <a></a>, image-only no alt, icon-only no aria-label) are unidentifiable to screen readers.
Source: WCAG 2.1 SC 2.4.4
Image-only links need alt text on the image (or aria-label on the link) so screen readers can announce them.
a[href="/programs/morning-edition/"]; a[href="/programs/weekend-edition-saturday/"]; a[href="/programs/weekend-edition-sunday/"]; a[href="/programs/all-things-considered/"]; a[href="/podcasts/510318/up-first/"]; a[href="/podcasts/510051/here-x26-now/"]; a[href="/podcasts/510310/npr-politics-podcast/"]; a[href="https://www.npr.org/programs/wait-wait-dont-tell-me/"]; a[href="https://www.npr.org/programs/fresh-air/"]; a[href="https://www.npr.org/podcasts/510379/wild-card-with-rachel-martin"] (+51 more)
Image-only links with no alt are unidentifiable to screen-reader users — link's destination is invisible.
Source: WCAG 2.1 SC 2.4.4
Add '(opens in new tab)' to link text or aria-label.
/newsletters/; /newsletters/; https://www.npr.org/lifekit; https://www.npr.org/podcasts/510351/short-wave; /newsletters/; /network/
Links with target="_blank" without rel="noopener" leak the originating page's window context — security and UX issue.
Learn more ▾ ▴
Without rel="noopener", the new tab can navigate the original tab via window.opener (tab-nabbing attack). Modern browsers default to noopener for target=_blank but only since recent versions. Always set rel="noopener noreferrer" explicitly.
Source: MDN target / OWASP
Icon-only buttons need an aria-label so screen readers can announce them.
button.btn-close (#463 on page); button.btn-close (#599 on page); button.btn-close (#696 on page); button.btn-close (#879 on page); button.btn-close (#973 on page); button.btn-close (#1040 on page); button.btn-close (#1518 on page); button.btn-close (#1642 on page); button.btn-close (#1754 on page); button.btn-close (#1878 on page) (+16 more)
Buttons with no accessible text (icon-only, no aria-label) can't be activated by voice control or understood by screen readers.
Source: WCAG 2.1 SC 4.1.2
DWeb ManifestActionNot foundFIX
No web manifest found.
DDark Mode SupportActionNo dark mode signalsFIX
Detection limited to meta tags and inline styles.
DPrint StylesheetActionNo print stylesFIX
CHeading HierarchyAction135 headings, 1 skip(s)REVIEW
- H2 Religion
- H3 Popes have spoken out on politics before. But with Trump and Pope Leo it's different
- H2 Music
- H3 Jury finds that Live Nation acted as a monopoly and overcharged ticket buyers
- H2 Health
- H3 Middle East conflict causes a fluoride shortage for U.S. drinking water
- H4 Middle East conflict causes another shortage: fluoride for drinking water
- H2 Living Better
- H3 Quit a GLP-1? Plan to start again? It's not recommended, but plenty of people do it
- H2 Television
- H3 Actor Amanda Peet says she's 'cancer-free and extremely lucky'
- H4 FA: Amanda Peet
- H2 Immigration
- H3 'No peace': Nearly a year after her son's death, she learned that ICE was responsible
- H4 ‘No peace’: Nearly a year after her son’s death, she learned that ICE was responsible
- H2 Investigations
- H3 The Trump administration moves to erase Jan. 6 riot convictions for seditious conspiracy
- H2 Economy
- H3 Once again, President Trump threatens to fire Fed Chair Jerome Powell
- H2 NPR Music
- H3 How to reset your mood in 12 songs
- H4 All Songs Considered: Need a reset?
- H2 Business
- H3 Tax season was supposed to bring big refunds. So far they're less than expected
- H4 Tax season was supposed to bring big refunds. So far they’re less than expected
- H2 Culture
- H3 Exploring the green side of Rio de Janeiro: a vast urban rain forest
- H4 Exploring the green side of Rio de Janeiro: a vast urban rain forest
- H3 Teens plead not guilty to Islamic State-inspired plot near NYC mayor's residence
- H2 WATCH
- H3 Mannequin Pussy: Tiny Desk Concert
- H3 Life Kit: Tools to help you get it together
- H2 Perspective
- H2 Life Kit
- H3 The dos and don'ts of starting a running routine
- H4 The dos and don'ts of starting a running routine
- H2 Life Kit
- H3 Burnout isn't just exhaustion. Here's how to deal with it
- H4 Burnout isn't just exhaustion. Here's how to deal with it
- H2 Life Kit
- H3 Quiz: Are you too online?
- H4 Quiz: Are you too online?
- H2 Life Kit
- H3 Why we procrastinate — and how to stop
- H4 Why we procrastinate — and how to stop
- H2 Life Kit
- H3 These 5 big purchases can save energy — and money — at home
- H4 These 5 big purchases can save energy — and money — at home
- H2 Life Kit
- H3 What to do when you're constipated
- H4 What to do when you're constipated
- H2 Life Kit
- H3 Stuck in a rut? How to appreciate your life again, according to science
- H4 Why we become bored with our lives (and how to find joy again)
- H3 Get more expert advice from the Life Kit newsletter, landing weekly in your inbox
- H2 NPR's Newsmakers
- H3 Watch: Dave Chappelle on free speech and comedy in America
- H2 Middle East conflict
- H3 Trump says Iran talks could resume in days as U.S. military blocks Iranian ports
- H3 The family of a Camp Mystic victim asks a judge to preserve damaged cabins as its reopening nears
- H2 Far-Flung Postcards
- H3 Greetings from Nairobi, where taking a matatu is no ordinary bus ride
- H2 Politics
- H3 Under pressure from President Trump, can the filibuster survive 2026?
- H4 The filibuster has long forced senators to compromise. Can it survive 2026?
- H2 Politics
- H3 Why Eric Swalwell and Tony Gonzales chose to resign
- H4 Rep. Suhas Subramanyam, D-Va., on ethics and the resignations of 2 congressmen
- H3 Eric Swalwell resigns. What's next for California politics? KQED
- H3 Maine Gov. Janet Mills says she's still the best candidate to defeat Sen. Susan Collins
- H2 Word of the week
- H3 No one likes being discombobulated. How did the feeling get such a fun name?
- H2 Health
- H3 They counted on a rural dialysis unit to keep them alive. Then it closed
- H4 Special rural health funding not enough to keep some health facilities open
- H2 It's Been a Minute
- H3 Listen: The casino-ification of literally everything
- H4 The casino-ification of literally everything
- H2 Obituaries
- H3 Visionary NPR leader Kevin Klose, who led network to new heights, has died
- H3 Most-read stories
- H2 Health
- H3 She paid into Medicare for years. Trump's immigration policy will end her coverage
- H2 The Picture Show
- H3 Photos: NASA releases first images from moon flyby
- H2 Middle East conflict
- H3 What has the U.S. war with Iran accomplished?
- H2 Africa
- H3 'Humiliated, broken, powerless': Sudan enters a fourth year of war
- H4 'Humiliated, broken, powerless': Sudan enters fourth year of war
- H3 Listen: Gaza commanded our attention. Why hasn't Sudan?
- H2 World
- H3 A raffle winner is thrilled to claim a $1 million Picasso with a $117 ticket
- H2 Global Health
- H3 Fela Kuti is the first African artist to enter the Rock & Roll Hall of Fame
- H3 The Rock & Roll Hall of Fame's class of 2026 includes Phil Collins, Oasis and Sade
- H2 Weather
- H3 Super Typhoon Sinlaku pounds remote U.S. islands in the Pacific Ocean
- H2 Climate
- H3 The Iran war created a global natural gas shortage — a windfall for U.S. companies
- H4 The Iran war created a global natural gas shortage — a windfall for U.S. companies
- H2 Elections
- H3 Virginia joins a national effort to ensure only popular vote winners become president
- H2 Health
- H3 A historic decline in U.S. overdose deaths is threatened by a changing street drug supply
- H2 Europe
- H3 5 things to know about Péter Magyar, Hungary's new prime minister
- H2 National
- H3 Listen: After a backlash, Trump deleted a post depicting him as a Jesus-like figure
- H4 After backlash, Trump deletes post depicting him as Jesus-like figure
- H3 Short Wave podcast: Revealing the science behind everyday mysteries
- H2 Short Wave
- H3 Quantum science research is full of promises. When will they happen?
- H4 SCI POD - Quantum with Katia
- H2 Short Wave
- H3 Is there still a gender gap in medical research?
- H4 Is there still a gender gap in medical research?
- H2 Short Wave
- H3 The joy of ice cream's texture
- H4 The Joy Of Ice Cream's Texture
- H2 Short Wave
- H3 Never had the flu? Scientists may know why
- H4 Never had the flu? Scientists may know why
- H2 Short Wave
- H3 Are you pooping all wrong?
- H4 Are you pooping all wrong?
- H2 Healthy or hype?
- H3 Can red light therapy really deliver a beauty and health glow-up? Here's the science
- H4 Is red light therapy healthy or all hype?
- H2 Planet Money Newsletter
- H3 The labor economics of 'Alien' — and its lessons for inequality on Earth
- H6 Read & Listen skipped
- H6 Connect
- H6 About NPR
- H6 Get Involved
Every page should have one H1 that describes the page content.
No H1 means screen-reader users can't identify the page's primary topic, and Google's content-extraction degrades.
Learn more ▾ ▴
The H1 is the document title for assistive tech and a strong signal to search engines about page topic. Pages without one force screen readers to fall back to the <title> attribute or page chrome. Add a single H1 that names the page's primary subject.
Source: WCAG 2.4.6 / Google Search Central
Skipping heading levels breaks the document outline. Screen readers may interpret missing levels as structural errors.
Skipping heading levels breaks the document outline — screen-reader users lose track of section nesting.
Learn more ▾ ▴
Screen reader users navigate by jumping between headings (H1 → H2 → H3). Skipping (H1 → H3) breaks the sense of hierarchy. Use sequential levels even if you don't like the default styling — restyle with CSS instead. WCAG 1.3.1 (Info and Relationships) treats this as an A failure.
Source: WCAG 2.1 SC 1.3.1 / W3C WAI
C404 Error PageActionCould not testREVIEW
404 page quality check not available.
CFavicon & BrandingAction6 icon(s) detectedREVIEW
CColor Contrast (Screenshot)Action20 text elements analyzed, 20 fail WCAG AAREVIEW
Analyzes text contrast against the actual rendered page, including background images, gradients, and overlays that CSS-based tools cannot detect.
Show all checked elements (20)
| Element | Ratio | Required | FG | BG | Result |
|---|---|---|---|---|---|
| h2 WATCH | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Popes have spoken ou… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Jury finds that Live… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Middle East conflict… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Quit a GLP-1? Plan t… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Actor Amanda Peet sa… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 'No peace': Nearly a… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 The Trump administra… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Once again, Presiden… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 How to reset your mo… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Tax season was suppo… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Exploring the green … | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Teens plead not guil… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Mannequin Pussy: Tin… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 The dos and don'ts o… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Burnout isn't just e… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Quiz: Are you too on… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 Why we procrastinate… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 These 5 big purchase… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
| h3 What to do when you'… | 2.56:1 | 3.0:1 | #000000 | #394F78 | Fail |
Methodology: The top 20 text elements by font size were checked. Background color was sampled from the desktop screenshot using a 5-point pattern. WCAG 2.1 AA requires 4.5:1 for normal text and 3:1 for large text.
A+Landmark Structure12 landmarksPASS
A+Form AccessibilityAll 26 controls labeledPASS
| Control | Type | Label | Method |
|---|---|---|---|
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
| input | input | Embed | none |
ALighthouse Accessibility AuditsScore 90/100 — 2 failing, 19 passedPASS
Accessibility
These checks highlight opportunities to improve the accessibility of your web app. Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so manual testing is also encouraged.
ARIA
ARIA dialog elements without accessible names may prevent screen readers users from discerning the purpose of these elements. Learn how to make ARIA dialog elements more accessible.
Informational: a Permissions-Policy directive showing feature -> allowed origins.
Source: MDN Permissions-Policy
| Failing Elements |
|---|
body#news > div.tp-modal > div.tp-iframe-wrapper body#news > div.tp-modal > div.tp-iframe-wrapper |
These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader.
Names and labels
Screen reader users rely on frame titles to describe the contents of frames. Learn more about frame titles.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
body#news > div.tp-modal > div.tp-iframe-wrapper > iframe#offer_4a6cd0375285d682ea0c-0 body#news > div.tp-modal > div.tp-iframe-wrapper > iframe#offer_4a6cd0375285d682ea0c-0 |
These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.