interactions@Ibelick
Use Accessible Primitives
MUST
MUST: Use accessible component primitives (Base UI, React Aria, Radix) for keyboard/focus behavior. These handle ARIA, focus management, and keyboard navigation correctly.
Anything with keyboard or focus behavior should be built on an accessible primitive (Base UI, React Aria, Radix)
Bad
Good
Why it matters
Building accessible components from scratch is genuinely hard: keyboard navigation, focus trapping, ARIA wiring, and screen reader announcements all have to be right at once. Primitive libraries have already paid that cost. Note the trigger is narrow — "anything with keyboard or focus behavior." A static card does not need a primitive; a menu, dialog, combobox, or tab set does.