Front-End Developer · Web Accessibility

I make the web work
for everyone.

Accessible interfaces, thoughtful code, and experiences that are genuinely beautiful for every person who lands on them.

Accessibility controls — try them

The Accessibility Lens

One small change.
A world of difference.

The same "Subscribe" control, built two ways. One looks fine but locks people out. The other works for keyboards, screen readers, and everyone else — and there's barely any visual difference. That gap is where I live.

Broken (common)
Subscribe
  • Clickable <div>, not a button
  • No keyboard focus — Tab skips it
  • No accessible name or role
  • Low color contrast
Fixed (accessible)
  • Semantic <button> element
  • Visible focus ring, keyboard-operable
  • Announced as "Subscribe, button"
  • Contrast passes WCAG AA
🔊 Screen reader announces
Broken
(nothing meaningful — no role, no name; focus never lands here)
Fixed
"Subscribe, button."

Tested with VoiceOver · NVDA · keyboard-only

Practice what you preach

This site is the résumé.

Built to WCAG 2.2 AA — and it means it

Semantic HTML, proper landmarks, managed focus, contrast that passes at every setting, and animations that respect reduced-motion. The controls above aren't a gimmick — they actually work, because I actually build them.

  • Perceivable
  • Operable
  • Understandable
  • Robust

Writing

I think out loud about accessibility.

Occasional posts on building interfaces that actually work for everyone.