Skip to content
https://npr.org

Accessibility

· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.
SCORE
50
GRADE
F
FIX
6
REVIEW
4
PASS
3
INFO
0
Checks
13
3 PASS 4 REVIEW 6 FIX
F
Alt Text Quality
Action
56 of 194 images have issues
FIX
56 of 194 images have issues
Critical::
48 image(s) missing alt attribute
Images without alt text are invisible to screen readers.
Critical::
48 image-in-link without alt text
An image inside a link with no alt creates an empty link.
Warning::
8 image(s) with filename as alt text
Info::
57 image(s) with alt text over 125 characters
Info::
14 decorative image(s) correctly marked
Info::
67 image(s) with good alt text
194 images 67 good alt text 14 decorative 8 generic 48 missing
IssueCount
missing48 image(s)
filename8 image(s)
too long57 image(s)

Images without alt text are invisible to screen readers.

Why this matters

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.

Why this matters

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

D
Web Manifest
Action
Not found
FIX
Not found
Info::
No web manifest found
No manifest at standard paths (/manifest.json, /site.webmanifest). A manifest is optional but enables PWA features like home screen installation and standalone display.

No web manifest found.

D
Dark Mode Support
Action
No dark mode signals
FIX
No dark mode signals
Info::
No dark mode signals detected
Consider adding CSS with @media (prefers-color-scheme: dark) and <meta name='color-scheme' content='light dark'>.
Info::
Detection limited to meta tags and inline styles
External CSS files may contain prefers-color-scheme rules not visible to this scan.
Dark ModeNo Dark Mode Detected
color-scheme meta Not set Dark theme-color Not set CSS indicators Not detected

Detection limited to meta tags and inline styles.

D
Print Stylesheet
Action
No print styles
FIX
No print styles
Info::
No print-specific styles detected
When users print this page, they get the screen layout including navigation and non-essential elements. Add @media print rules to hide navigation and optimize layout for paper.
Print Stylesheet No Print Styles
Print stylesheet Not found Inline @media print Not detected
F
Navigation UX
Action
1 navigation pattern(s)
FIX
1 navigation pattern(s)
Info::
Skip navigation link detected
Info::
1 navigation landmark(s) detected
Breadcrumbs
Search
Skip Link Skip link detected
Labeled Navigation 1 <nav> element(s)
Back to Top
Hamburger Menu
Sticky Navigation Cannot reliably detect (CSS-based)
2 of 6 testable patterns navigation patterns detected. Limited navigation support. Consider adding breadcrumbs, search, and skip link.
C
Heading Hierarchy
Action
135 headings, 1 skip(s)
REVIEW
135 headings, 1 skip(s)
Critical::
No H1 heading found
Every page should have one H1 that describes the page content.
Warning::
Heading level skipped: H3 → H6 (missing H4)
Skipping heading levels breaks the document outline. Screen readers may interpret missing levels as structural errors.
  • 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.

Why this matters

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.

Why this matters

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

C
404 Error Page
Action
Could not test
REVIEW
Could not test
Info::
404 page could not be tested
The 404 page check encountered an error. This may be due to a timeout or network issue.

404 page quality check not available.

C
Favicon & Branding
Action
6 icon(s) detected
REVIEW
6 icon(s) detected
Warning::
No favicon.ico at site root
Some older browsers, bookmark tools, and RSS readers look for /favicon.ico. Add one as a fallback.
Info::
HTML icon links detected
Info::
Apple touch icon present
Info::
Multiple icon sizes detected
favicon.ico Missing
PNG Icons Present
Apple Touch Present
SVG Favicon Missing
Manifest Icons Missing
Multiple Sizes Present
C
Color Contrast (Screenshot)
Action
20 text elements analyzed, 20 fail WCAG AA
REVIEW

Analyzes text contrast against the actual rendered page, including background images, gradients, and overlays that CSS-based tools cannot detect.

0 pass 20 fail WCAG AA
h2 WATCH
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
24px · bottom of viewport
h3 Popes have spoken out on politics before…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Jury finds that Live Nation acted as a m…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Middle East conflict causes a fluoride s…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Quit a GLP-1? Plan to start again? It's …
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Actor Amanda Peet says she's 'cancer-fre…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 'No peace': Nearly a year after her son'…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 The Trump administration moves to erase …
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Once again, President Trump threatens to…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 How to reset your mood in 12 songs
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Tax season was supposed to bring big ref…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Exploring the green side of Rio de Janei…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Teens plead not guilty to Islamic State-…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Mannequin Pussy: Tiny Desk Concert
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 The dos and don'ts of starting a running…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Burnout isn't just exhaustion. Here's ho…
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Quiz: Are you too online?
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 Why we procrastinate — and how to stop
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 These 5 big purchases can save energy …
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
h3 What to do when you're constipated
2.56:1
#000000
on
#394F78
needs 3.0:1 (large text)
19px · bottom of viewport
Show all checked elements (20)
ElementRatioRequiredFGBGResult
h2 WATCH2.56:13.0:1
#000000
#394F78
Fail
h3 Popes have spoken ou…2.56:13.0:1
#000000
#394F78
Fail
h3 Jury finds that Live…2.56:13.0:1
#000000
#394F78
Fail
h3 Middle East conflict…2.56:13.0:1
#000000
#394F78
Fail
h3 Quit a GLP-1? Plan t…2.56:13.0:1
#000000
#394F78
Fail
h3 Actor Amanda Peet sa…2.56:13.0:1
#000000
#394F78
Fail
h3 'No peace': Nearly a…2.56:13.0:1
#000000
#394F78
Fail
h3 The Trump administra…2.56:13.0:1
#000000
#394F78
Fail
h3 Once again, Presiden…2.56:13.0:1
#000000
#394F78
Fail
h3 How to reset your mo…2.56:13.0:1
#000000
#394F78
Fail
h3 Tax season was suppo…2.56:13.0:1
#000000
#394F78
Fail
h3 Exploring the green …2.56:13.0:1
#000000
#394F78
Fail
h3 Teens plead not guil…2.56:13.0:1
#000000
#394F78
Fail
h3 Mannequin Pussy: Tin…2.56:13.0:1
#000000
#394F78
Fail
h3 The dos and don'ts o…2.56:13.0:1
#000000
#394F78
Fail
h3 Burnout isn't just e…2.56:13.0:1
#000000
#394F78
Fail
h3 Quiz: Are you too on…2.56:13.0:1
#000000
#394F78
Fail
h3 Why we procrastinate…2.56:13.0:1
#000000
#394F78
Fail
h3 These 5 big purchase…2.56:13.0:1
#000000
#394F78
Fail
h3 What to do when you'…2.56:13.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 Structure
12 landmarks
PASS
12 landmarks
Info::
<main> landmark present
Info::
1 <nav> landmark(s) found
Info::
Skip navigation link present
Page Structure — as a screen reader sees it
BANNER header NAV MAIN ASIDE "advertisement" CONTENTINFO footer
A+
Form Accessibility
All 26 controls labeled
PASS
All 26 controls labeled
Info::
26 control(s) properly labeled
26 controls
26 labeled
0 placeholder only
0 unlabeled
ControlTypeLabelMethod
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
inputinputEmbednone
A
Lighthouse Accessibility Audits
Score 90/100 — 2 failing, 19 passed
PASS
90

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.

Why this matters

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.

Why this matters

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.

Interactive controls are keyboard focusable
Interactive elements indicate their purpose and state
The page has a logical tab order
Visual order on the page follows DOM order
User focus is not accidentally trapped in a region
The user's focus is directed to new content added to the page
HTML5 landmark elements are used to improve navigation
Offscreen content is hidden from assistive technology
Custom controls have associated labels
Custom controls have ARIA roles
`[aria-*]` attributes match their roles
`[aria-hidden="true"]` is not present on the document `<body>`
`[role]`s have all required `[aria-*]` attributes
`[role]` values are valid
`[aria-*]` attributes have valid values
`[aria-*]` attributes are valid and not misspelled
`[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5.
ARIA attributes are used as specified for the element's role
`[aria-hidden="true"]` elements do not contain focusable descendents
Elements use only permitted ARIA attributes
Background and foreground colors have a sufficient contrast ratio
Document has a `<title>` element
`<html>` element has a `[lang]` attribute
`<html>` element has a valid value for its `[lang]` attribute
No element has a `[tabindex]` value greater than 0
Document has a main landmark.
Deprecated ARIA roles were not used
ARIA IDs are unique
Uses ARIA roles only on compatible elements
`[accesskey]` values are unique
`button`, `link`, and `menuitem` elements have accessible names
ARIA input fields have accessible names
ARIA `meter` elements have accessible names
ARIA `progressbar` elements have accessible names
Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.
`[role]`s are contained by their required parent element
Elements with the `role=text` attribute do not have focusable descendents.
ARIA toggle fields have accessible names
ARIA `tooltip` elements have accessible names
ARIA `treeitem` elements have accessible names
Buttons have an accessible name
The page contains a heading, skip link, or landmark region
`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.
Definition list items are wrapped in `<dl>` elements
No form fields have multiple labels
Heading elements appear in a sequentially-descending order
`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute.
Image elements have `[alt]` attributes
Input buttons have discernible text.
`<input type="image">` elements have `[alt]` text
Form elements have associated labels
Links are distinguishable without relying on color.
Links have a discernible name
Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).
List items (`<li>`) are contained within `<ul>`, `<ol>` or `<menu>` parent elements
The document does not use `<meta http-equiv="refresh">`
`<object>` elements have alternate text
Select elements have associated label elements.
Skip links are focusable.
Touch targets have sufficient size and spacing.
Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table.
`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe.
`[lang]` attributes have a valid value
`<video>` elements contain a `<track>` element with `[kind="captions"]`
Tables have different content in the summary attribute and `<caption>`.
All heading elements contain content.
Image elements do not have `[alt]` attributes that are redundant text.
Identical links have the same purpose.
Elements with visible text labels have matching accessible names.
Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption.
`<td>` elements in a large `<table>` have one or more table headers.
All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback