WCAG 2.4.3 Focus Order — Testing Guide for Mobile & Web Apps

WCAG 2.4.3, Level A, is a fundamental accessibility requirement focused on focus order. In simple terms, it mandates that interactive elements on a page or screen must receive focus in a logical and p

April 11, 2026 · 6 min read · WCAG Guides

Ensuring Predictable Navigation: A Practical Guide to WCAG 2.4.3 Focus Order

WCAG 2.4.3, Level A, is a fundamental accessibility requirement focused on focus order. In simple terms, it mandates that interactive elements on a page or screen must receive focus in a logical and predictable sequence. This means when a user navigates using a keyboard or assistive technology, the focus should move in a way that makes sense for the content's structure.

Why Focus Order Matters: Beyond Compliance

A logical focus order is crucial for users who rely on keyboard navigation or screen readers. Without it, these users can become disoriented, unable to interact with essential application features.

This criterion is directly relevant to legal mandates like the EU European Accessibility Act (EAA) and the Americans with Disabilities Act (ADA), which require digital content to be accessible to all users. Non-compliance can lead to legal challenges and reputational damage.

Common Focus Order Violations and Examples

Violations of WCAG 2.4.3 are frequent and can significantly hinder user experience.

#### Mobile App Examples

  1. Out-of-Order Form Fields: Imagine a registration form where the focus jumps from the "First Name" field to the "Submit" button, then back to the "Last Name" field. A user would be unable to input their full name sequentially.
  2. Confusing Navigation Drawer: On a mobile app, after opening a navigation drawer, pressing Tab might unexpectedly return focus to the main content area or jump to an unrelated element rather than cycling through the drawer's navigation links.
  3. Dialog Box Interaction: When a modal dialog appears (e.g., a confirmation prompt), the focus should ideally move *into* the dialog. If the focus remains on the underlying screen, keyboard users cannot interact with the dialog's buttons ("Confirm," "Cancel").

#### Web Application Examples

  1. Misplaced Links: A common issue is having links or buttons appear visually in a logical order but have their tab order determined by their HTML source order, which might be scattered. For instance, a "Next" button might appear after a paragraph of text, but due to its placement in the DOM, the keyboard focus might jump to a footer element before reaching it.
  2. Skipping Over Critical Controls: In a complex dashboard, a user might tab past important filter controls or action buttons because they are not sequentially ordered with the rest of the interactive elements on the screen.
  3. Dynamic Content Insertion: When content is loaded dynamically (e.g., search results), the focus might not be programmatically moved to the newly added interactive elements, leaving keyboard users unaware of their existence.

Testing for Focus Order Compliance

Ensuring correct focus order requires a combination of manual inspection and automated checks.

#### Manual Testing Steps

  1. Keyboard Navigation:
  1. Arrow Keys (for specific controls): For elements like radio button groups or tab panels, ensure that arrow keys navigate within the group as expected.
  2. Focus Trapping: For modals or pop-ups, ensure that focus remains trapped within the dialog until it is closed. Tabbing should not allow the user to escape the modal's interactive elements.

#### Automated Tools for Focus Order Checks

While manual testing is indispensable for focus order, several tools can assist:

#### Mobile-Specific Considerations (Android/iOS)

Fixing Focus Order Violations

Addressing focus order issues often involves a combination of code structure and specific attributes.

#### Web Applications

  1. HTML Structure: The most robust solution is to ensure interactive elements are placed in the HTML in a logical order. The default tab order follows the DOM order.
  2. 
        <!-- Good: Elements are in a logical order -->
        <label for="firstName">First Name:</label>
        <input type="text" id="firstName">
    
        <label for="lastName">Last Name:</label>
        <input type="text" id="lastName">
    
        <button type="submit">Submit</button>
    
  3. tabindex Attribute:

Example of managing focus with tabindex:


    // When a modal opens
    const modal = document.getElementById('myModal');
    const firstFocusableElement = modal.querySelector('button, [tabindex="0"]');
    if (firstFocusableElement) {
        firstFocusableElement.focus(); // Programmatically move focus into the modal
    }

    // When a modal closes
    const previouslyFocusedElement = document.getElementById('previousButton');
    if (previouslyFocusedElement) {
        previouslyFocusedElement.focus(); // Return focus to the element that triggered the modal
    }
  1. ARIA Roles and Attributes: For complex widgets (like custom dropdowns or tabs), use ARIA roles and attributes to define their behavior and ensure assistive technologies understand their structure and interaction patterns, which can indirectly influence focus management.

#### Mobile Applications (Native)

How SUSA Checks for Focus Order

SUSA tackles WCAG 2.4.3 focus order through its autonomous exploration and intelligent analysis.

  1. Autonomous Exploration: SUSA uploads your APK or web URL and begins exploring your application without any manual scripting. It navigates through your app's screens and pages, interacting with elements as different user personas would.
  2. Persona-Based Testing: SUSA simulates various user types, including the novice, elderly, and power user, who often rely more heavily on predictable navigation. These personas naturally test the focus flow.
  3. Flow Tracking: SUSA tracks key user flows like login, registration, and checkout. During these critical journeys, it verifies that interactive elements are reachable and focusable in a logical sequence.
  4. Identifying Anomalies: If SUSA encounters a situation where focus jumps unexpectedly, skips interactive elements, or gets trapped incorrectly (e.g., in a modal that should allow escape), it flags this as a potential WCAG 2.4.3 violation.
  5. Auto-Generated Regression Scripts: Crucially, SUSA doesn't just find issues; it auto-generates Appium (Android) and Playwright (Web) regression test scripts. These scripts capture the observed focus order behavior. If the focus order breaks in a future build, these generated scripts will fail, providing immediate feedback.
  6. Cross-Session Learning: With each run, SUSA gets smarter about your application's structure and common interaction patterns, improving its ability to detect subtle focus order issues over time.

By integrating SUSA into your QA process, you can proactively identify and fix focus order problems, ensuring a more inclusive and usable application for all users, thereby meeting critical accessibility standards like WCAG 2.4.3.

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