Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.FLink & Button QualityAction30 issue(s) across 226 links and 95 buttonsFIX
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://6sense.com/privacy-policy/ | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://6sense.com/privacy-policy/ | Legitimate interest disclosure | new tab | Add '(opens in new tab)' to text |
| https://veepee-ad.com/politique-confiden… | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://veepee-ad.com/politique-confiden… | Legitimate interest disclosure | new tab | Add '(opens in new tab)' to text |
| https://www.abcsinsights.com/privacy/ad-… | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://www.adyoulike.com/pages/privacy | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://www.adyoulike.com/pages/privacy | Legitimate interest disclosure | new tab | Add '(opens in new tab)' to text |
| https://www.adventori.com/fr/rgpd/ | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://www.adventori.com/fr/rgpd/ | Legitimate interest disclosure | new tab | Add '(opens in new tab)' to text |
| https://www.amillionads.com/privacy-poli… | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://www.amillionads.com/privacy-poli… | Legitimate interest disclosure | new tab | Add '(opens in new tab)' to text |
| https://virtualminds.com/platform-privac… | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://virtualminds.com/platform-privac… | Legitimate interest disclosure | new tab | Add '(opens in new tab)' to text |
| https://privacy.acuityads.com/corporate-… | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://privacy.acuityads.com/corporate-… | Legitimate interest disclosure | new tab | Add '(opens in new tab)' to text |
| http://adelement.com/privacy-policy.html | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://adelement.com/privacy-policy.htm… | Legitimate interest disclosure | new tab | Add '(opens in new tab)' to text |
| https://adara.com/privacy-promise/ | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://adara.com/privacy-promise/ | Legitimate interest disclosure | new tab | Add '(opens in new tab)' to text |
| https://www.condenast.com/privacy-policy | Privacy Policy | new tab | Add '(opens in new tab)' to text |
| https://ethyca.com/ | Powered by | new tab | Add '(opens in new tab)' to text |
| https://www.condenast.com/privacy-policy | Privacy Policy | new tab | Add '(opens in new tab)' to text |
| https://arstechnica.com/security/2026/04… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/tr… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/as… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/tr… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/as… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/ai/2026/04/resea… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/tech-policy/2026… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/la… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/fo… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/tech-policy/2026… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/ai/2026/04/googl… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/ai/2026/04/anthr… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/ai/2026/04/anthr… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/ar… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/ar… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/tech-policy/2026… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/tech-policy/2026… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/fo… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/space/2026/04/fo… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/gaming/2026/04/n… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/gaming/2026/04/n… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/tech-policy/2026… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/tech-policy/2026… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/tech-policy/2026… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/tech-policy/2026… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/staff/2026/04/a-… | (empty) | empty | Add link text or aria-label |
| https://arstechnica.com/staff/2026/04/a-… | (empty) | empty | Add link text or aria-label |
| / | (empty) | empty | Add link text or aria-label |
| mailto:adinquiries@condenast.com | Advertise with us | 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 |
Links without text are announced as raw URLs by screen readers.
https://arstechnica.com/security/2026/04/new-rowhammer-attacks-give-complete-control-of-machines-running-nvidia-gpus/; https://arstechnica.com/space/2026/04/trump-proposes-steep-cut-to-nasa-budget-as-astronauts-head-for-the-moon/; https://arstechnica.com/space/2026/04/as-artemis-ii-zooms-to-the-moon-everything-seems-to-be-going-swimmingly/; https://arstechnica.com/space/2026/04/trump-proposes-steep-cut-to-nasa-budget-as-astronauts-head-for-the-moon/; https://arstechnica.com/space/2026/04/as-artemis-ii-zooms-to-the-moon-everything-seems-to-be-going-swimmingly/; https://arstechnica.com/ai/2026/04/research-finds-ai-users-scarily-willing-to-surrender-their-cognition-to-llms/; https://arstechnica.com/tech-policy/2026/04/sad-trumps-ai-data-center-push-is-failing-blame-his-own-tariffs/; https://arstechnica.com/space/2026/04/launch-day-has-arrived-for-nasas-artemis-ii-mission-heres-what-to-expect/; https://arstechnica.com/space/2026/04/four-astronauts-are-now-inexorably-bound-for-the-moon/; https://arstechnica.com/tech-policy/2026/04/perplexitys-incognito-mode-is-a-sham-lawsuit-says/ (+18 more)
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://6sense.com/privacy-policy/; https://6sense.com/privacy-policy/; https://veepee-ad.com/politique-confidentialit%C3%A9-activit%C3%A9-publicitaire; https://veepee-ad.com/politique-confidentialit%C3%A9-activit%C3%A9-publicitaire; https://www.abcsinsights.com/privacy/ad-measurement; https://www.adyoulike.com/pages/privacy; https://www.adyoulike.com/pages/privacy; https://www.adventori.com/fr/rgpd/; https://www.adventori.com/fr/rgpd/; https://www.amillionads.com/privacy-policy (+13 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
DWeb ManifestActionNot foundFIX
No web manifest found.
DPrint StylesheetActionNo print stylesFIX
BLandmark Structure11 landmarksREVIEW
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
Add a skip link as the first focusable element so keyboard users can bypass repeated navigation.
Without a skip-nav link, keyboard users tab through every nav item before reaching content — every page, every visit.
Learn more ▾ ▴
WCAG 2.4.1 (Bypass Blocks) requires a mechanism to skip past repeated content. The standard implementation is a 'Skip to main content' link that's the first focusable element, visually hidden until focused. Three lines of HTML + four of CSS.
Source: WCAG 2.1 SC 2.4.1
BHeading Hierarchy50 headings, 2 skip(s)REVIEW
- H2 We and our partners process data for the following purposes
- H1 Ars Technica homepage
- H4 Included stories skipped
- H4 Most read
- H4 These settings are only available for Ars Pro subscribers
- H4 These settings are only available for Ars Pro subscribers
- H2 New Rowhammer attacks give complete control of machines running Nvidia GPUs
- H2 Trump proposes steep cut to NASA budget as astronauts head for the Moon
- H2 Ice Age dice show early Native Americans may have understood probability
- H2 As Artemis II zooms to the Moon, everything seems to be going swimmingly
- H2 Elon Musk insists banks working on SpaceX IPO must buy Grok subscriptions
- H2 Trump proposes steep cut to NASA budget as astronauts head for the Moon
- H2 Ice Age dice show early Native Americans may have understood probability
- H2 As Artemis II zooms to the Moon, everything seems to be going swimmingly
- H2 Elon Musk insists banks working on SpaceX IPO must buy Grok subscriptions
- H2 “Cognitive surrender” leads AI users to abandon logical thinking, research finds
- H2 Trump ignores biggest reasons his AI data center buildout is failing
- H2 OpenClaw gives users yet another reason to be freaked out about security
- H2 Netflix must refund customers for years of price hikes, Italian court rules
- H2 EV adoption in America: Who’s winning, who’s losing?
- H2 OpenAI takes on another “side quest,” buys tech-focused talk show TBPN
- H2 Launch day has arrived for NASA’s Artemis II mission—here’s what to expect
- H2 Four astronauts are now inexorably bound for the Moon
- H2 Perplexity’s “Incognito Mode” is a “sham,” lawsuit says
- H2 SpaceX tries to convince FCC that Amazon put satellites into wrong altitude
- H2 Google Vids gets AI upgrade with Veo and Lyria models, directable AI avatars
- H2 Male octopuses guided through mating by female hormones
- H2 New fossil deposits show complex animal groups predating the Cambrian
- H2 Renewables dominate 2025’s newly installed generating capacity
- H2 Google announces Gemma 4 open AI models, switches to Apache 2.0 license
- H2 This Ford is the quickest production car at the Nürburgring, ever
- H2 Anthropic says its leak-focused DMCA effort unintentionally hit legit GitHub forks
- H2 Why is NASA bothering to go back to the Moon if we’ve already been there?
- H2 Tesla sales grew by 6% in Q1, but company has an overproduction problem
- H2 Amazon is trying to buy Globalstar to compete with SpaceX’s Starlink
- H2 Artemis II, NASA’s boldest mission in generations, launches crew to the Moon
- H2 Nvidia rolls out its fix for PC gaming’s “compiling shaders” wait times
- H2 Here’s what that Claude Code source leak reveals about Anthropic’s plans
- H2 Research roundup: 7 cool science stories we almost missed
- H2 Did Nazis escape on a UFO? Dev who asked the question just built the official White House app.
- H2 Musk loves Grok’s “roasts.” Swiss official sues in attempt to neuter them.
- H2 SpaceX finally files for IPO, targets $1.75 trillion valuation
- H2 Trump defunding of NPR and PBS blocked by judge, but damage is already done
- H2 A word from Editor Moonshark about Artemis II
- H2 Kia shows off small cars in NY: The 2027 EV3 and 2027 Seltos Hybrid
- H2 LIGO data hints at supernovae so powerful they leave nothing behind
- H4 Included stories skipped
- H4 Most read
- H4 These settings are only available for Ars Pro subscribers
- H4 These settings are only available for Ars Pro subscribers
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
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
BForm Accessibility2 of 33 controls have issuesREVIEW
| Control | Type | Label | Method |
|---|---|---|---|
| pri_c02deb9a-6197-4915-b376-bad31a62cdca | checkbox | Essential | aria-label |
| pri_29ebd463-72cc-403a-99bd-93ca1c4ea83a | checkbox | Functional Cookies | aria-label |
| pri_5ce0b1a5-80c5-40d1-b8ad-751c667393e2 | checkbox | Audience Measurement | aria-label |
| pri_4de8eec0-ef79-417a-be42-22520111d7c8 | checkbox | Targeted Advertising | aria-label |
| pri_c293c532-40d4-4012-9ec8-64c0d2e80e49 | checkbox | Performance Cookies | aria-label |
| pri_2936cc91-a0d0-4927-8394-3e3724bdb36a | checkbox | Social Media Cookies | aria-label |
| 1 | checkbox | Store and/or access information on a device | aria-label |
| 2 | checkbox | Use limited data to select advertising | aria-label |
| 3 | checkbox | Create profiles for personalised advertising | aria-label |
| 4 | checkbox | Use profiles to select personalised advertising | aria-label |
| 5 | checkbox | Create profiles to personalise content | aria-label |
| 6 | checkbox | Use profiles to select personalised content | aria-label |
| 7 | checkbox | Measure advertising performance | aria-label |
| 8 | checkbox | Measure content performance | aria-label |
| 9 | checkbox | Understand audiences through statistics or combinations of data from different sources | aria-label |
| 10 | checkbox | Develop and improve services | aria-label |
| 11 | checkbox | Use limited data to select content | aria-label |
| 1 | checkbox | Use precise geolocation data | aria-label |
| 2 | checkbox | Actively scan device characteristics for identification | aria-label |
| gvl.740 | checkbox | 6sense | aria-label |
| gvl.272 | checkbox | A.Mob | aria-label |
| gvl.1271 | checkbox | ABCS INSIGHTS | aria-label |
| gvl.259 | checkbox | ADYOULIKE (OpenWeb) | aria-label |
| gvl.27 | checkbox | ADventori | aria-label |
| gvl.174 | checkbox | AMA | aria-label |
| gvl.40 | checkbox | Active Agent (Virtual Minds) | aria-label |
| gvl.231 | checkbox | AcuityAds | aria-label |
| gvl.196 | checkbox | AdElement Media Solutions | aria-label |
| gvl.57 | checkbox | Adara (Rate Gain) | aria-label |
| #most-read-disabled | checkbox | Disable Most Read module throughout the site | for/id |
| #most-read-disabled | checkbox | Disable Most Read module throughout the site | for/id |
| most_read_category | select | (none) | none |
| most_read_category | select | (none) | none |
Form controls need a <label>, aria-label, or aria-labelledby for screen readers.
<select name="most_read_category">; <select name="most_read_category">
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
C404 Error PageActionHTTP 404, custom pageREVIEW
BFavicon & Branding4 icon(s) detectedREVIEW
BDark Mode SupportDark mode detectedREVIEW
Detection limited to meta tags and inline styles.
CColor Contrast (Screenshot)Action20 text elements analyzed, 15 fail WCAG AAREVIEW
Analyzes text contrast against the actual rendered page, including background images, gradients, and overlays that CSS-based tools cannot detect.
1 contrast failures on background images/gradients
These failures are invisible to CSS-based accessibility tools like Lighthouse. The text may be fine on a solid background, but fails when rendered over an image or gradient.
Show all checked elements (20)
| Element | Ratio | Required | FG | BG | Result |
|---|---|---|---|---|---|
| h1 Ars Technica homepag… | 1.00:1 | 3.0:1 | #000000 | #000000 | Fail |
| h2 We and our partners … | 1.00:1 | 3.0:1 | #000000 | #000000 | Fail |
| title Ars Technica - Servi… | 9.57:1 | 4.5:1 | #000000 | #AEAFB1 | Pass |
| div About Your Privacy | 9.57:1 | 4.5:1 | #000000 | #AEAFB1 | Pass |
| div We process your data… | 9.57:1 | 4.5:1 | #000000 | #AEAFB1 | Pass |
| button Purposes | 9.57:1 | 4.5:1 | #000000 | #AEAFB1 | Pass |
| button Features | 1.22:1 | 4.5:1 | #000000 | #1A1B1E | Fail |
| button Vendors | 1.22:1 | 4.5:1 | #000000 | #1A1B1E | Fail |
| div Below, you will find… | 9.57:1 | 4.5:1 | #000000 | #AEAFB1 | Pass |
| button Consent | 2.77:1 | 4.5:1 | #000000 | #5A5254 | Fail |
| button Legitimate interest | 1.06:1 | 4.5:1 | #000000 | #080912 | Fail |
| div Purposes | 1.17:1 | 4.5:1 | #000000 | #00182B | Fail |
| span Essential | 1.22:1 | 4.5:1 | #000000 | #041D2E | Fail |
| p This website uses es… | 1.19:1 | 4.5:1 | #000000 | #0A1B22 | Fail |
| span Functional Cookies | 1.22:1 | 4.5:1 | #000000 | #0F1E1A | Fail |
| span Off | 1.15:1 | 4.5:1 | #000000 | #0D1619 | Fail |
| p These cookies enable… | 1.22:1 | 4.5:1 | #000000 | #1A1B1E | Fail |
| span Audience Measurement | 1.22:1 | 4.5:1 | #000000 | #1A1B1E | Fail |
| p We use audience meas… | 1.22:1 | 4.5:1 | #000000 | #1A1B1E | Fail |
| span Targeted Advertising | 1.22:1 | 4.5:1 | #000000 | #1A1B1E | 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.
AAlt Text QualityAll 61 images OKPASS
| Issue | Count |
|---|---|
| too long | 8 image(s) |
A+Lighthouse Accessibility AuditsScore 97/100 — 1 failing, 30 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.
Names and labels
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 |
|---|
article#card-2148335 > div.dusk:bg-gray-700 > div.relative > a article#card-2148335 > div.dusk:bg-gray-700 > div.relative > a |
article#card-2148621 > div.dusk:bg-gray-700 > div.relative > a article#card-2148621 > div.dusk:bg-gray-700 > div.relative > a |
article#card-2148639 > div.dusk:bg-gray-700 > div.relative > a article#card-2148639 > div.dusk:bg-gray-700 > div.relative > a |
article#card-2148605 > div.dusk:bg-gray-700 > div.relative > a article#card-2148605 > div.dusk:bg-gray-700 > div.relative > a |
article#card-2148587 > div.dusk:bg-gray-700 > div.relative > a article#card-2148587 > div.dusk:bg-gray-700 > div.relative > a |
div.dusk:bg-gray-700 > div.flex > div.relative > a div.dusk:bg-gray-700 > div.flex > div.relative > a |
article#card-2148522 > div.dusk:bg-gray-700 > div.relative > a article#card-2148522 > div.dusk:bg-gray-700 > div.relative > a |
article#card-2148397 > div.dusk:bg-gray-700 > div.relative > a article#card-2148397 > div.dusk:bg-gray-700 > div.relative > a |
article#card-2148459 > div.dusk:bg-gray-700 > div.relative > a article#card-2148459 > div.dusk:bg-gray-700 > div.relative > a |
div.dusk:bg-gray-700 > div.flex > div.relative > a div.dusk:bg-gray-700 > div.flex > div.relative > a |
div.dusk:bg-gray-700 > div.flex > div.relative > a div.dusk:bg-gray-700 > div.flex > div.relative > a |
div.dusk:bg-gray-700 > div.flex > div.relative > a div.dusk:bg-gray-700 > div.flex > div.relative > a |
div.dusk:bg-gray-700 > div.flex > div.relative > a div.dusk:bg-gray-700 > div.flex > div.relative > a |
div.dusk:bg-gray-700 > div.flex > div.relative > a div.dusk:bg-gray-700 > div.flex > div.relative > a |
div.dusk:bg-gray-700 > div.flex > div.relative > a div.dusk:bg-gray-700 > div.flex > div.relative > a |
div.dusk:bg-gray-700 > div.flex > div.relative > a div.dusk:bg-gray-700 > div.flex > div.relative > a |
div.dusk:bg-gray-700 > div.flex > div.relative > a div.dusk:bg-gray-700 > div.flex > div.relative > a |
div.mx-auto > div.justify-between > div.site-footer-statement > a div.mx-auto > div.justify-between > div.site-footer-statement > 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.