WCAG 2.1 AA — release blocker
Keyboard
| Key | Action |
|---|---|
Tab | Focus the trigger, which shows the tooltip. |
Escape | Dismiss the tooltip while it is visible. |
No activation key needed — the tooltip appears on focus automatically.
Screen reader
- Tooltip content renders with
role="tooltip". - The trigger references the tooltip via
aria-describedby, so assistive tech reads the hint after the trigger's accessible name. - Shows on
mouseenterandfocus; hides onmouseleave,blur, andEscape.
Focus management
- Focus stays on the trigger element. The tooltip itself is not focusable.
- Dismissing with
Escapedoes not move focus.
React Native
- Triggers on
onLongPress— no hover on touch devices. accessibilityHintis set to the tooltip content string.
Color is never the only signal
- The tooltip background uses
bg-primarywithtext-primary-foreground— 4.5:1 contrast verified in light and dark.
Audit checklist
-
role="tooltip"present on the content element -
aria-describedbylinks trigger to tooltip - Visible on keyboard focus, not just mouse hover
- Escape dismisses without moving focus
- No interactive elements inside the tooltip
- 4.5:1 contrast in light and dark