Skip to main content
🎉 A11y Issue Detection Agent is now live! Detect accessibility issues like a WCAG expert with AI. Try now!
No Result Found
Connect & Get help from 6000+ developers on our Discord community. Ask the CommunityAsk the Community

Screen reader focus for interactive elements

The Screen reader focus for interactive elements rule ensures that all elements accessible through touch exploration are also reachable during navigation with assistive technologies. This rule is critical for users who rely on screen readers like TalkBack (Android) or VoiceOver (iOS) to navigate mobile apps.

  • Rule Category: Focus and Navigation
  • WCAG 2.1 & 2.2 SC: 2.4.3 (A)
  • Rule Severity: Critical
  • Supported Platforms and Frameworks: Android, iOS, React Native, Flutter

Success criteria

The specific criteria for success are:

  • Each interactive element (buttons, inputs, links, custom controls) that a user can focus with touch exploration must also be focusable during linear navigation.
  • All interactive elements must be included in the accessibility tree.

How to fix

To fix Screen Reader Focus for Interactive Elements violations:

  • Verify that importantForAccessibility is not set to no for interactive elements. Set it to yes or auto to ensure the element is included in the accessibility tree.
  • Ensure that parent containers do not have importantForAccessibility set to no or no-hide-descendants, which can prevent child elements from being included in the accessibility tree.
  • Set isAccessibilityElement = true for interactive elements that need to be reachable through linear navigation with VoiceOver.
  • Ensure the isUserInteractionEnabled attribute is set correctly. Interactive elements must have this set to true for VoiceOver to recognize them as focusable targets.
  • Ensure that parent containers do not have accessibilityElementsHidden set to true, which can prevent child elements from being seen by screen readers.
  • Ensure accessible={true} is set for interactive components to include them in the accessibility tree.
  • Ensure that parent containers do not have importantForAccessibility="no" for Android or accessibilityElementsHidden={true} for iOS, which can prevent child elements from being included in the accessibility tree.
  • Wrap interactive widgets with the Semantics widget and set enabled: true to ensure they are included in the accessibility tree and can receive focus during screen reader navigation.
  • For custom interactive elements, wrap them in a Focus or Actions widget to ensure they are part of the navigation order.
  • Avoid using ExcludeSemantics widget on interactive elements.
  • Ensure that parent widgets do not have excludeFromSemantics: true, which can prevent child elements from being included in the accessibility tree.

Example

The following Android example scan report highlights a screen reader focus for interactive elements violation for an element that is set as important for accessibility but is not a part of the linear navigation order.

The App Accessibility Testing issue details window with a screen reader focus for interactive elements violation.

Error

  • The EditText element is marked as important for accessibility, isImportantForAccessibility=true, but is not included in the linear navigation order, isPartOfFocusOrder=false. As a result, the element is reachable through touch exploration as it is recognized as an interactive element, but a user navigating with a screen reader (such as TalkBack) will be unable to reach or interact with the element.

Fix

To fix this violation, ensure that the interactive element, EditText, is explicitly included in the linear navigation order:

  • Verify that importantForAccessibility is set to yes or auto to ensure the element is included in the accessibility tree.
  • Ensure that parent containers do not have importantForAccessibility set to no or no-hide-descendants, which can prevent child elements from being included in the accessibility tree.

References

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback

Is this page helping you?

Yes
No

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback!

Talk to an Expert
Download Copy Check Circle