Vesper Audit
Test Suite
Eight pages designed to test Vesper Audit's detection capabilities across axe-core rules and Vesper's built-in custom link text checks. Some pages are fully compliant, others contain deliberate violations. Run an audit starting from this page.
Test Pages
Each page targets specific axe-core rules and Vesper custom checks. Expected results are noted for each.
Compliant Page
A fully accessible page. Should return zero violations — useful as a baseline to verify the scanner is working correctly.
Image Alt Text
Tests missing alt attributes, empty alt (decorative), descriptive alt text, and image-only links.
Heading Structure
Tests heading order violations and skipped levels. Requires Best Practices scan. The heading-order rule is an axe-core best practice, not a WCAG violation — enable the Best Practices scanner to see results on this page.
Form Labels
Tests missing labels, aria-label, aria-labelledby, and correctly associated labels.
Color Contrast
Known contrast failures alongside passing examples. Tests WCAG 1.4.3 (normal text) and 1.4.11 (UI components).
Link Text & Broken Links
Tests axe-core rule link-name and Vesper custom checks vesper-ambiguous-link and vesper-duplicate-link-text. Covers generic text, raw URLs, bare phone numbers, bare email addresses, and duplicate link text to different destinations. Also includes intentionally broken external URLs.
Landmarks & Regions
Tests missing main landmark and content outside landmark regions. Requires Best Practices scan. The landmark-one-main and region rules are axe-core best practices, not WCAG violations.
Beta4 Rule Behavior Tests
New fixtures for rules introduced or changed in v1.0.0-beta.5. Each page tests a specific rule with positive (fires) and negative (must not fire) cases.
VA-025 — Visibility Filter
Tests that hidden links (display:none, visibility:hidden, aria-hidden, hidden attribute) are excluded from the duplicate-link-text relational check. Also tests that sr-only and offscreen-but-focusable links are not excluded (they remain in the accessibility tree).
VA-025 — Landmark Boundary Filter
Tests that duplicate-link-text only fires when both links are in the same landmark region. Links with identical accessible names in different landmarks (nav vs main, nav vs footer, etc.) must not be flagged.
VA-025 — Combined + CBR-01 Branch Selector
Realistic composite patterns combining both filters. Includes the LM branch selector scenario: one visible branch card + five hidden branches, each with identical link text to per-branch destinations.
VA-015 — Broken Accessible Name + VA-010 Instance Count
Tests that Vesper correctly diagnoses why a heading has no accessible name: broken aria-labelledby reference, empty aria-label attribute, or missing text content. Also tests that the violation description includes the correct instance count (VA-010).
VA-013 — Chrome Extension Artifacts
Tests that chrome-extension:// links are excluded from Vesper's custom link checks. These links are injected by Chrome's PDF viewer and are not real page content. Regular ambiguous links on the same page must still be flagged.
VA-003 Truncated URLs — VA-008 Repeated Embeds
VA-003: links whose href contains "..." (truncated by a CMS editor) should be flagged as vesper-truncated-url. VA-008: three or more iframes from the same host without unique title attributes should be flagged as vesper-repeated-embed.
VA-023 — Soft 404 Detection
A page whose title is "Page Not Found". Vesper should attach a Scan Warning to this page rather than treating it as clean content. The page returns HTTP 200 — the detection is title-pattern based.
VA-023 — Maintenance State Detection
A page whose title is "Site Under Maintenance". Vesper should attach a Scan Warning. Tests the maintenance-pattern detection (distinct from soft-404 detection).
VA-023 — Maintenance False Positive Avoidance
A legitimate content page about a "Maintenance Services Department". The word "maintenance" appears in the title but this is real content, not an error state. Vesper must not attach a Scan Warning here.
VA-018 — URL Canonicalization
Tests that relative and absolute hrefs to the same destination, trailing-slash variants, and http/https protocol variants are treated as identical after canonicalization. Links that genuinely go to different destinations must still fire.
High Density Page (ITEM-12 / VA-017)
Deliberately contains 20+ accessibility violations to test the high-density page callout. In the PDF and Markdown report, this page should show an amber "High-density page" callout with the violation count.
Broken Links Cluster + Cross-Reference (ITEM-15 / ITEM-17)
Four broken links to the same non-existent domain (tests cluster annotation) plus a missing image alt (tests cross-reference). In the broken links report: cluster note should appear, and the "Found On" entry for this page should show a violation count.
Client Batch Regression Tests
Fixtures that reproduce confirmed patterns from real LM client sites. Verify that Vesper continues to flag genuine violations and does not regress on fixed patterns.
CBR-02 — LibraryCalendar Recurring Events
Two variants of the LibraryCalendar event card pattern. Pre-fix (CBR-02a): dateless aria-label="View Details" triggers duplicate-link-text. Post-fix (CBR-02b): date-specific aria-label makes each link unique — no violation. Locks the LM platform fix regression.