Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.DAlt Text QualityAction35 of 85 images have issuesFIX
| Issue | Count |
|---|---|
| missing | 2 image(s) |
| generic | 33 image(s) |
| too long | 7 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
DLink & Button QualityAction5 issue(s) across 305 links and 23 buttonsFIX
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://www.nbcbayarea.com/weather/?__os… | (empty) | empty | Add link text or aria-label |
| https://www.facebook.com/NBCBayArea | new tab | Add '(opens in new tab)' to text | |
| https://instagram.com/nbcbayarea | new tab | Add '(opens in new tab)' to text | |
| https://www.tiktok.com/@nbcbayarea | TikTok | new tab | Add '(opens in new tab)' to text |
| https://www.youtube.com/@nbcbayarea | Youtube | new tab | Add '(opens in new tab)' to text |
| https://www.nbcuniversal.com/privacy/?br… | Privacy Policy | new tab | Add '(opens in new tab)' to text |
| https://www.nbcuniversal.com/privacy/cal… | CA Notice | new tab | Add '(opens in new tab)' to text |
| https://www.nbcuniversal.com/privacy/coo… | Ad Choices | new tab | Add '(opens in new tab)' to text |
| https://www.facebook.com/NBCBayArea | new tab | Add '(opens in new tab)' to text | |
| https://instagram.com/nbcbayarea | new tab | Add '(opens in new tab)' to text | |
| https://www.tiktok.com/@nbcbayarea | TikTok | new tab | Add '(opens in new tab)' to text |
| https://www.youtube.com/@nbcbayarea | Youtube | new tab | Add '(opens in new tab)' to text |
| https://corporate.comcast.com/privacy-re… | Related Businesses | new tab | Add '(opens in new tab)' to text |
| https://www.nbcuniversalprivacy.com/priv… | Privacy Policy | new tab | Add '(opens in new tab)' to text |
| https://www.nbcuniversalprivacy.com/priv… | here | generic text | Replace with descriptive text |
Before: here Suggested: Privacy#Accordionheader5 | |||
| https://corporate.comcast.com/privacy-re… | Related Businesses | new tab | Add '(opens in new tab)' to text |
| https://privacyportal.onetrust.com/webfo… | Opt-Out Form | new tab | Add '(opens in new tab)' to text |
| https://www.onetrust.com/products/cookie… | Powered by OneTrust Opens in a… | 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 |
Links without text are announced as raw URLs by screen readers.
https://www.nbcbayarea.com/weather/?__osource=wtvj_weather_widget
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
Generic link text like 'click here' doesn't describe the destination.
https://www.nbcuniversalprivacy.com/privacy#accordionheader5 ("here")
Generic anchor text ('click here', 'read more', 'learn more') tells screen readers and search engines nothing about the destination.
Learn more ▾ ▴
Out-of-context lists of links read by AT (one navigation pattern) become useless when every link says 'click here'. Use the destination's title or topic as anchor text. Doubles as SEO win — Google passes anchor-text relevance to the destination.
Source: WCAG 2.4.4 / Google Search Central
Add '(opens in new tab)' to link text or aria-label.
https://www.facebook.com/NBCBayArea; https://instagram.com/nbcbayarea; https://www.tiktok.com/@nbcbayarea; https://www.youtube.com/@nbcbayarea; https://www.nbcuniversal.com/privacy/?brandA=Owned_Stations&intake=NBC_Bay_Area/; https://www.nbcuniversal.com/privacy/california-consumer-privacy-act?intake=N…; https://www.nbcuniversal.com/privacy/cookies#accordionheader2; https://www.facebook.com/NBCBayArea; https://instagram.com/nbcbayarea; https://www.tiktok.com/@nbcbayarea (+6 more)
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 (#3071 on page); button (#3081 on page); button (#3102 on page)
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
F404 Error PageActionSoft 404 detectedFIX
The server returned HTTP 200 for a non-existent path. Search engines will index this page as real content. Configure your server to return HTTP 404 for missing pages.
FWeb ManifestActionInvalid JSONFIX
Manifest contains invalid JSON.
DDark Mode SupportActionNo dark mode signalsFIX
Detection limited to meta tags and inline styles.
DPrint StylesheetActionNo print stylesFIX
BHeading Hierarchy113 headingsREVIEW
- H3 1-year-old boy dies after being struck by car in San Jose
- H3 Leading candidates to square off in TV debate at critical point in California governor...
- H3 SF sets $3.4 billion price tag for public takeover of PG&E
- H3 Spirit Airlines nears deal with Trump administration for $500 million rescue package
- H3 Watch: NBC Bay Area News 24/7
- H3 Federal appeals court blocks California law requiring federal agents to wear identific...
- H3 2 hospitalized after 2-alarm house fire in Saratoga
- H3 Kalshi fines and suspends three politicians for insider trading on their own e...
- H3 Parents seek answers after toddler's death at San Francisco day care
- H3 Insurance crisis: CA lawmakers aim to address climate change, coverage concern...
- H3 Local
- H3 New fleet of delivery robots begin service in San Jose
- H3 Getting messages about unpaid tickets? Don't believe 'em, CHP says
- H3 SFMTA cuts fine for drivers who fail to curb wheels on hills
- H3 Most Read
- H3 1-year-old boy dies after being struck by car in San Jose
- H3 SF sets $3.4 billion price tag for public takeover of PG&E
- H3 Leading candidates to square off in TV debate at critical point in California governor's race
- H3 2 hospitalized after 2-alarm house fire in Saratoga
- H3 Aggressive coyotes reported in Redwood City
- H3 Santa Clara County Sheriff's Office arrests 4 suspected of organized retail theft
- H3 Federal appeals court blocks California law requiring federal agents to wear identific...
- H3 2 hospitalized after 2-alarm house fire in Saratoga
- H3 Kalshi fines and suspends three politicians for insider trading on their own e...
- H3 Parents seek answers after toddler's death at San Francisco day care
- H3 Insurance crisis: CA lawmakers aim to address climate change, coverage concern...
- H2 Top Videos
- H2 Young boy dies after being struck by car in San Jose parking area
- H3 More
- H4 Parents seek answers after toddler's death at San Francisco daycare
- H4 SF sets $3.4 billion price tag for public takeover of PG&E
- H4 Aggressive coyotes reported in Redwood City
- H4 Insurance crisis: CA lawmakers aim to address climate change, coverage concerns
- H2 NBA News & Highlights
- H3 Where Warriors' financial situation stands entering pivotal 2026 NBA offseason
- H3 Todd Golden ‘planning' to coach Florida amid rumors to replace Steve Kerr
- H3 NBA highlights: Lakers 101, Rockets 94
- H2 Politics
- H3 Pentagon says Navy Secretary John Phelan is leaving, in latest departure of a top defense leader
- H3 President Trump extends ceasefire with Iran
- H3 Virginia voters approve Democrats' redistricting plan, giving the party a midterm election boost
- H2 The Investigative Unit
- H3 SF couple facing murder charges in toddler's fentanyl overdose death skip court hearing
- H3 Family demands answers after toddler dies at in-home day care in San Francisco
- H3 2 rush hour commutes snarled by disabled BART trains
- H2 NBC Bay Area Responds
- H3 Debit cards with millions of dollars expire April 30. Check your junk drawers now
- H3 Can renting an RV help rescue a budget vacation, despite higher gas prices?
- H3 Family fights lengthy, roughly $20K long-term care insurance battle
- H2 Making It In The Bay
- H3 San Francisco tops US housing market as homes sell far over asking, report says
- H3 San Francisco, San Jose among top 5 priciest U.S. markets for rent, report says
- H3 California considering a first of its kind idea to boost factory-built housing
- H2 How To Explainers
- H3 How to delete big data
- H3 How to double and protect your Giving Tuesday donation
- H3 How to check for flight information and delays
- H2 California
- H3 Los Angeles school district first to require student screen time limits
- H3 Cause of death revealed for ‘Call of Duty' creator Vince Zampella in Ferrari crash
- H3 Tourism, climate change threaten Lake Tahoe water quality
- H2 U.S. & World
- H3 Teen found in singer D4vd's trunk died from ‘multiple penetrating injuries,' officials say
- H3 More kids than ever are attending state-funded preschool, with California's surge leading the way
- H3 Scott Galloway calls out this 1 parenting style as a major driver of depression in teens
- H2 Sports
- H3 Predicting all six of 49ers' 2026 NFL Draft picks in annual seven-round mock
- H3 Dodgers' Dalton Rushing goes viral again for Jung Hoo Lee injury reaction
- H3 Landen Roupp outshines World Series MVP Yoshinobu Yamamoto in Giants' win
- H2 Bay Area Proud
- H3 “Hope doesn't come with a price tag”: School staff member makes prom dreams come true
- H3 Teen honors late brother by getting childhood cancer research added to California tax form
- H3 Rewriting the ending: how a North Bay theater director is honoring forgotten WWI heroines
- H2 News
- H3 California Live
- H4 Check out the latest sustainable beauty finds, just in time for Earth Day!
- H4 “Breaking the Code” is the surprising documentary about breaking barriers in Silicon Valley and beyond
- H4 Inside an Earth Day chef collaboration at a hidden L.A. urban farm
- H3 Press Here
- H4 AI and the art of war
- H4 Defending the digital age
- H4 Spin the patient, not the machine
- H3 Race in America
- H4 Race in America: Identity and History
- H4 Journalist Jose Antonio Vargas talks openly about undocumented life
- H4 Race in America: Inside San Quentin
- H3 Overpriced, Overwhelmed, Over It
- H4 Watch Episode 1: Overpriced, Overwhelmed, Over it! California's Crazy Housing
- H4 Watch Episode 2: Overpriced, Overwhelmed, Over It! California's Crazy Housing
- H4 Watch Episode 3: Overpriced, Overwhelmed, Over It! California's Crazy Housing
- H3 Saving San Francisco
- H4 James Durgin of ‘Saving Francisco' in jail after local and federal warrants issued for his arrest
- H4 James Durgin of ‘Saving San Francisco' wanted by local and federal officers, again
- H4 James Durgin of ‘Saving San Francisco' wanted by police
- H3 The Moms of Magnolia Street
- H4 Extended Trailer: ‘The Moms of Magnolia Street' Documentary
- H4 ‘The Moms of Magnolia Street' Episode 1: The Moms Take a Stand
- H4 ‘The Moms of Magnolia Street' Episode 2: Moms vs. The Corporation
- H3 Derailed
- H4 Behind Season 2 of Our Digital Series ‘DERAILED'
- H4 ‘Derailed' Season 2 Prologue: BART in Crisis
- H4 BART ‘Derailed' Season 2 Ch. 1: “It Does Feel Eerie”
- H3 No Man's Land
- H4 No Man's Land Ch. 1: Single and Homeless With a Baby
- H4 No Man's Land Ch. 2: Crime and Punishment
- H4 No Man's Land Ch. 3: Dinosaurs, Predators and Housing
- H4 Follow Us
- H2 Your Privacy Choices: Opt-out of sale or sharing of personal information and opt out of targeted ads
- H3 Manage Preferences:
- H4 Other Categories of Data Collection
- H4 Allow Sale/Share/Targeted Ads
- H4 Opt-Out Form
- H3 Cookie List
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
CForm AccessibilityAction5 of 13 controls have issuesREVIEW
| Control | Type | Label | Method |
|---|---|---|---|
| s | search | Search for: | none |
| s | search | Search for: | none |
| #ot-group-id-SPD_BG | checkbox | Allow Sale/Share/Targeted Ads | for/id |
| #vendor-search-handler | text | Cookie list search | aria-label |
| #chkbox-id | checkbox | checkbox label | for/id |
| #select-all-hosts-groups-handler | checkbox | checkbox label | for/id |
| #select-all-vendor-groups-handler | checkbox | checkbox label | for/id |
| #select-all-vendor-leg-handler | checkbox | checkbox label | for/id |
| #seek | range | (none) | none |
| input | range | (none) | none |
| input | submit | (none) | none |
| input | submit | (none) | none |
| input | range | (none) | none |
Form controls need a <label>, aria-label, or aria-labelledby for screen readers.
<input type="submit">; <input type="range">; <input type="range" id="seek">; <input type="range">; <input type="submit">
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
BFavicon & Branding4 icon(s) detectedREVIEW
BLighthouse Accessibility AuditsScore 82/100 — 6 failing, 25 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.
ARIA
When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. Learn how to make command elements more accessible.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
div#home-fast-player > div.video-playlist__container > div.player > div.player__overlay div#home-fast-player > div.video-playlist__container > div.player > div.player__overlay |
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.
Contrast
Low-contrast text is difficult or impossible for many users to read. Learn how to provide sufficient color contrast.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
TRENDING div.site-header__secondary > div.site-header__wrap > div.site-header__trending > span.site-header__trending-label |
TONIGHT
48° div > div.weather-widget > div.tonight-tomorrow > div.tonight |
TOMORROW
72° div > div.weather-widget > div.tonight-tomorrow > div.tomorrow |
Copyright © 2026 NBCUniversal Media, LLC. All rights reserved footer.site-footer > div.site-footer__wrapper > div.site-footer__corporate > span.site-footer__corporate-copyright |
These are opportunities to improve the legibility of your content.
Navigation
Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. Learn more about heading order.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Parents seek answers after toddler's death at San Francisco daycare a > div.video-thumbnail__video > div.video-thumbnail__info > h4.video-thumbnail__video-title |
These are opportunities to improve keyboard navigation in your application.
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 |
|---|
div#homepage > div#template-hero > div.hero-background > img.hero-background__img div#homepage > div#template-hero > div.hero-background > img.hero-background__img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
div.nbc_owned_television_stations_weather_iframe > a > div.weather-module-brand > img.widget_logo div.nbc_owned_television_stations_weather_iframe > a > div.weather-module-brand > img.widget_logo |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
a.story-card__thumbnail > div.imagewrap1 > div.imagewrap2 > img |
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 |
|---|
div.top-stories-hero__wrapper > div.top-stories-hero__column-1 > div.story-card > a.story-card__thumbnail |
div.upper-featured-posts__wrapper > div.upper-featured-posts__column1 > div.story-card > a.story-card__thumbnail |
div.upper-featured-posts__wrapper > div.upper-featured-posts__column1 > div.story-card > a.story-card__thumbnail |
section#nbc_weather_widget-2 > div.nbc-weather-widget > div.nbc_owned_television_stations_weather_iframe > a section#nbc_weather_widget-2 > div.nbc-weather-widget > div.nbc_owned_television_stations_weather_iframe > a |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.news-module > div.news-module__column > div.story-card > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
div.homepage-categories__row > div.homepage-categories__category > div.homepage-categories__category-item > a.story-card__thumbnail |
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 |
|---|
Main Navigation div.site-header__wrap > div.site-header__nav-search > div.site-header__nav-main > button.site-header__nav-main-toggle |
SF PG&E takeover div.site-header__wrap > div.site-header__trending > nav.site-header__trending-nav > a.site-header__trending-nav-item |
Expand div.site-header__wrap > div.site-header__trending > div.site-header__trending-toggle > button.trending-toggle |
SAN JOSE div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
CALIFORNIA div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SAN FRANCISCO div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
AIRLINES div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SAN JOSE div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
CALIFORNIA HIGHWAY PATROL div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SAN FRANCISCO div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SAN JOSE div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SAN FRANCISCO div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
CALIFORNIA div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SARATOGA div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
REDWOOD CITY div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SARATOGA div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
GAMBLING div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SAN FRANCISCO div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
INSURANCE div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
NBA OFFSEASON div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
TODD GOLDEN div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
NBA div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
MILITARY div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
WAR WITH IRAN div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
DECISION 2026 div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SAN FRANCISCO div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
INVESTIGATIVE UNIT div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
INVESTIGATIVE UNIT div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
CALIFORNIA div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
RESPONDS div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
RESPONDS div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SAN FRANCISCO div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
MAKING IT IN THE BAY div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
HOUSING div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
CONSUMER div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
LAUSD div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
VIDEO GAMES div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
LAKE TAHOE div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
CRIME AND COURTS div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
SCHOOLS div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
MENTAL HEALTH div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
2026 NFL DRAFT div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
JUNG HOO LEE div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
LANDEN ROUPP div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
BAY AREA PROUD div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
BAY AREA PROUD div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
BAY AREA PROUD div.story-card__text > div.story-card__meta > span.story-card__meta-tag > a.story-card__meta-tag-link |
These items highlight common accessibility best practices.
ALandmark Structure21 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
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 |
|---|---|---|---|---|---|
| h2 Top Videos | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 NBA News & Highlight… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Politics | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 The Investigative Un… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 NBC Bay Area Respond… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Making It In The Bay | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 How To Explainers | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 California | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 U.S. & World | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Sports | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Bay Area Proud | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 News | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Your Privacy Choices… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Watch: NBC Bay Area … | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Local | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Most Read | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 More | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Manage Preferences: | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Cookie List | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| title NBC Bay Area – San… | 20.87:1 | 4.5:1 | #000000 | #FFFEFF | 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.