diff --git a/.cursor/rules/vercel-a11y-guidelines.mdc b/.cursor/rules/vercel-a11y-guidelines.mdc new file mode 100644 index 0000000000..eaf1f78444 --- /dev/null +++ b/.cursor/rules/vercel-a11y-guidelines.mdc @@ -0,0 +1,153 @@ +--- +alwaysApply: true +--- + +Concise rules for building accessible, fast, delightful UIs. Use MUST/SHOULD/NEVER to guide decisions. + +## Interactions + +### Keyboard + +- MUST: Full keyboard support per [WAI-ARIA APG](https://www.w3.org/WAI/ARIA/apg/patterns/) +- MUST: Visible focus rings (`:focus-visible`; group with `:focus-within`) +- MUST: Manage focus (trap, move, return) per APG patterns +- NEVER: `outline: none` without visible focus replacement + +### Targets & Input + +- MUST: Hit target ≥24px (mobile ≥44px); if visual <24px, expand hit area +- MUST: Mobile `` font-size ≥16px to prevent iOS zoom +- NEVER: Disable browser zoom (`user-scalable=no`, `maximum-scale=1`) +- MUST: `touch-action: manipulation` to prevent double-tap zoom +- SHOULD: Set `-webkit-tap-highlight-color` to match design + +### Forms + +- MUST: Hydration-safe inputs (no lost focus/value) +- NEVER: Block paste in ``/`