Work / Four products, one responsibility

Accessibility is a product feature

Who gets left out when a product only works one way? This work follows that question through four different products, then shares the repairs and the standard behind them.

Read the public evidenceUse the checklist

Why this work matters

Love of neighbor reaches into practical details: whether someone can read the page, operate its controls, understand what changed, and participate. Accessibility belongs in the product definition.

One small repair, experienced directly

This illustrates a recurring repair pattern. It is not an archived product screen.

Before / the barrier

An icon with a click handler

<span onClick={save}>☆</span>

A pointer can activate it, but the control has no useful name, native keyboard behavior, or announced result. The broken pattern is shown as text here.

After / try it

A button with a name and a result

Tab to the button. Press Enter or Space to save; press again to remove it.

The result will appear here and be announced by a screen reader.

The same control supports pointer, touch, and keyboard input. Its pressed state and status message expose what happened without relying on color.

What changed across the products

Portfolio

Clearer link affordances, first-render translations, and keyboard-sized church-history navigation.

Evidence: Representative routes checked with Axe and Lighthouse; checks enforced in CI.

Explore Portfolio

ATXBro

A skip target, persisted reading choices, reduced motion, higher contrast, and clearer field names and targets.

Evidence: Product tests, a production build, and rendered accessibility checks.

Explore ATXBro

JobPilot

Semantic job cards, labeled fields, contextual action names, and live status messages.

Evidence: Accessibility contracts included in the application's test suite.

Explore JobPilot

EYE

Dialog focus handling, tab semantics, keyboard-operable nodes, and text alternatives for visual service graphs.

Evidence: Static and rendered accessibility contracts alongside the production build.

Explore EYE

A failed scan must fail the release

A server that never starts, a broken route, or an unreadable report cannot count as a passing accessibility check. The shared standard makes those failures visible alongside rule violations. Representative routes are checked after a production build.

What the evidence establishes

These are documented repairs and representative checks, not a certification or a claim that every barrier has been removed. Automation cannot judge whether an explanation makes sense or a workflow is exhausting. Keyboard, screen-reader, zoom, contrast, motion, and mobile checks remain part of release review.

The public repository includes the reusable checklist, contribution guidance, and the record of the original pass. Corrections are welcome.

Explore the other case studiesDiscuss an interface