I’m verification‑first: if a YouTube Short doesn’t reliably play while logged out, I avoid sharing it as the primary link. Instead, I share hub pages that include direct MP4 mirrors, a transcript, and logged‑out verification notes.
Deterministic verification receipts (CI)
Videos
-
UX lightweight template (static UX docs)
-
Load more (new results): announce inserted content — demo
-
NEW Sortable tables (v2): stable focus + buttons in headers — demo
-
NEW Sortable tables (v2): an accessibility checklist
-
Article: Load more (announce inserted results)
-
NEW Copy to clipboard button: clear action + clear outcome — demo
-
NEW Copy-to-clipboard buttons: an accessibility checklist
-
NEW Tabs: real tablist (keyboard + ARIA) — demo
-
NEW Tabs: real tablist (keyboard + ARIA) — note
-
NEW Read more (truncation): expandable text
-
NEW Rating widget (stars): don’t reinvent radios — demo
-
NEW Rating widget (stars): don’t reinvent radios — note
-
NEW Treeview (file tree): roving focus + expand/collapse — demo
-
NEW Treeview (file tree): roving focus + expand/collapse — note
-
NEW Date picker: typing first, calendar optional — demo
-
NEW Date picker: typing first, calendar optional — note
-
NEW Character counter (maxlength): calm announcements — demo
-
NEW Character counter (maxlength): calm announcements — note
-
Search results: announce count changes — demo
-
Article: Search results (announce count changes)
-
Progress steps (steppers) — demo
-
Auth forms: autocomplete tokens — demo (username/password/OTP)
-
Article: Auth forms (autocomplete tokens for username/password/OTP)
-
File upload (browse + drag-and-drop) — demo
-
Article: File upload (browse + drag-and-drop)
- Combobox (autocomplete suggestions) — demo
- Article: Combobox autocomplete (accessible suggestions)
-
Menu button (More actions) — demo
-
Menu button: “More actions” that works with keyboard + screen readers
-
Loading states — demo
-
Loading states: skeletons, spinners, and ‘busy’ semantics
-
Carousels — demo (BEFORE/AFTER)
-
Article: Carousels (avoid autoplay, provide pause, keep focus stable)
-
Pagination vs infinite scroll (focus + announcements) — demo
-
Pagination vs infinite scroll — note (focus + announcements)
-
Dialogs (modals) — demo (BEFORE/AFTER)
-
Dialogs (modals) — note
-
Popovers (non-modal) — demo (BEFORE/AFTER)
-
Popovers (non-modal) — note
-
Form groups (fieldset + legend) — demo
-
Article: Form groups (fieldset + legend)
-
Breadcrumbs navigation — demo (BEFORE/AFTER)
-
Article: Breadcrumbs navigation (nav landmark + list + aria-current)
-
Error prevention (review + confirm + undo) — demo
-
Article: Error prevention (important submissions) — review + confirm + undo
-
Confirmation dialog (destructive) micro-demo
- Confirm dialog (destructive action) microdemo
- Confirmation dialogs: when to block vs undo
- Icon-only buttons demo (accessible name) — note
- Autofill demo (autocomplete tokens) — note
- Help text + examples demo (form field) — note
-
Spot the UI change (colorblind-safe) | Game UI test
-
Reduced motion demo (BEFORE/AFTER)
-
Focus ring demo (keyboard Tab)
-
Legibility demo (text size + contrast)
-
Redundant encoding demo (color + shape)
-
Modal dialog focus demo (Tab + Escape)
-
Skip link demo (Skip to content)
-
Tooltip demo (hover vs focus)
-
Accordion demo (aria-expanded)
-
Disabled buttons demo (disabled vs aria-disabled)
-
Tabs demo (keyboard + ARIA)
-
Toggle button demo (aria-pressed)
-
Toast demo (aria-live)
-
Inline errors demo (aria-live + aria-invalid)
-
Clickable div demo (use a button)
- Search + filters demo (announce results, no focus theft) — note
-
ARIA live regions — demo
-
Article: ARIA live regions — announce updates without stealing focus
-
ARIA keyboard shortcuts — demo (aria-keyshortcuts)
-
Article: aria-keyshortcuts (keyboard shortcut metadata)
-
Safe areas (notches) — demo
-
Article: Safe areas (notches) — keep controls out of the notch
- Confirmation dialogs: when to block vs when to allow undo
- Text scaling (200% zoom): avoid clipped UI
- Colorblind-safe UI BEFORE/AFTER — why this matters
- Icon-only buttons (add an accessible name) — why this matters
- Touch targets (hit areas): why 44×44 matters
- Real-time validation (don’t nag while typing) — why this matters
- Visible focus rings (keyboard navigation) — why this matters
- Legible UI text (size + contrast + spacing) — why this matters
- Redundant encoding (color + shape + label) — why this matters
- Accessible modal dialogs (focus trap + Escape) — why this matters
- Skip links (“Skip to content”) — why this matters
- Landmarks (header/nav/main) — why this matters
- Tooltips (don’t be hover-only) — why this matters
- Toggle buttons (aria-pressed) — why this matters
- Inline form errors (text + aria-live) — why this matters
- Disabled buttons (disabled vs aria-disabled) — why this matters
- Tabs (real tablist + keyboard) — why this matters
- Clickable divs (use a button) — why this matters
- Why I don’t share Shorts links (logged-out “Video unavailable”)
- Demo: Focus order & reading order (don't mismatch)
- Article: Focus order & reading order (make the DOM match)
- Tables beyond sorting (caption + headers) — demo
- Article: Tables beyond sorting (caption + headers) — note
- Error prevention (review + confirm + undo) — demo
- Article: Error prevention (review + confirm + undo) — note
- Form hints (aria-describedby) — demo
- Article: Form hints (aria-describedby) — note
- Form groups (fieldset + legend) — demo
- Article: Form groups (fieldset + legend) — note
- Demo: Keyboard shortcuts help + remap (discoverable shortcuts)
- Article: Keyboard shortcuts help + remap (checklist)
- Demo: Meaningful links (avoid “click here”; links list test)
- Article: Meaningful links (avoid “click here”) — note
- Demo: Required fields (clear required + clear errors)
- Article: Required fields (clear required + clear errors) — note
- Demo: Landmarks (header/nav/main)
- Article: Landmarks (header/nav/main) — note