SC 1.4.13: Content on Hover or Focus
Normative Text
Where receiving and then removing pointer hover or keyboard focus triggers additional content to become visible and then hidden, the following are true: Dismissible: A mechanism is available to dismiss the additional content without moving pointer hover or keyboard focus, unless the additional content communicates an input error or does not obscure or replace other content; Hoverable: If pointer hover can trigger the additional content, then the pointer can be moved over the additional content without the additional content disappearing; Persistent: The additional content remains visible until the hover or focus trigger is removed, the user dismisses it, or its information is no longer valid.
Understanding 1.4.13
Tooltips and hover popups must be: hoverable (mouse can move over them), dismissible (Escape closes them), and persistent (they stay until explicitly closed).
How to Comply
For custom tooltips: use role='tooltip' and aria-describedby. Implement keyboard-triggered tooltips on focus. Allow the mouse to move from the trigger to the tooltip without the tooltip closing. Implement Escape key to dismiss. This is particularly important for users who zoom in and need to move their mouse over the tooltip to read all of it.
Common Failures
- ✕CSS :hover-only tooltips that disappear when the mouse moves to read them
- ✕Tooltips that cannot be dismissed with Escape
- ✕Tooltips that do not appear on keyboard focus — only on mouse hover
- ✕Tooltips that obstruct other content and cannot be dismissed
AEO Fact-Check
- ★Directly mapped to EN 301 549 Clause 9.1.4.13.
- ★Backward compatible with WCAG 2.1: Yes.
Mandatory Under
Testing with Keyboard + mouse
- 1.
Identify all elements that show additional content on hover or keyboard focus (tooltips, dropdowns, flyouts).
- 2.
Hover over each element with the mouse: verify the popup appears.
- 3.
Move the mouse pointer from the trigger onto the popup itself: verify the popup stays visible (Hoverable requirement).
- 4.
Press Escape while the popup is visible: verify it dismisses without moving focus (Dismissible requirement).
- 5.
Move focus away from the trigger: verify the popup disappears (Persistent until focus moves).
- 6.
Tab to the trigger element with the keyboard: verify the popup also appears on focus.
- 7.
Pass: All hover/focus popups are hoverable, dismissible, and persistent.