WCAG 2.1 AA — release blocker
Keyboard
| Key | Action |
|---|---|
Escape | Close the sheet. |
Tab | Move focus to the next focusable element inside the sheet. |
Shift + Tab | Move focus to the previous focusable element inside the sheet. |
Screen reader
- Uses native
<dialog>element withshowModal()for automatic focus trapping. SheetTitleis announced when the sheet opens — always include one.SheetClosehasaria-label="Close".- Backdrop click dismisses via
onOpenChange(false).
Focus management
- On open, focus moves to the first focusable element inside the sheet.
- Focus is trapped —
Tab/Shift+Tabcycle within the sheet boundaries. - On close, focus returns to the trigger element.
React Native
- Uses
<Modal>withonRequestClosefor Android back button. - Backdrop
Pressabledismisses the sheet. SheetTitlehasaccessibilityRole="header".
Audit checklist
- Focus trapped inside the sheet while open
- Focus returns to trigger on close
-
Escapedismisses the sheet -
SheetTitlepresent and announced - Close mechanism visible (SheetClose or cancel button)
- 4.5:1 contrast on all text in light and dark