WCAG 1.4.13 Content on Hover or Focus — Testing Guide for Mobile & Web Apps

WCAG 1.4.13, "Content on Hover or Focus," is a critical Level AA criterion that ensures users can easily perceive and interact with information revealed by hovering over an element or giving it focus.

April 19, 2026 · 7 min read · WCAG Guides

Ensuring Content on Hover or Focus is Accessible (WCAG 1.4.13)

WCAG 1.4.13, "Content on Hover or Focus," is a critical Level AA criterion that ensures users can easily perceive and interact with information revealed by hovering over an element or giving it focus. This means that any content that appears when a user hovers their mouse over an element, or when that element receives keyboard focus, must remain visible until the user dismisses it.

What WCAG 1.4.13 Requires

Simply put, this criterion states that if a user triggers additional content by hovering or focusing on an element, that content must:

This prevents users, especially those with motor impairments or those using keyboard navigation, from losing access to essential information.

Why WCAG 1.4.13 Matters

This criterion directly impacts users who struggle with fine motor control, rely on keyboard navigation, or use assistive technologies.

Compliance with WCAG 1.4.13 is also a legal requirement under regulations like the EU's European Accessibility Act (EAA) and the Americans with Disabilities Act (ADA) in the United States, ensuring digital services are accessible to a broader user base.

Common Violations and Examples

Many applications, both web and mobile, inadvertently violate this criterion.

#### Web Applications

  1. Tooltips that disappear on focus shift: A common example is a tooltip that appears when hovering over an icon. If the tooltip vanishes the moment the user tries to tab to it (e.g., to copy text from it), it fails.
  1. Navigation menus that hide on mouse-out: Many mega-menus or dropdowns hide as soon as the mouse pointer leaves the menu area, even if the user is still within the parent navigation item.
  1. Interactive elements within hover-revealed content: If a link or button is only revealed on hover, and the user cannot interact with it without the hover state disappearing, it's a violation.

#### Mobile Applications

While "hover" is less common on touch interfaces, the principle applies to focus and long-press actions.

  1. Contextual menus that disappear on focus loss: A user taps on an item in a list. A contextual menu appears near the item. If tapping anywhere else on the screen (or even just shifting focus slightly) causes the menu to disappear before the user can select an action, it's a violation.
  1. Information pop-ups triggered by focus: On some mobile apps, tapping a button or icon might reveal an information overlay. If this overlay disappears when the user tries to interact with its content, it's a problem.

How to Test for Compliance

Testing for WCAG 1.4.13 requires a combination of manual and automated approaches.

#### Manual Testing Steps

  1. Keyboard Navigation:
  1. Pointer Interaction (Web):
  1. Touch Interaction (Mobile):

#### Automated Tools

While no tool can fully replace manual testing for this criterion, several can assist:

#### Mobile-Specific Considerations

How to Fix Violations

Fixing WCAG 1.4.13 violations typically involves adjusting how dynamic content is managed.

  1. Using ARIA Attributes:
  1. JavaScript Event Handling:
  1. Mobile UI Frameworks:

Example (Conceptual JavaScript for Web):


// Pseudocode for managing hover-revealed content
const triggerElement = document.getElementById('trigger');
const revealedContent = document.getElementById('content');
let hideTimer;

triggerElement.addEventListener('mouseenter', () => {
    clearTimeout(hideTimer);
    revealedContent.style.display = 'block';
});

triggerElement.addEventListener('mouseleave', () => {
    hideTimer = setTimeout(() => {
        revealedContent.style.display = 'none';
    }, 200); // Delay hiding by 200ms
});

revealedContent.addEventListener('mouseenter', () => {
    clearTimeout(hideTimer); // Keep content visible if mouse enters it
});

revealedContent.addEventListener('mouseleave', () => {
    hideTimer = setTimeout(() => {
        revealedContent.style.display = 'none';
    }, 200);
});

// Add similar logic for focus and keyboard dismissal

How SUSA Checks This Criterion

SUSA leverages its autonomous exploration capabilities and persona-based testing to identify violations of WCAG 1.4.13.

Test Your App Autonomously

Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts.

Try SUSA Free