Skip to main content
AccessibilityInfo allows you to query the current state of accessibility features and register to be notified when they change.

Methods

isScreenReaderEnabled()

Query whether a screen reader is currently enabled (VoiceOver on iOS, TalkBack on Android). Returns:
  • Promise that resolves to true when a screen reader is enabled, false otherwise
Example:

isBoldTextEnabled()

iOS only. Query whether bold text is currently enabled. Returns:
  • Promise that resolves to true when bold text is enabled, false otherwise
  • On Android, always resolves to false
Example:

isGrayscaleEnabled()

Query whether grayscale is currently enabled. Returns:
  • Promise that resolves to true when grayscale is enabled, false otherwise
Example:

isInvertColorsEnabled()

Query whether inverted colors are currently enabled. Returns:
  • Promise that resolves to true when invert colors is enabled, false otherwise
Example:

isReduceMotionEnabled()

Query whether reduced motion is currently enabled. Returns:
  • Promise that resolves to true when reduce motion is enabled, false otherwise
Example:

isReduceTransparencyEnabled()

iOS only. Query whether reduced transparency is currently enabled. Returns:
  • Promise that resolves to true when reduce transparency is enabled, false otherwise
  • On Android, always resolves to false
Example:

isHighTextContrastEnabled()

Android only. Query whether high text contrast is currently enabled. Returns:
  • Promise that resolves to true when high text contrast is enabled, false otherwise
Example:

isDarkerSystemColorsEnabled()

iOS only. Query whether darker system colors are currently enabled. Returns:
  • Promise that resolves to true when darker system colors are enabled, false otherwise
Example:

prefersCrossFadeTransitions()

iOS only. Query whether the user prefers cross-fade transitions. Returns:
  • Promise that resolves to true when cross-fade transitions are preferred, false otherwise
Example:

isAccessibilityServiceEnabled()

Android only. Query whether any accessibility service is currently enabled. Returns:
  • Promise that resolves to true when any accessibility service is enabled, false otherwise
Example:

addEventListener()

Add an event handler that fires when accessibility settings change. Supported Events: Cross-platform:
  • 'screenReaderChanged': Screen reader state changed
  • 'reduceMotionChanged': Reduce motion setting changed
iOS only:
  • 'boldTextChanged': Bold text setting changed
  • 'grayscaleChanged': Grayscale setting changed
  • 'invertColorsChanged': Invert colors setting changed
  • 'reduceTransparencyChanged': Reduce transparency setting changed
  • 'announcementFinished': Screen reader finished an announcement
  • 'darkerSystemColorsChanged': Darker system colors setting changed
Android only:
  • 'highTextContrastChanged': High text contrast setting changed
  • 'accessibilityServiceChanged': Accessibility service state changed
Returns:
  • EventSubscription with a remove() method
Example:
Announcement Finished (iOS):

announceForAccessibility()

Post a string to be announced by the screen reader. Parameters:
  • announcement: The string to be announced
Example:

announceForAccessibilityWithOptions()

Post a string to be announced by the screen reader with additional options. Parameters:
  • announcement: The string to be announced
  • options:
    • queue (iOS only): Queue announcement behind existing ones
    • priority (iOS only):
      • 'high': Interrupts ongoing speech, cannot be interrupted
      • 'default': Interrupts ongoing speech, can be interrupted
      • 'low': Won’t interrupt, can be interrupted
Example:

sendAccessibilityEvent()

Send a named accessibility event to a component. Parameters:
  • handle: Reference to a host component
  • eventType: Type of event to send
    • 'focus': Set accessibility focus
    • 'click': Announce click (Android only)
    • 'viewHoverEnter': Announce hover (Android only)
    • 'windowStateChange': Announce window change (Android only)
Example:

getRecommendedTimeoutMillis()

Android only. Get the recommended timeout for UI changes based on user accessibility settings. Parameters:
  • originalTimeout: Your default timeout in milliseconds
Returns:
  • Promise that resolves to the recommended timeout
Example:

Complete Example

Best Practices

  1. Respect reduce motion: Disable or simplify animations when isReduceMotionEnabled() returns true
  2. Announce important changes: Use announceForAccessibility() for dynamic content updates
  3. Test with screen readers: Enable VoiceOver (iOS) or TalkBack (Android) during development
  4. Adjust timeouts: Use getRecommendedTimeoutMillis() on Android for dismissible messages
  5. Handle events: Listen to accessibility changes and update your UI accordingly