Skip to content

Projects & code

Topic
Type
Year

Results (129)

demoUpcoming

GitHub Accessibility Scanner - condensed demo

Microsoft AI Tour, Ignite, and Build events

A short, booth-ready scanner simulation that follows three personas through accessibility barriers and engineering next steps.

demo

Microsoft Build accessibility scanner booth demo

Microsoft Build

More than 1,000 people visited the Microsoft Accessibility booth, with 700+ diving into demos and conversations around accessibility and AI.

demo

Agentic accessibility feedback pipeline

GitHub

Continuous AI for accessibility — an agentic GitHub Actions and Copilot workflow that triages, classifies, and routes accessibility feedback using the GitHub Models API.

course

Learn Accessibility course

Google web.dev

Google’s web.dev course covers accessibility foundations, WCAG, ARIA, and inclusion practices, giving developers a baseline for daily work.

course

W3Cx: Introduction to Web Accessibility

W3C / edX

W3C's introductory web accessibility course, where I serve as a course trainer for the development section.

library

Deque University code library

Deque Systems

Helped create the code patterns for Deque's ARIA pattern library and establish it as an educational resource for accessible, tested components.

library

A11Y Style Guide

Open source project

Living accessibility style guide with reusable components, WCAG guidance, and links to tools, talks, and articles supporting front-end teams.

collection

Accessible User Preferences

CodePen

CodePen collection of accessible color, contrast, and motion examples that respect people’s system and in-page preferences.

collection

Accessible CSS Pattern Evaluations

CodePen

CodePen collection of five accessible CSS pattern evaluations covering color, links, images, animation, and typography.

demo

Ask Wookiee

Personal project

Accessible AI chat with Wookiee sounds, animations, and themed worlds, plus light/dark modes and controls for motion and audio preferences.

demo

Agent K-C

Personal project

Database searcher for 90FM Trivia that helps teams find past questions quickly, with light/dark themes and playful fish interactions on hover.

demo

Oracle of Inclusion

Personal project

Interactive AI prompt generator for A11yTalks with event support, accessible controls, animation, sound, and light/dark modes for live sessions.

pattern

Groups and ARIA labels

CodePen

CodePen snippet exploring grouped content and ARIA labeling patterns for assistive technology announcements and structural clarity.

collection

Smashing JS Accessibility

CodePen

CodePen collection of JavaScript accessibility examples covering interactive behavior, semantic state, and inclusive front-end patterns.

collection

Smashing CSS Accessibility

CodePen

CodePen collection of CSS accessibility examples for inclusive styling, visual states, layout systems, and user-preference support.

pattern

Accessible Typography - Font variants

CodePen

CodePen snippet demonstrating typography labeling and readable font variant choices in accessibility-focused interface content.

pattern

Text on images

CodePen

CodePen snippet evaluating accessible text-over-image techniques to maintain readability, contrast, and comprehension.

pattern

Accessible JavaScript - Alert Dialog with Injected HTML & CSS (example #2)

CodePen

CodePen snippet demonstrating an accessible alert dialog implementation with injected HTML and CSS behavior (example 2).

pattern

Accessible JavaScript - Alert Dialog with Injected HTML & CSS (example #1)

CodePen

CodePen snippet demonstrating an accessible alert dialog implementation with injected HTML and CSS behavior (example 1).

pattern

Accessible JavaScript - This is the title

CodePen

CodePen snippet demonstrating accessible JavaScript interactions and semantic updates in a practical title-focused example.

pattern

Accordion

CodePen

CodePen snippet demonstrating accessible accordion disclosure behavior with keyboard support and semantic structure.

pattern

Accessible CSS - Which paragraph is accessible? (Pattern evaluation #5)

CodePen

CodePen snippet for evaluating paragraph styling accessibility and identifying which text treatment supports inclusive reading.

pattern

Accessible CSS - Which animation elements are accessible? (Pattern evaluation #4)

CodePen

CodePen snippet for evaluating animation accessibility and identifying motion choices that better support users.

pattern

Accessible CSS - Which images would be hidden from AT? (Pattern evaluation #3)

CodePen

CodePen snippet for evaluating CSS image treatments and whether images become hidden from assistive technologies.

pattern

Accessible CSS - Which colors are accessible? (Pattern evaluation #1)

CodePen

CodePen snippet for evaluating accessible color choices and contrast-aware combinations in CSS.

pattern

Accessible CSS - Which links are accessible? (Pattern evaluation #2)

CodePen

CodePen snippet for evaluating accessible link styling and distinguishing features beyond color alone.

pattern

Accessible Color - @prefers-color-scheme + @forced-colors + @inverted-colors

CodePen

CodePen pattern demonstrating user-choice color accessibility with prefers-color-scheme, forced-colors, and inverted-colors media queries.

pattern

Accessible Contrast - @prefers-contrast + @prefers-reduced-transparency

CodePen

CodePen pattern demonstrating user-choice contrast with prefers-contrast and prefers-reduced-transparency queries for inclusive visual options.

pattern

Accessible Motion - @prefers-reduced-motion + @prefers-reduced-data

CodePen

CodePen pattern demonstrating user-choice motion with prefers-reduced-motion and prefers-reduced-data queries to support comfort and performance.

pattern

Reduced motion border

CodePen

CodePen snippet demonstrating reduced-motion-friendly border animation behavior for inclusive visual feedback.

collection

Google Learn Accessibility – forms

CodePen

CodePen collection supporting Google Learn Accessibility form lessons with examples for labels, validation, fieldsets, and accessible inputs.

collection

Google Learn Accessibility – testing

CodePen

CodePen collection supporting Google Learn Accessibility testing lessons with examples for semantics, keyboard behavior, and assistive tech.

pattern

Accessible Forms - field descriptions

CodePen

CodePen snippet demonstrating accessible field descriptions and supplementary guidance for form inputs.

pattern

Accessible Forms - field errors

CodePen

CodePen snippet demonstrating accessible form error handling and clear error association patterns.

pattern

Accessible Forms - grouped form fields

CodePen

CodePen snippet demonstrating accessible grouping of related form fields with semantic labeling.

pattern

Inaccessible landing page - AT fixes applied

CodePen

CodePen example showing accessibility fixes applied to an inaccessible landing page as part of Google Learn Accessibility testing workflows.

pattern

Inaccessible landing page - manual fixes applied

CodePen

CodePen example of an inaccessible landing page after manual accessibility fixes were applied.

pattern

Inaccessible landing page - automated fixes applied

CodePen

CodePen example of an inaccessible landing page after automated fixes were applied for comparison and validation.

pattern

Inaccessible landing page

CodePen

CodePen example of an inaccessible landing page used as a baseline for testing and remediation workflows.

pattern

Accessible JavaScript - Aria-pressed

CodePen

CodePen snippet demonstrating accessible toggle state handling with aria-pressed.

pattern

Accessible JavaScript - Aria-expanded

CodePen

CodePen snippet demonstrating disclosure state handling with aria-expanded.

pattern

Accessible JavaScript - Aria-live

CodePen

CodePen snippet demonstrating dynamic announcements with aria-live regions.

pattern

Accessible JavaScript - Trigger event (React)

CodePen

CodePen snippet demonstrating accessible trigger-event behavior implemented in React.

collection

Google Learn Accessibility – JavaScript

CodePen

CodePen collection supporting Google Learn Accessibility JavaScript lessons with examples for accessible interactivity and dynamic UI state.

pattern

Accessible Structure - Focus styling

CodePen

CodePen snippet demonstrating accessible focus styling patterns.

pattern

Accessible Structure - Skip link

CodePen

CodePen snippet demonstrating accessible skip-link structure for keyboard navigation.

pattern

Accessible Structure - Focus order

CodePen

CodePen snippet demonstrating focus-order structure and keyboard flow.

collection

Google Learn Accessibility – structure

CodePen

CodePen collection supporting Google Learn Accessibility structure lessons with examples for landmarks, headings, semantics, and page layout.

pattern

Accessible Motion - Accessible JavaScript motion toggle

CodePen

CodePen snippet demonstrating an accessible JavaScript motion toggle control.

collection

Google Learn Accessibility – animation and motion

CodePen

CodePen collection supporting Google Learn Accessibility animation lessons with examples for reduced motion and inclusive animated experiences.

pattern

Accessible Motion - @prefers-reduced-motion (motion default)

CodePen

CodePen snippet demonstrating a motion-default experience adjusted with prefers-reduced-motion.

pattern

Accessible Motion - @prefers-reduced-motion (no motion default)

CodePen

CodePen snippet demonstrating a reduced-motion-first pattern with optional motion enhancements.

pattern

Accessible Motion - Multiple media queries

CodePen

CodePen snippet demonstrating motion accessibility with multiple user-preference media queries.

pattern

Accessible Color - Multiple media queries

CodePen

CodePen snippet demonstrating color accessibility adaptations across multiple user-preference media queries.

pattern

Accessible Color - @prefers-contrast

CodePen

CodePen snippet demonstrating accessible color adaptations using prefers-contrast.

pattern

Accessible Color - @prefers-color-scheme

CodePen

CodePen snippet demonstrating accessible color adaptations using prefers-color-scheme.

pattern

Accessible Color - Color in context

CodePen

CodePen snippet demonstrating evaluating color choices in context instead of isolated swatches.

collection

Accessible pattern examples

CodePen

CodePen collection of accessible front-end pattern examples showing inclusive HTML, CSS, JavaScript, and ARIA techniques in practical scenarios.

collection

Google Learn Accessibility – color and contrast

CodePen

CodePen collection supporting Google Learn Accessibility color lessons with examples for contrast, color independence, and visual design choices.

pattern

Accessible Color - Hue

CodePen

CodePen snippet exploring hue choices and how color hue impacts accessible interface readability.

pattern

Accessible Color - Lightness

CodePen

CodePen snippet demonstrating lightness considerations for accessible color combinations.

pattern

Accessible Color - Saturation

CodePen

CodePen snippet demonstrating saturation considerations for accessible color usage.

pattern

Accessible Typography - Structure

CodePen

CodePen snippet demonstrating typography structure patterns that improve readability and comprehension.

pattern

Accessible Typography - Spacing

CodePen

CodePen snippet demonstrating accessible typography spacing techniques for clearer reading flow.

pattern

Accessible Typography - Text alignment

CodePen

CodePen snippet demonstrating accessible text alignment choices for improved readability.

pattern

Accessible Typography - Letter characteristics

CodePen

CodePen snippet demonstrating accessible letterform characteristics that support legibility.

pattern

Accessible Informative Images - SVG + title

CodePen

CodePen snippet showing informative SVG images with title-based labeling for assistive technologies.

pattern

Accessible Complex Images - Figure + figcaption

CodePen

CodePen snippet demonstrating figure and figcaption usage for accessible complex image context.

collection

Google Learn Accessibility – typography

CodePen

CodePen collection supporting Google Learn Accessibility typography lessons with examples for text spacing, font choices, and type scale.

pattern

Accessible Typography - Typeface

CodePen

CodePen snippet demonstrating typeface decisions that support accessible reading experiences.

pattern

Accessible Color - Color contrast ratios

CodePen

CodePen snippet demonstrating color contrast ratio checks for accessible visual design.

pattern

Accessible Complex Images - ARIA describedby

CodePen

CodePen snippet demonstrating complex image descriptions using ARIA describedby associations.

pattern

Accessible Complex Images - Long description

CodePen

CodePen snippet demonstrating long description techniques for accessible complex images.

collection

Google Learn Accessibility – images

CodePen

CodePen collection supporting Google Learn Accessibility image lessons with examples for alternative text, decorative images, and SVG handling.

pattern

Accessible Informative Images - Image alt

CodePen

CodePen snippet demonstrating accessible informative image handling with meaningful alternative text.

pattern

Accessible Decorative Images - All

CodePen

CodePen snippet demonstrating decorative image patterns and how to keep non-informative visuals out of the accessibility tree.

pattern

Accessible Functional Images - Image alt

CodePen

CodePen snippet demonstrating functional image links and controls with appropriate alternative text.

pattern

Accessible Informative Images - Visually hidden

CodePen

CodePen snippet demonstrating visually hidden techniques for accessible informative image context.

pattern

Accessible Functional Images - Visually hidden

CodePen

CodePen snippet demonstrating visually hidden text support for functional images.

pattern

Accessible Functional Images - Image title + alt

CodePen

CodePen snippet demonstrating functional images using title and alt attributes for accessible context.

pattern

Accessible Decorative Images - CSS background

CodePen

CodePen snippet demonstrating decorative images implemented as CSS backgrounds to reduce accessibility noise.

pattern

Accessible Decorative Images - ARIA hidden

CodePen

CodePen snippet demonstrating decorative image handling with ARIA hidden to avoid redundant announcements.

pattern

Accessible Decorative Images - ARIA role="none"

CodePen

CodePen snippet demonstrating decorative image handling with ARIA role none.

pattern

Accessible Decorative Images - ARIA role="presentation"

CodePen

CodePen snippet demonstrating decorative image handling with ARIA role presentation.

pattern

Accessible Decorative Images - Empty or "null" alt

CodePen

CodePen snippet demonstrating empty alt usage for decorative images.

collection

Inaccessible pattern examples

CodePen

CodePen collection of intentionally inaccessible examples used to compare barriers with more inclusive front-end patterns and practical fixes.

pattern

Happy V-day - Accessible SVG example (step 1)

CodePen

CodePen snippet showing the first step in the Happy V-day accessible SVG progression.

pattern

Happy V-day - Accessible SVG example (step 2)

CodePen

CodePen snippet showing the second step in the Happy V-day accessible SVG progression.

pattern

Happy V-day - Accessible SVG example (step 3)

CodePen

CodePen snippet showing the third step in the Happy V-day accessible SVG progression.

pattern

Happy V-day - Accessible SVG example (step 4)

CodePen

CodePen snippet showing the fourth step in the Happy V-day accessible SVG progression.

pattern

Happy V-day - Accessible SVG example (step 5)

CodePen

CodePen snippet showing the fifth step in the Happy V-day accessible SVG progression.

pattern

Accessible JavaScript - Accessible modal pattern (React)

CodePen

CodePen snippet demonstrating an accessible modal pattern built with React and keyboard-friendly interaction behavior.

pattern

Accessible JavaScript - Inaccessible modal pattern (React)

CodePen

CodePen snippet demonstrating an inaccessible React modal pattern for comparison and remediation testing.

pattern

I ❤️ NY - Accessible SVG example (step 5)

CodePen

CodePen snippet showing step 5 of the I ❤️ NY accessible SVG progression.

pattern

I ❤️ NY - Accessible SVG example (step 4)

CodePen

CodePen snippet showing step 4 of the I ❤️ NY accessible SVG progression.

pattern

I ❤️ NY - Accessible SVG example (step 3)

CodePen

CodePen snippet showing step 3 of the I ❤️ NY accessible SVG progression.

pattern

I ❤️ NY - Accessible SVG example (step 2)

CodePen

CodePen snippet showing step 2 of the I ❤️ NY accessible SVG progression.

pattern

I ❤️ NY - Accessible SVG example (step 1)

CodePen

CodePen snippet showing step 1 of the I ❤️ NY accessible SVG progression.

pattern

Inaccessible simple form pattern

CodePen

CodePen snippet demonstrating an inaccessible simple form pattern for testing and remediation comparison.

pattern

Accessible simple form pattern

CodePen

CodePen snippet demonstrating an accessible simple form pattern with clear labels and usable input structure.

pattern

Inaccessible modal pattern

CodePen

CodePen snippet demonstrating an inaccessible modal pattern for accessibility testing and remediation comparison.

pattern

Accessible modal pattern

CodePen

CodePen snippet demonstrating an accessible modal pattern with expected focus and keyboard behavior.

pattern

Inaccessible accordion pattern

CodePen

CodePen snippet demonstrating an inaccessible accordion pattern for testing and remediation comparison.

pattern

Accessible accordion pattern

CodePen

CodePen snippet demonstrating an accessible accordion pattern with semantic controls and keyboard support.

pattern

Inaccessible navigation pattern (with color changing links)

CodePen

CodePen snippet demonstrating an inaccessible navigation pattern for testing and comparison with remediated approaches.

pattern

Accessible table pattern

CodePen

CodePen snippet demonstrating an accessible table pattern with semantics that support assistive technology users.

pattern

Inaccessible table pattern

CodePen

CodePen snippet demonstrating an inaccessible table pattern used for testing and remediation comparisons.

pattern

Which button pattern is the most accessible?

CodePen

CodePen snippet for comparing button implementation patterns and evaluating which is most accessible.

pattern

Which contextual link pattern is the most accessible?

CodePen

CodePen snippet for comparing contextual link patterns and evaluating which approach is most accessible.

pattern

Which SVG image pattern is the most accessible?

CodePen

CodePen snippet for comparing SVG image patterns and evaluating the most accessible implementation.

collection

Accessible pattern test answers

CodePen

CodePen collection of answer examples for accessible pattern exercises, showing corrected markup and behavior for inclusive components.

collection

Accessible pattern test questions

CodePen

CodePen collection of exercise prompts for practicing accessible pattern analysis, hands-on testing, and thoughtful markup remediation.

pattern

Accessible navigation pattern (with color changing links)

CodePen

CodePen snippet demonstrating an accessible navigation pattern that changes link colors while preserving usability.

pattern

Accessible SVG Pattern Comparison (updated for 2022)

CodePen

CodePen compares twelve SVG patterns across platforms, browsers, and screen readers to reveal which approaches deliver strong accessibility.

pattern

Accessible button patterns

CodePen

CodePen compares accessible button patterns – native buttons, ARIA role overrides, and link-as-button variants – to evaluate reliable markup choices.

pattern

Accessible link patterns

CodePen

CodePen explores accessible link patterns – standard anchors, button-styled links, and skip links – to identify dependable markup for assistive tech.

pattern

Accessible SVG patterns

CodePen

CodePen compares accessible SVG approaches – inline SVG, img, CSS background, and object – to reveal techniques that deliver consistent support.

pattern

Light/Dark mode with SVGs

CodePen

CodePen demonstrating accessible SVG theming with prefers-color-scheme so light and dark mode variations remain readable and inclusive.

pattern

Reduced motion text drawing using SVGs

CodePen

CodePen demonstrating accessible SVG motion handling with prefers-reduced-motion and calmer alternatives for people who limit animation.

pattern

Light/Dark mode + reduced motion with SVGs (Karma Chameleon)

CodePen

CodePen combines prefers-color-scheme and prefers-reduced-motion so animated SVG artwork adapts across light, dark, and reduced-motion settings.

pattern

Accessible SVG Pattern Comparison (old version)

CodePen

CodePen snippet preserving the older SVG pattern comparison version for browser and screen reader behavior reference.

collection

Accessible SVGs

CodePen

CodePen collection of accessible SVG examples covering alternative text, ARIA labeling, theming, and motion preferences for vector graphics.

pattern

Accessible bee SVG with title

CodePen

CodePen demo of an accessible bee SVG that supplies its alternative text entirely through a single inline title element in the markup.

pattern

Accessible bee SVG with aria-labelledby + title

CodePen

CodePen demo of an accessible bee SVG that pairs an aria-labelledby attribute with an inline title element to expose an accessible name.

pattern

Accessible bee SVG with title + desc

CodePen

CodePen demo of an accessible bee SVG that uses both title and desc elements to provide a short name and a longer text description.

pattern

Accessible bee SVG with aria-labelledby + title + desc

CodePen

CodePen demo of an accessible bee SVG that combines aria-labelledby with title and desc elements for a fully described inline graphic.

pattern

Accessible bee SVG with alt text

CodePen

CodePen demo of an accessible bee SVG referenced through an img element and paired with clear, descriptive alternative text for it.

pattern

Deque University - Accessible Radio Buttons

CodePen

CodePen comparing accessible radio group patterns built with native HTML and ARIA so the behavior can be tested across assistive technologies.

pattern

Floating vote block

CodePen

CodePen snippet demonstrating an accessible floating vote block interaction pattern.