Accessibility Audit — demo-store.example
http://demo-store.example/ · 2026-08-09 · 3 pages × 2 viewports · engine: axe-core 4.13 (WCAG 2.1 A/AA) · regulations DB v2026.08
38.5/100
OVERALL RISK SCORE
High legal exposure
21 issues found, 8 of them critical. Standard used by EU (EN 301 549, cited by the EAA) and by US courts (WCAG 2.1 AA under ADA Title III).
Overview — every category, every count
| Category | Severity | Instances | Pages |
| Images have no text alternative | critical | 6 | 2 |
| Text contrast is too low | serious | 8 | 3 |
| Dropdowns have no label | critical | 2 | 2 |
| Links have no readable text | serious | 2 | 1 |
| Page has no title | serious | 1 | 1 |
| Embedded frame has no title | serious | 1 | 1 |
| Page language is not declared | serious | 1 | 1 |
Issues, ranked by legal risk
Images have no text alternative critical
6 found on 2 page(s) · desktop + mobile
Screen-reader users cannot tell what product photos show; missing alt text is among the most frequently cited issues in demand letters.
Fix — copy this pattern: <img src="tent.jpg" alt="TrailStar 2P tent pitched in a forest">
| Page | Element with the issue | How to fix this one |
| homepage / | <img src="img/novagear-logo.svg" style="height:44px"> | add a description for this image, e.g. alt="novagear logo" |
| homepage / | <img src="img/summer-trail-collection-2026.svg" style="width:100%;border-radius:10px"> | add a description for this image, e.g. alt="summer trail collection 2026" |
| homepage / | <img src="img/trailstar-2p-tent.svg" style="width:280px;border-radius:8px"> | add a description for this image, e.g. alt="trailstar 2p tent" |
| homepage / | <img src="img/summit-40l-pack.svg" style="width:280px;border-radius:8px"> | add a description for this image, e.g. alt="summit 40l pack" |
| /products.html | <img src="img/trailstar-2p-tent-detail.svg" style="width:170px;border-radius:8px"> | add a description for this image, e.g. alt="trailstar 2p tent detail" |
| /products.html | <img src="img/summit-40l-pack-detail.svg" style="width:170px;border-radius:8px"> | add a description for this image, e.g. alt="summit 40l pack detail" |
Basis: WCAG 2.1 SC 1.1.1 (Level A) · EN 301 549 (EU, cited by the EAA) · US: ADA Title III
Text contrast is too low serious
8 found on 3 page(s) · desktop + mobile
Light-grey text fails WCAG contrast minimums; low-vision users cannot read prices or headlines. The most common machine-detectable failure on the web (WebAIM Million, 2026).
Fix — copy this pattern: color: #595959; /* 7:1 on white — passes AA */
| Page | Element with the issue | How to fix this one |
| homepage / | <div style="font-size:34px;font-weight:bold;color:#cccccc">Summer Sale — up to 50% off</div> | color: #595959; /* 7:1 on white — passes AA */ |
| homepage / | <p style="color:#d9d9d9;font-size:17px">Premium outdoor gear for your next adventure.</p> | color: #595959; /* 7:1 on white — passes AA */ |
| homepage / | <div style="padding:20px 28px;color:#ccc;font-size:12px;border-top:1px solid #eee;margin-top:30px">© 202 | color: #595959; /* 7:1 on white — passes AA */ |
| /products.html | <span style="color:#bbb;font-size:19px">TrailStar 2P Tent — €249</span> | color: #595959; /* 7:1 on white — passes AA */ |
| /products.html | <span style="color:#bbb;font-size:19px">Summit 40L Pack — €129</span> | color: #595959; /* 7:1 on white — passes AA */ |
| /products.html | <span style="color:#999;font-size:14px">Sort by:</span> | color: #595959; /* 7:1 on white — passes AA */ |
| /products.html | <a href="cart.html" style="color:#ddd;text-decoration:none;font-size:16px">Go to checkout →</a> | color: #595959; /* 7:1 on white — passes AA */ |
| /cart.html | <p style="color:#d5d5d5;font-size:12px;margin-top:16px">By paying you agree to our terms.</p> | color: #595959; /* 7:1 on white — passes AA */ |
Basis: WCAG 2.1 SC 1.4.3 (Level AA) · EN 301 549 (EU, cited by the EAA) · US: ADA Title III
Dropdowns have no label critical
2 found on 2 page(s) · desktop + mobile
Sort/country selectors cannot be identified by assistive technology.
Fix — copy this pattern: <label for="sort">Sort by</label><select id="sort">…</select>
| Page | Element with the issue | How to fix this one |
| /products.html | <select style="padding:8px 12px;border:1px solid #ddd;border-radius:6px"><option>Price</option& | add a visible <label> before the <select>, or an aria-label describing its purpose |
| /cart.html | <select style="width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;margin-bottom:18px"><o | add a visible <label> before the <select>, or an aria-label describing its purpose |
Basis: WCAG 2.1 SC 4.1.2 (Level A) · EN 301 549 (EU, cited by the EAA) · US: ADA Title III
Links have no readable text serious
2 found on 1 page(s) · desktop + mobile
A link wrapping only an image tells screen-reader users nothing about where it goes.
Fix — copy this pattern: <a href="products.html" aria-label="Browse all products">…</a>
| Page | Element with the issue | How to fix this one |
| homepage / | <a href="products.html"><img src="img/trailstar-2p-tent.svg" style="width:280px;border-radius:8px"> | <a href="products.html" aria-label="Browse all products">…</a> |
| homepage / | <a href="products.html"><img src="img/summit-40l-pack.svg" style="width:280px;border-radius:8px">& | <a href="products.html" aria-label="Browse all products">…</a> |
Basis: WCAG 2.1 SC 2.4.4 (Level A) · EN 301 549 (EU, cited by the EAA) · US: ADA Title III
Page has no title serious
1 found on 1 page(s) · desktop + mobile
The tab/title is the first thing a screen-reader user hears on every page.
Fix — copy this pattern: <title>NovaGear — outdoor gear</title>
| Page | Element with the issue | How to fix this one |
| homepage / | <html> | <title>NovaGear — outdoor gear</title> |
Basis: WCAG 2.1 SC 2.4.2 (Level A) · EN 301 549 (EU, cited by the EAA) · US: ADA Title III
Embedded frame has no title serious
1 found on 1 page(s) · desktop + mobile
Chat/review widgets in iframes must be titled so screen-reader users know what the frame contains.
Fix — copy this pattern: <iframe title="Customer support chat" src="…">
| Page | Element with the issue | How to fix this one |
| homepage / | <iframe src="about:blank" width="320" height="180" style="border:none"></iframe> | add a title describing the embedded content, e.g. title="customer support chat" |
Basis: WCAG 2.1 SC 4.1.2 (Level A) · EN 301 549 (EU, cited by the EAA) · US: ADA Title III
Page language is not declared serious
1 found on 1 page(s) · desktop + mobile
Without lang, screen readers pronounce English content with wrong rules.
Fix — copy this pattern: <html lang="en">
| Page | Element with the issue | How to fix this one |
| homepage / | <html> | <html lang="en"> |
Basis: WCAG 2.1 SC 3.1.1 (Level A) · EN 301 549 (EU, cited by the EAA) · US: ADA Title III
How the score works
Start at 100. Each rule subtracts: critical −4.5, serious −3, moderate −1.5, minor −1 per instance, capped at 5 per rule. This score is a risk indicator, not a compliance certification.
Attest provides professional technical audits, not legal advice. Remediating reported issues reduces risk but does not guarantee compliance or immunity from claims. Liability is limited to the purchase price.