Conformly — accessibility work, delivered as evidence
A compliance agent for the European Accessibility Act, built around an uncomfortable design principle: never tell a customer they're compliant.
The European Accessibility Act has been in force since June 2025, and most teams reach for an overlay widget that promises a green badge overnight. Conformly takes the opposite stance. It runs deterministic, LLM-free scans mapped to EN 301 549 and WCAG, opens validated fixes as real pull requests, routes anything ambiguous to human review, and writes every step to a hash-chained, tamper-evident audit trail. The output isn't a badge — it's dated evidence you can hand to a regulator, a customer, or a court. This is the design story of making honest status the product.
EN 301 549 conformance summary
Each line is a status with a date and a reason — remediated, no automated issues, or human review. Nowhere does it say “compliant.” That word is a legal conclusion the tool refuses to make on a customer's behalf.
The conformance summary — a redesigned interpretation of Conformly's reporting surface, built in the portfolio design language. Statuses and dates, never a verdict.
01 — The problem
A deadline, a panic, and an industry of green badges
The European Accessibility Act came into force in June 2025. For a large class of digital products sold into the EU, EN 301 549 — which leans on WCAG 2.1 AA — stopped being a nice-to-have and became a legal obligation with real exposure.
The market's instinct was to buy the fastest-looking fix: an accessibility overlay — a script you paste in that promises instant compliance and a badge in the corner. The problem is that overlays don't repair the underlying experience; they layer a second, often-broken interface on top of a broken one, and a growing body of litigation has targeted sites that used them. Worse, a badge is a claim with nothing behind it. When a regulator or a blind user asks “prove it,” there's no evidence — just marketing. The real design problem isn't generating confidence. It's earning it, and being able to show your work.
Grounded in the regulation
EN 301 549 is the European harmonised standard for ICT accessibility; for web content it adopts WCAG 2.1 Level AA as its core. Conformly is built and positioned explicitly against the overlay model — its public stance is that overlays are not remediation, and that honest, evidenced status beats a synthetic badge.
02 — The thesis
Honest status is the product
Conformly's founding principle is a refusal: it will never tell you you're compliant. Compliance is a legal verdict about your whole product and your whole obligation — something no scanner can responsibly assert. What a tool can do is report the conformance of the criteria it can actually detect, attach a date and a reason to each one, and keep the receipts. Designing for that honesty — instead of around it — is the entire job.
Detectable, not declared
Automated checks cover a real but bounded slice of WCAG. Conformly reports status for exactly that slice and labels the rest as needing human review — it never extrapolates a clean scan into a clean product.
Dated, not perpetual
Every status is a snapshot with a timestamp. “Conformant on 9 Jun 2026” is a defensible statement; “Conformant” forever is not. The interface puts the date next to the claim, always.
Evidenced, not asserted
Behind every status sits a chain of artifacts — the scan, the fix, the re-scan, the reviewer. The claim is only as strong as the evidence, so the evidence is the thing the product is built to produce.
03 — The loop
Detect → Fix → Document → Monitor
Accessibility isn't a one-time audit; it's a property that decays with every deploy. So the product is shaped as a loop, not a report. Each stage produces an artifact the next stage consumes — and the whole loop is designed so a human is always the one who decides what “done” means.
Detect
Deterministic, LLM-free scans run a real headless browser over real pages — the same engine class teams already trust — so findings are reproducible, not vibes.
Fix
Validated fixes are opened as real pull requests against your repo, then confirmed by a re-scan before they're called resolved. Uncertain cases go to a human.
Document
Every event is written to a hash-chained, tamper-evident audit trail and rolled up into an accessibility statement generated from evidence, not prose.
Monitor
Re-scans run continuously. A regression reopens the finding and dates it, so the audit trail always reflects the product as it actually ships today.
04 — Detect
Findings that speak in human impact, not rule numbers
A raw axe-core dump is a list of rule IDs. That's correct, and useless to the person who has to triage it. The design move is to lead with who is blocked and how badly, then attach the WCAG criterion as the citation underneath.
Severity is framed as task impact — does this block task completion, merely degrade the experience, or is it cosmetic / advisory? — and each finding names the population it actually hurts, so triage maps to real user harm rather than abstract conformance.
Deterministic detection — findings
Contrast below 4.5:1 on primary actions
WCAG 1.4.3 Contrast (Minimum) · Low-vision users
Focus traps & skipped order in the checkout dialog
WCAG 2.4.3 Focus Order · Keyboard-only users
Form field missing a programmatic label
WCAG 3.3.2 Labels or Instructions · Screen-reader users
Redundant title attribute duplicates visible text
Advisory · best-practice hygiene
Detection surface, rebuilt in the portfolio design language. Deterministic engine; the design work is the ranking, the language, and the affected-user framing.
05 — Fix
The fix is a pull request, and it has to survive a re-scan
Most accessibility tools stop at telling you what's wrong. Conformly proposes the change as a real GitHub pull request against your codebase — reviewable, revertible, attributable — and only marks the finding resolved once a re-scan verifies the fix actually closed it. A fix that doesn't pass the re-scan isn't a fix.
Where the change is ambiguous — anything a deterministic rule can't safely settle — it's routed to human review instead of auto-merged. The agent suggests; a person decides. It runs as a least-privilege GitHub app, with EU data residency, so the blast radius is exactly “open a PR,” never “push to main.”
Fix opened as pull request
Finding detected — 1.4.3 Contrast (Minimum)
Primary action measured below the 4.5:1 minimum · blocks task completion
Fix opened as PR #418
Token --btn-primary darkened to meet 4.5:1 · diff scoped to one file
Fix verified by re-scan
Re-scan after merge cleared the 4.5:1 threshold · finding closed with evidence attached
“Fix opened as / Fix verified by re-scan” — the product's own loop, drawn as the chain it actually is.
06 — Document
A hash-chained audit trail, because trust needs receipts
If honest status is the product, then the evidence behind each status is the thing that has to be unfakeable. Conformly writes every event — scan, finding, fix, re-scan, human review — into a hash-chained, tamper-evident audit trail: each entry carries the hash of the one before it, so altering history breaks the chain visibly.
From that trail it can generate an accessibility statement built from real, dated events rather than aspirational copy — the kind of artifact you can attach to a procurement questionnaire or a regulator's request and actually defend.
Hash-chained audit trail
Scan completed
56 criteria evaluated · deterministic engine · 9 Jun 2026 09:14 UTC
sha256:9f2a…c401 ← genesisFix opened as PR #418
1.4.3 Contrast · author attributed · awaiting re-scan
sha256:b7e1…22da ← prev 9f2a…c401Fix verified by re-scan
1.4.3 cleared on re-scan · status → remediated · 9 Jun 2026 11:02 UTC
sha256:4c8d…91f0 ← prev b7e1…22daAccessibility statement generated
Built from the chain above · human review noted for 2.4.3
sha256:e0a6…7b5c ← prev 4c8d…91f0Illustrative hashes shown for the figure; the real chain links cryptographically so the record can be audited, not edited.
07 — The stance
Why this is the anti-overlay
An overlay and Conformly look adjacent on a feature list — “we do accessibility.” They are opposites in what they actually deliver. Making that contrast legible is a positioning job as much as a design one, and it's where the product's POV earns its keep.
Conformly
Fixes the real markup at the source
Ships fixes as reviewable pull requests
Re-scan-gated; uncertain → human review
Hash-chained, tamper-evident audit trail
Reports honest, dated status — never a verdict
08 — The design work
Designing trust into a regulated, AI-assisted workflow
The hard part of an accessibility agent isn't the scanner — that part is deterministic and bought, not built. The product is won or lost in the surfaces around it: how a finding is framed, how a fix earns the word “resolved,” and how a status stays honest under legal pressure. That's the design.
Why it belongs in the Lab
Conformly is the AI Product Design Lab thesis in a regulated domain: turning model behavior into a workflow people can direct, understand, and trust. The model proposes; the evidence persuades; the human decides. It sits beside Vantage and Criterion as work about making AI's judgment legible and accountable — here, with a regulator in the room.
Explore more work
Adjacent case studies on legible, accountable, high-trust systems.