Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.FAlt Text QualityAction4 of 37 images have issuesFIX
| Issue | Count |
|---|---|
| missing | 3 image(s) |
| generic | 1 image(s) |
| too long | 20 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
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
CLink & Button QualityAction3 issue(s) across 259 links and 9 buttonsREVIEW
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://www.medianewsgroup.com/privacy-p… | Data Storage Policy | new tab | Add '(opens in new tab)' to text |
| https://business.safety.google/privacy/ | Google Privacy Policy | new tab | Add '(opens in new tab)' to text |
| http://www.accuweather.com/en/us/boston-… | Current temperature is 42°F, … | new tab | Add '(opens in new tab)' to text |
| https://enewspaper.bostonherald.com/ | E-Edition | new tab | Add '(opens in new tab)' to text |
| (empty) | empty | Add link text or aria-label | |
| http://www.accuweather.com/en/us/boston-… | Current temperature is 42°F, … | new tab | Add '(opens in new tab)' to text |
| https://enewspaper.bostonherald.com/ | E-Edition | new tab | Add '(opens in new tab)' to text |
| https://www.bostonherald.com/wp-content/… | (empty) | empty | Add link text or aria-label |
| https://www.bostonherald.com/2026/01/07/… | (empty) | empty | Add link text or aria-label |
Links without text are announced as raw URLs by screen readers.
a#push-email-link; https://www.bostonherald.com/wp-content/uploads/2026/04/BHR-L-frontpage-26042…; https://www.bostonherald.com/2026/01/07/2025-massachusetts-state-employee-pay…
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
Add '(opens in new tab)' to link text or aria-label.
https://www.medianewsgroup.com/privacy-policy/; https://business.safety.google/privacy/; http://www.accuweather.com/en/us/boston-ma/02108/current-weather/788_pc?lang=…; https://enewspaper.bostonherald.com/; http://www.accuweather.com/en/us/boston-ma/02108/current-weather/788_pc?lang=…; https://enewspaper.bostonherald.com/
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
B404 Error PageHTTP 404, custom pageREVIEW
BFavicon & Branding4 icon(s) detectedREVIEW
BLighthouse Accessibility AuditsScore 88/100 — 3 failing, 24 passedREVIEW
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.
Names and labels
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. Learn more about the `alt` attribute.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
aside.sidebar-ad-container > div.dfm-sidebar-top-flex-container > a > img aside.sidebar-ad-container > div.dfm-sidebar-top-flex-container > a > img |
div.three-one-right > div.dfm-sidebar-bottom-flex-container > a > img div.three-one-right > div.dfm-sidebar-bottom-flex-container > a > img |
body.home > img#06db9294 body.home > img#06db9294 |
Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. Learn how to make links accessible.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
section.feature-primary > aside.sidebar-ad-container > div.dfm-sidebar-top-flex-container > a section.feature-primary > aside.sidebar-ad-container > div.dfm-sidebar-top-flex-container > a |
div.landing-three-one > div.three-one-right > div.dfm-sidebar-bottom-flex-container > a div.landing-three-one > div.three-one-right > div.dfm-sidebar-bottom-flex-container > a |
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.
Best practices
Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. Learn more about touch targets.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
li.media-feature-secondary > article.slideshow > figure > a.icon-slideshow li.media-feature-secondary > article.slideshow > figure > a.icon-slideshow |
li.media-feature-secondary > article.slideshow > figure > a.icon-slideshow li.media-feature-secondary > article.slideshow > figure > a.icon-slideshow |
li.media-feature-secondary > article.slideshow > figure > a.icon-slideshow li.media-feature-secondary > article.slideshow > figure > a.icon-slideshow |
These items highlight common accessibility best practices.
ALandmark Structure70 landmarksPASS
Multiple navigations need aria-label to distinguish them for screen readers.
Some <nav> elements lack aria-label — screen-reader users hear 'navigation' multiple times with no way to distinguish them.
Learn more ▾ ▴
When a page has multiple <nav> regions (primary, footer, breadcrumb), each needs aria-label or aria-labelledby. AT users navigate by landmark; identical 'navigation' announcements force them to enter each one to discover purpose.
Source: WAI-ARIA Authoring Practices
AHeading Hierarchy82 headingsPASS
- H1 Boston Herald
- H1 (empty)
- H2 Breaking News
- H3 The Latest: Trump says he is extending the ceasefire with Iran as talks are in doubt
- H2 Featured
- H3 Patriots HC Mike Vrabel breaks silence on ‘personal and private matter’
- H3 Related
- H4 How Mike Vrabel addressed latest Patriots-A.J. Brown trade reports
- H4 Selecting one edge rusher for Patriots in each round of 2026 NFL Draft
- H4 NFL Notes: Sources see Patriots picking in 2026 draft ‘sweet spot’ at No. 31
- H3 Boston organization returns queer migrant wellness grant funding to city after backlash
- H3 Babylon Bee CEO Seth Dillon named keynote speaker for MassGOP convention
- H3 Duxbury’s Delby Lemieux makes major change in hopes of NFL draft call
- H3 Reynolds: Boston Marathon community outweighs individual performance
- H2 Latest Headlines
- H3 Boston City Hall FIFA fan festival will be free, but expected to drive ‘hundreds of millions’ into local economy
- H3 Battenfeld: Inflation putting a squeeze on Trump
- H3 Editorial: Wellness grants and block party $$ show Boston needs an audit
- H3 Red Sox needed speed and unexpected hero delivered: ‘That’s game awareness’
- H3 ‘I was getting ready to crawl’: Boston Marathoners come to fellow runners rescue
- H3 Selecting one edge rusher for Patriots in each round of 2026 NFL Draft
- H3 130th Boston Marathon: Runners, families, friends bring stories to course
- H2 Most Popular
- H2 Sports
- H3 Yankees’ Cam Schlittler unfazed by death threats ahead of first Fenway start
- H3 Mike Vrabel confirms Patriots WR was absent from workouts amid trade rumors
- H3 Red Sox right-hander provides update on injured elbow
- H3 After missing 2024 title, newest Celtic ‘blessed’ to be back for playoff run
- H2 Opinion Columnists
- H3 Gaskin: Earth Day in a “drill baby, drill” world
- H3 Ganzert: AI can be game-changer for animals
- H3 Belsito, Dublois: Mass. welfare programs on collision course with reality
- H3 Locke: Financial literacy extends to housing policies
- H2 Local News
- H3 Boston Marathon live blog: John Korir, Sharon Lokedi back-to-back champions
- H3 The Battle of Lexington: The honor and costume of reenacting the Revolution
- H3 School Committee advances proposal for new Mel King Academy school building
- H3 Police Blotter: 17 charged in Randolph ‘street takeover’
- H2 Photos and Videos
- H3 Boston Marathon photo gallery
- H3 Boston Legacy FC and Stop & Shop Team Up to Fight Hunger
- H3 Romneycare takes a lap
- H3 Belles of the Ball
- H3 Spring in Boston (Photos)
- H3 Nasturtiums are hung at the Isabella Stewart Gardner Museum
- H3 Bruins’ home win streak halted at 13 with loss to Sharks
- H3 Brody Bumila cements legacy, leads Bishop Feehan to Div. 1 title game
- H3 Third-period push leads Burlington to semifinals, ends Concord-Carlisle’s run
- H3 Celtics blown out by red-hot Hornets in potential playoff preview
- H3 BC High soars into quarterfinals with statement win over Brockton
- H3 Oliver Ames sneaks past North Attleboro in instant classic
- H2 Business
- H3 Stocks slip and oil prices rise on uncertainty about US-Iran ceasefire talks
- H3 Retail sales up 1.7% in March from February driven by a spike in gas prices due to the Iran war
- H3 Ticker: Retail sales up 1.7% in March; Small business winner
- H3 Trump media company replaces CEO, ex-congressman Nunes after stock plunge that wiped out billions
- H2 Entertainment
- H3 Robert Aramayo explores the man behind the tics in ‘I Swear’
- H3 Dear Abby: Nick cut me off, but I want back in
- H3 Ben McKenzie takes on crypto in “Everyone Is Lying To You For Money”
- H3 Dear Abby: Dad takes daughter’s college $$ for himself
- H2 network
- H3 No cuddles, but lots of care: How a Paris-area wildlife hospital keeps rescued animals wild
- H3 Trump renews his call for Congress to intervene and pass legislation to control college sports
- H3 Navy review puts future of highest-tech US aircraft carriers in question
- H3 Billionaire investor warns sports prediction markets harm men
- H2 Best Reviews
- H3 These mesmerizing lava lamps create a calming retro atmosphere
- H3 These premium calf massagers provide professional relief at home
- H3 These professional poker tables bring the casino experience home
- H3 These high-performance LED headlights provide instant full road brightness
- H2 Opinion
- H3 Lucas: Healey hazy on transparency
- H3 Editorial: Tax burden just one way to evaluate Mass.
- H3 Howie Carr: Yet another fake ‘Boston Man’ roughs up citizens
- H3 Davies: Who owns the moon — and who should
- H2 National Politics
- H3 In reversal, Justice Department withdraws subpoenas in John Brennan investigation, AP sources say
- H3 Dr. Oz announces a 50-state audit of Medicaid program oversight
- H3 Trump’s approval on economy falls in poll, showing new warning signs for president
- H3 Federal judge strikes down some Trump administration actions that have slowed clean energy projects
- H2 Events
A page should have only one H1. Multiple H1s dilute the document outline.
Multiple H1s blur the page's primary topic — screen-reader users and Google both prefer one H1.
Learn more ▾ ▴
HTML5's outline algorithm technically allows multiple H1s within sectioning content, but no browser implements it. In practice: one H1 per page. Use H2-H6 for subsections.
Source: WCAG 2.4.6 / Google Search Central
Empty headings appear in the document outline but provide no information.
Empty <hN> tags break the document outline — screen-reader users navigating by heading hit dead silence.
Source: WCAG 2.4.6
AForm Accessibility1 of 6 controls have issuesPASS
| Control | Type | Label | Method |
|---|---|---|---|
| #osano-cm-dialog-toggle--category_STORAGE | checkbox | none | |
| #osano-cm-dialog-toggle--category_MARKETING | checkbox | none | |
| #osano-cm-dialog-toggle--category_PERSONALIZATION | checkbox | none | |
| #osano-cm-dialog-toggle--category_ANALYTICS | checkbox | none | |
| #mng-search-focus | text | Type your search | aria-label |
| #push-user-spoof-control | checkbox | (none) | none |
Form controls need a <label>, aria-label, or aria-labelledby for screen readers.
<input type="checkbox" id="push-user-spoof-control">
Form controls without labels — assistive tech announces 'edit text' with no context; users can't complete forms.
Source: WCAG 2.1 SC 3.3.2
A+Color Contrast (Screenshot)20 text elements analyzed, 0 fail WCAG AAPASS
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 |
|---|---|---|---|---|---|
| h1 Boston Herald | 18.43:1 | 3.0:1 | #000000 | #F0F0F0 | Pass |
| h2 Breaking News | 18.43:1 | 3.0:1 | #000000 | #F0F0F0 | Pass |
| h2 Featured | 18.43:1 | 3.0:1 | #000000 | #F0F0F0 | Pass |
| h2 Most Popular | 18.43:1 | 3.0:1 | #000000 | #F0F0F0 | Pass |
| h2 Events | 18.43:1 | 3.0:1 | #000000 | #F0F0F0 | Pass |
| h3 Related | 18.43:1 | 3.0:1 | #000000 | #F0F0F0 | Pass |
| title Boston Herald - Bost… | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| span Opens in a new windo… | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| span Opens an external we… | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| span Opens an external we… | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| span We and our 36 IAB TC… | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| span Personal data may be… | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| span Our third party IAB … | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| span You may change your … | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| span You may close this b… | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| a Data Storage Policy | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| a Google Privacy Polic… | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| a Storage Preferences | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| a Third Parties | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
| span Storage | 20.12:1 | 4.5:1 | #000000 | #FAFAFA | Pass |
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.