Skip to main content
← Back to blog
Accessibility 2026-03-22 6 min read

We Scanned 20 Startup Landing Pages for Accessibility — Here's What Broke

We ran AppVet's accessibility scan on 20 popular developer tool sites. 65% scored F. Average score: 54/100. Zero sites scored A or B.

20
Sites scanned
54/100
Average score
1,222
Total findings
9
Scored F

What we tested

We ran AppVet's WCAG 2.1/2.2 Automated Compliance profile against the landing page of each site. This profile runs 12 checks using three tools: axe-core, pa11y, and Lighthouse. Every check maps to a specific WCAG success criterion.

The scan covers contrast ratios, alt text, heading structure, ARIA usage, form labels, link names, focus management, and reflow behavior. It does not cover manual-only criteria like cognitive load or screen reader flow, so these scores represent a floor, not a ceiling.

All scans were run in March 2026 against the publicly accessible landing page of each site. No authentication was used. Scores reflect the state of each site at scan time.

The results

Seven sites scored B- or above. Four landed in the D range. Nine scored F. No site scored A. The median score was 50, and the average was 54. The worst performer had 198 individual findings.

Site Score Grade Findings
turso.tech 79 B+ 13
drizzle.team 78 B+ 8
mintlify.com 77 B+ 16
neon.tech 77 B+ 19
clerk.dev 74 B 67
fly.io 73 B 27
bolt.new 70 B- 7
val.town 57 D+ 15
cal.com 56 D 130
resend.com 53 D 87
inngest.com 51 D- 20
upstash.com 48 F 56
unkey.dev 47 F 48
v0.dev 45 F 149
convex.dev 43 F 73
plain.com 41 F 91
trigger.dev 38 F 33
loops.so 28 F 88
dub.co 24 F 77
linear.app 15 F 198

The 5 most common issues

Across all 20 sites, the same five issues appeared over and over. None of them are hard to fix.

1. Insufficient color contrast

WCAG 1.4.3 (Level AA) · Found on 19 of 20 sites

Text that doesn't meet the 4.5:1 contrast ratio against its background. The most common offender: light gray text on a slightly lighter gray background, or colored text on dark hero sections with transparency.

/* Before — fails contrast */
.subtitle { color: #888; background: #1a1a2e; }

/* After — passes 4.5:1 */
.subtitle { color: #a3a3c2; background: #1a1a2e; }

2. Missing or empty alt text

WCAG 1.1.1 (Level A) · Found on 14 of 20 sites

Images without alt attributes, or with empty alt on images that convey meaning. Decorative images should use alt="", but product screenshots and logos need descriptive text.

<!-- Before — no alt text -->
<img src="/hero-screenshot.png" />

<!-- After — descriptive alt -->
<img src="/hero-screenshot.png"
     alt="Dashboard showing real-time API latency metrics" />

3. Links and buttons without accessible names

WCAG 4.1.2 (Level A) · Found on 10 of 20 sites

Icon-only buttons and links that rely on visual context. Screen readers announce these as "button" or "link" with no indication of what they do. Social media icon links are a frequent offender.

<!-- Before — no accessible name -->
<a href="https://twitter.com/acme">
  <svg>...</svg>
</a>

<!-- After — aria-label provides name -->
<a href="https://twitter.com/acme" aria-label="Acme on Twitter">
  <svg aria-hidden="true">...</svg>
</a>

4. Broken heading hierarchy

WCAG 1.3.1 (Level A) · Found on 8 of 20 sites

Pages that skip heading levels (h1 to h3, or h2 to h5) or use multiple h1 tags. Screen reader users navigate by headings, so gaps in the hierarchy make the page structure unpredictable.

<!-- Before — skips h2 -->
<h1>Deploy anywhere</h1>
<h3>Edge functions</h3>

<!-- After — sequential hierarchy -->
<h1>Deploy anywhere</h1>
<h2>Edge functions</h2>

5. Fixed positioning without reflow

WCAG 1.4.10 (Level AA) · Found on 12 of 20 sites

Fixed-position elements (sticky navs, floating CTAs) that don't reflow at 320px viewport width. Users who zoom to 400% lose content behind these overlays. The fix is usually making the element static or scrollable at small widths.

/* Before — fixed at all sizes */
.nav { position: fixed; width: 100%; }

/* After — scrolls naturally on small viewports */
@media (max-width: 320px) {
  .nav { position: static; }
}

The pattern

The sites that scored highest didn't necessarily have fewer total findings. They had fewer types of issues. Turso had 13 findings, but they were almost all the same category (alt text). Linear had 198 findings across every category we check.

A site with one recurring issue is easy to fix: update one component or one CSS variable and the whole site improves. A site with many distinct issue types has systemic problems. No single fix moves the needle.

The scoring formula reflects this. Issue diversity is penalized more heavily than issue count, because diversity signals that accessibility was never part of the development workflow.

Fix everything in 10 minutes

Most of the issues above take minutes to fix once you know where they are. The hard part is finding them. AppVet's accessibility scan runs the same 12-check WCAG profile we used for this study, and generates a prioritized fix list with code suggestions for every finding.

Paste your URL, hit scan, and get a report you can hand to any developer. No signup required for your first scan.

Check your own site

Paste a URL, get a security, performance, accessibility, and SEO report — 84 checks, one click, under a minute. Free, no signup.

Run Audit →