Accessibility
· 12 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.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
BHeading Hierarchy32 headingsREVIEW
- H2 DIY AI & ML: Solving The Multi-Armed Bandit Problem with Thompson Sampling
- H2 Git UNDO : How to Rewrite Git History with Confidence
- H2 Latest
- H2 How to Call Rust from Python
- H2 I Replaced GPT-4 with a Local SLM and My CI/CD Pipeline Stopped Failing
- H2 Your RAG Gets Confidently Wrong as Memory Grows – I Built the Memory Layer That Stops It
- H2 What Does the p-value Even Mean?
- H2 Context Payload Optimization for ICL-Based Tabular Foundation Models
- H2 The LLM Gamble
- H2 From Risk to Asset: Designing a Practical Data Strategy That Actually Works
- H2 Proxy-Pointer RAG: Structure Meets Scale at 100% Accuracy with Smarter Retrieval
- H2 Dreaming in Cubes
- H2 Editor’s Picks
- H2 AI Agents Need Their Own Desk, and Git Worktrees Give Them One
- H2 Beyond Prompting: Using Agent Skills in Data Science
- H2 A Practical Guide to Memory for Autonomous LLM Agents
- H2 What It Actually Takes to Run Code on 200M€ Supercomputer
- H2 Your Chunks Failed Your RAG in Production
- H2 Introduction to Deep Evidential Regression for Uncertainty Quantification
- H2 From OpenStreetMap to Power BI: Visualizing Wild Swimming Locations
- H2 A Practical Guide to Choosing the Right Quantum SDK
- H2 Range Over Depth: A Reflection on the Role of the Data Generalist
- H2 The Variable Newsletter
- H2 Exciting Changes Are Coming to the TDS Author Payment Program
- H2 TDS Newsletter: Vibe Coding Is Great. Until It’s Not.
- H2 Deep Dives
- H2 You Don’t Need Many Labels to Learn
- H2 memweave: Zero-Infra AI Agent Memory with Markdown and SQLite — No Vector Database Required
- H2 Prefill Is Compute-Bound. Decode Is Memory-Bound. Why Your GPU Shouldn’t Do Both.
- H2 From Pixels to DNA: Why the Future of Compression Is About Every Kind of Data
- H2 RAG Isn’t Enough — I Built the Missing Context Layer That Makes LLM Systems Work
- H2 Data Modeling for Analytics Engineers: The Complete Primer
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
BAlt Text Quality2 of 33 images have issuesREVIEW
| Issue | Count |
|---|---|
| missing | 2 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
C404 Error PageActionHTTP 404, custom pageREVIEW
BFavicon & Branding4 icon(s) detectedREVIEW
ALandmark Structure6 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+Form AccessibilityAll 1 controls labeledPASS
| Control | Type | Label | Method |
|---|---|---|---|
| #wp-block-search__input-4 | search | Search | for/id |
ALink & Button Quality108 links, 4 buttons — all OKPASS
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://www.linkedin.com/company/towards… | new tab | Add '(opens in new tab)' to text | |
| https://x.com/TDataScience | X | new tab | Add '(opens in new tab)' to text |
| https://www.youtube.com/c/TowardsDataSci… | YouTube | new tab | Add '(opens in new tab)' to text |
| https://x.com/TDataScience | X | new tab | Add '(opens in new tab)' to text |
| https://www.linkedin.com/company/towards… | new tab | Add '(opens in new tab)' to text | |
| https://www.threads.net/@towardsdatascie… | Threads | new tab | Add '(opens in new tab)' to text |
| https://bsky.app/profile/towardsdatascie… | Bluesky | new tab | Add '(opens in new tab)' to text |
Add '(opens in new tab)' to link text or aria-label.
https://www.linkedin.com/company/towards-data-science/?originalSubdomain=ca; https://x.com/TDataScience; https://www.youtube.com/c/TowardsDataScience; https://x.com/TDataScience; https://www.linkedin.com/company/towards-data-science/?originalSubdomain=ca; https://www.threads.net/@towardsdatascience; https://bsky.app/profile/towardsdatascience.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
A+Lighthouse Accessibility AuditsScore 100/100 — 0 failing, 27 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.