Case study · Product systems
Architecting accessibility evidence inside Figma.
I designed and engineered a canvas-native accessibility system whose typed contracts power collaborative review, durable records, portable exports, interactive documentation, and cross-runtime verification.
The problem was not another checker.
Teams could find issues, but decisions disappeared into meetings, screenshots, or disconnected tickets. The product needed to preserve context without becoming a dashboard no one maintained.
The product boundary became the differentiator.
The widget reviews, measures, audits, and records. It does not claim automated compliance, hide scan limits, or require an account. This made the architecture smaller and the evidence more credible.
One contract made parity testable.
Nine edge cases drive the Figma model, website replica, Canvas Record, export preview, and assertions. Renderers remain independent; product meaning does not.
Operational constraints became product states.
Caps, partial scans, missing evidence, stale sign-offs, and not-applicable outcomes are visible in the UI and status model. The system cannot silently turn incomplete work into Ready for handoff.
Deliberate exclusions kept the system credible.
- One renderer for Figma and React
- Rejected because shared primitives would hide different host constraints and create fragile abstractions.
- Cloud dashboard and account
- Rejected because evidence belongs beside the design and the focused canvas workflow does not need tenancy.
- Unlimited synced audit history
- Rejected because it adds multiplayer weight and review noise without improving the current page decision.
- Automated compliance claim
- Rejected because bounded scans and design evidence cannot certify the delivered product.
Release claims are generated from the system.
These numbers come from repository-owned contracts. Figma host behavior remains a separate manual gate because browser confidence cannot substitute for the real sandbox, multiplayer, and bridge.
The migration was designed to be reversible.
The TanStack Start site was built in parallel, kept the accepted v3 static site as a rollback, preserved the public docs URL, and waits for semantic and visual parity before deployment changes artifacts. The widget follows the same pattern by migrating old state lazily and refreshing legacy Canvas Proof frames in place.
The artifact is the evidence.
The result is a working product, a public executable lab, inspectable architectural decisions, and a release gate that makes quality measurable without inventing business metrics.