We'd like to set Google Analytics cookies to learn how people use the Knowledge Base, so we can improve it. We set them only if you accept.

Skip to main content
Digital Accessibility Knowledge Base

ignored-by-assistive-technology

Mobile validation

Every interactive element must be reachable by assistive technologies such as VoiceOver.

Make sure every interactive element can receive VoiceOver focus. When an element is hidden from assistive technologies, for example with isAccessibilityElement = false in UIKit or .accessibilityHidden(true) in SwiftUI, VoiceOver, Switch Control, and Voice Control cannot reach it, and their users cannot use it at all. Make the control itself the accessibility element, not only its container. Native controls such as UIButton and SwiftUI's Button are exposed by default, so don't override that unless the element is purely decorative.

Note: This validation applies to iOS only, so there are no Android or cross-platform examples.

Pass Patterns

iOS

The button keeps its default accessibility settings, so VoiceOver can focus it.

Swift
let saveButton = UIButton(type: .system)
saveButton.setTitle("Save", for: .normal)

Fail Patterns

iOS

isAccessibilityElement = false hides the button from VoiceOver, so it cannot be reached.

Swift
let saveButton = UIButton(type: .system)
saveButton.setTitle("Save", for: .normal)
saveButton.isAccessibilityElement = false

Try It Yourself

Using a screen reader

New to screen reader testing, or need a refresher?
Review this article first: Practical guides for using screen readers

  1. Turn on VoiceOver.
  2. Swipe right and left to move through every element on the screen.
  3. Check whether VoiceOver reaches each interactive element.

Expected results: VoiceOver highlights every interactive element, announces it with the correct role, such as “button” or “switch”, and can activate it like other controls.

Actual results: VoiceOver skips the element, so it cannot be reached or activated.

Using developer tools

  1. In Xcode, open Xcode > Open Developer Tool > Accessibility Inspector, select the simulator or device, and point at the element.

Expected results: Accessibility Inspector selects the element and shows its label and traits.

Actual results: Accessibility Inspector does not select the element, and selects its container or another element instead.

FAQ

How does this issue relate to 1.3.1 Info and Relationships

WCAG 1.3.1 requires that information, structure, and relationships are exposed programmatically. If an interactive element is hidden from assistive technology, its role and state are not available, so the relationship “this is a control you can activate” is lost

When a control is not exposed, people using assistive technology cannot discover or operate it. The UI’s intended relationships, like a control paired with its accessible name, also fail to be conveyed

To support 1.3.1 for this issue:

  • Expose the control itself as the accessibility element
  • Do not hide interactive elements with isAccessibilityElement = false or .accessibilityHidden(true)
  • Prefer native controls so roles and states are provided by default
How does this issue relate to 2.4.3 Focus Order?

WCAG 2.4.3 requires that focus moves in a sequence that preserves meaning and operability. When an element is ignored by assistive technology, it is removed from the tab sequence. VoiceOver cannot focus it, so users cannot reach or activate it. The result is a broken order where focus skips important controls or lands on containers that do not operate the UI.

This relates to 2.4.3 when:

  • an interactive child is not exposed while its container takes focus
  • a control with custom actions is not exposed with isAccessible set to true
  • the traversal order skips, repeats, or traps focus compared to the visual order

To align with 2.4.3, ensure each interactive element is exposed to assistive technology, can receive VoiceOver focus, and appears in an order that matches the visual flow. Mark the actual control as the accessible element, not only its container, and expose any custom actions through isAccessible so users can operate the control in sequence.

Why is this issue marked as Critical?

An element hidden from assistive technologies is effectively invisible to VoiceOver, Switch Control, and Voice Control users. They cannot reach or activate it, so the feature it controls fails for them, and it is rated critical.

Standards and Regulations

StandardSuccess CriterionReference
WCAG 2.21.3.1 Info and Relationships (A)Information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text.
WCAG 2.22.4.3 Focus Order (A)If a web page can be navigated sequentially and the navigation sequences affect meaning or operation, focusable components receive focus in an order that preserves meaning and operability.
EN 301 54911.1.3.1 Info and RelationshipsSame as the WCAG text.
EN 301 54911.2.4.3 Focus OrderSame as the WCAG text.

Personas impacted by this issue