Skip to content

Fix two accessibility failures Lighthouse cannot see - #16

Merged
laveshparyani merged 1 commit into
mainfrom
fix/a11y-beyond-lighthouse
Oct 1, 2026
Merged

laveshparyani merged 1 commit into
mainfrom
fix/a11y-beyond-lighthouse

Conversation

@laveshparyani

Copy link
Copy Markdown
Collaborator

Lighthouse scored accessibility 100 on every page after #15. But Lighthouse runs a subset of axe-core — the full suite, plus a measurement neither tool can make, found two more real failures.

1. Muted text fails WCAG AA in practice

--text-muted (#6f7468) scores 4.52:1 against plain cream — a pass by 0.02. But no text on this site sits on plain cream: the fixed grain-and-grid layer (Atmosphere) darkens the ground.

Measured, not modelled: sampled ~26,000 background pixels around the lede from a screenshot.

median ground contrast
What the tools assume #faf8f3 cream 4.52:1
What is actually rendered #e6e5e1 3.81:1 — fails AA

Both tools treat that layer as a background image they cannot evaluate (axe returns it as incomplete), so neither failed it. A colour model of the overlay predicted 3.81:1 to two decimals before sampling, which is why I trust the measurement.

#5d6157 is the fix — 5.03:1 against the measured median, 4.75:1 at its darkest 1% (margin for JPEG sampling error), and 5.52:1 on the tinted sections, where the old value already failed at 4.18:1 by the tools' own plain-colour model.

2. The contact shortcuts were outside every landmark

axe region, on every page. Fixed to the viewport, the Call/WhatsApp group sat outside header, main and footer, so anyone moving through the page by landmark — the usual way with a screen reader — couldn't reach the two most useful controls on the site. Now an <aside aria-label="Contact shortcuts">.

Verification

Full axe-core 4.13, WCAG 2.0–2.2 A/AA + best-practice, all eight routes: zero violations. One transient hit on the homepage was the decorative "Scroll" cue sampled mid fade-in (opacity 0.6); at rest it passes.

The giant ghost numbers on Services also came back incomplete — they're aria-hidden decoration, which WCAG exempts.

Lighthouse reported 100 for accessibility on every page. Lighthouse runs a
subset of axe-core; the full suite, plus a measurement neither tool can make,
found two more.

Muted text fails AA in practice. --text-muted (#6f7468) scores 4.52:1
against plain cream, a pass by 0.02 — but no text sits on plain cream. The
fixed grain and grid layer darkens the ground to a measured median of #e6e5e1
(sampled from a screenshot, 26k pixels around the lede), where it is 3.81:1.
Both tools treat that layer as a background image they cannot evaluate, so
neither failed it. #5d6157 is 5.03:1 against the measured median, 4.75:1 at its
darkest 1%, and 5.52:1 on the tinted sections, where the old value was already
4.18:1 by the tools' own model.

The contact shortcuts were outside every landmark (axe: region, on every
page). Fixed to the viewport, the div sat outside header, main and footer, so
anyone moving by landmark could not reach the two most useful controls on the
site. It is now an <aside>.

Full axe-core 4.13, WCAG 2.0-2.2 A/AA plus best-practice: zero violations on
all eight routes.
@laveshparyani
laveshparyani merged commit d46d36a into main Oct 1, 2026
3 checks passed
@laveshparyani
laveshparyani deleted the fix/a11y-beyond-lighthouse branch October 1, 2026 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant