You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Non-urgent updates<Boxaria-live="polite"role="status">
3 items found
</Box>// Urgent updates (errors)<Alertaria-live="assertive"role="alert">Failedtosavechanges</Alert>
Keyboard Navigation
Key
Action
Tab
Move to next focusable element
Shift+Tab
Move to previous focusable element
Enter / Space
Activate buttons
Arrow keys
Navigate within widgets (tabs, menus)
Escape
Close modals, dropdowns
Home / End
Jump to start/end of list
Focus Management
// Focus trap in modals (MUI handles this automatically)<Dialogopen={open}onClose={onClose}>{/* Focus is trapped inside */}</Dialog>// Return focus to trigger on close (MUI handles this)// Manual focus for custom componentsconstinputRef=useRef<HTMLInputElement>(null);useEffect(()=>{if(isVisible)inputRef.current?.focus();},[isVisible]);
Custom Clickable Elements
// If using a non-button as clickable, add keyboard support<Boxrole="button"tabIndex={0}onClick={handleClick}onKeyDown={(e)=>{if(e.key==='Enter'||e.key===' '){e.preventDefault();handleClick();}}}>
Custom clickable element
</Box>
Checklist
All interactive elements are keyboard accessible
Focus order follows visual layout
Focus indicator is visible (not removed)
Modals trap focus and return focus on close
Color is not the only way to convey information (add icons/text)
Images have meaningful alt text (or alt="" for decorative)