Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

5/1/2021 AccessibilityInfo · React Native

React Native 🌞

AccessibilityInfo
Sometimes it's useful to know whether or not the device has a screen reader that is
currently active. The AccessibilityInfo API is designed for this purpose. You can use it
to query the current state of the screen reader as well as to register to be notified when
the state of the screen reader changes.

Example
Function Component Class Component

AccessibilityInfo Function Component Example

import React, { useState, useEffect } from "react";


import { AccessibilityInfo, View, Text, StyleSheet } from "react-native";

const App = () => {


const [reduceMotionEnabled, setReduceMotionEnabled] = useState(false);
const [screenReaderEnabled, setScreenReaderEnabled] = useState(false);

useEffect(() => {
AccessibilityInfo.addEventListener(
"reduceMotionChanged",
handleReduceMotionToggled
);
AccessibilityInfo.addEventListener(
"screenReaderChanged",
handleScreenReaderToggled
);

AccessibilityInfo.isReduceMotionEnabled().then(
reduceMotionEnabled => {
setReduceMotionEnabled(reduceMotionEnabled);
}
);
AccessibilityInfo.isScreenReaderEnabled().then(
screenReaderEnabled => {
setScreenReaderEnabled(screenReaderEnabled);
Preview My Device iOS Android

https://reactnative.dev/docs/accessibilityinfo 1/6
5/1/2021 AccessibilityInfo · React Native

Reference
Methods
isBoldTextEnabled()

static isBoldTextEnabled()

iOS-Only. Query whether a bold text is currently enabled. Returns a promise which
resolves to a boolean. The result is true when bold text is enabled and false
otherwise.

isGrayscaleEnabled()

static isGrayscaleEnabled()

iOS-Only. Query whether grayscale is currently enabled. Returns a promise which


resolves to a boolean. The result is true when grayscale is enabled and false
otherwise.

isInvertColorsEnabled()

static isInvertColorsEnabled()

iOS-Only. Query whether invert colors is currently enabled. Returns a promise which
resolves to a boolean. The result is true when invert colors is enabled and false
otherwise.

isReduceMotionEnabled()

https://reactnative.dev/docs/accessibilityinfo 2/6
5/1/2021 AccessibilityInfo · React Native

static isReduceMotionEnabled()

Query whether reduce motion is currently enabled. Returns a promise which resolves to a
boolean. The result is true when reduce motion is enabled and false otherwise.

isReduceTransparencyEnabled()

static isReduceTransparencyEnabled()

iOS-Only. Query whether reduce transparency is currently enabled. Returns a promise


which resolves to a boolean. The result is true when a reduce transparency is enabled
and false otherwise.

isScreenReaderEnabled()

static isScreenReaderEnabled()

Query whether a screen reader is currently enabled. Returns a promise which resolves to
a boolean. The result is true when a screen reader is enabled and false otherwise.

addEventListener()

static addEventListener(eventName, handler)

Add an event handler. Supported events:

boldTextChanged : iOS-only event. Fires when the state of the bold text toggle
changes. The argument to the event handler is a boolean. The boolean is true
when bold text is enabled and false otherwise.
grayscaleChanged : iOS-only event. Fires when the state of the gray scale toggle
changes. The argument to the event handler is a boolean. The boolean is true
when a gray scale is enabled and false otherwise.
invertColorsChanged : iOS-only event. Fires when the state of the invert colors
toggle changes. The argument to the event handler is a boolean. The boolean is
https://reactnative.dev/docs/accessibilityinfo 3/6
5/1/2021 AccessibilityInfo · React Native

true when invert colors is enabled and false otherwise.

reduceMotionChanged : Fires when the state of the reduce motion toggle changes.
The argument to the event handler is a boolean. The boolean is true when a
reduce motion is enabled (or when "Transition Animation Scale" in "Developer
options" is "Animation off") and false otherwise.
screenReaderChanged : Fires when the state of the screen reader changes. The
argument to the event handler is a boolean. The boolean is true when a screen
reader is enabled and false otherwise.
reduceTransparencyChanged : iOS-only event. Fires when the state of the reduce
transparency toggle changes. The argument to the event handler is a boolean. The
boolean is true when reduce transparency is enabled and false otherwise.
announcementFinished : iOS-only event. Fires when the screen reader has finished
making an announcement. The argument to the event handler is a dictionary with
these keys:
announcement : The string announced by the screen reader.

success : A boolean indicating whether the announcement was successfully


made.

setAccessibilityFocus()

static setAccessibilityFocus(reactTag)

Set accessibility focus to a React component. On Android, this calls


UIManager.sendAccessibilityEvent(reactTag,
UIManager.AccessibilityEventTypes.typeViewFocused); .

Note: Make sure that any View you want to receive the accessibility focus has
accessible={true} .

announceForAccessibility()

static announceForAccessibility(announcement)
https://reactnative.dev/docs/accessibilityinfo 4/6
5/1/2021 AccessibilityInfo · React Native
static announceForAccessibility(announcement)

Post a string to be announced by the screen reader.

removeEventListener()

static removeEventListener(eventName, handler)

Remove an event handler.

Is this page useful?

Edit this page

Last updated on 28/10/2020

Next
Alert »

Example

Methods
isBoldTextEnabled()

isGrayscaleEnabled()

isInvertColorsEnabled()

isReduceMotionEnabled()

isReduceTransparencyEnabled()

isScreenReaderEnabled()

addEventListener()

setAccessibilityFocus()

announceForAccessibility()

removeEventListener()

DOCS
https://reactnative.dev/docs/accessibilityinfo 5/6
5/1/2021 AccessibilityInfo · React Native
DOCS

Getting Started

Tutorial

Components and APIs

More Resources

COMMUNITY

The React Native Community

Who's using React Native?

Ask Questions on Stack Overflow

Contributor Guide

DEV Community

FIND US

Blog

Twitter

GitHub

MORE

React

Privacy Policy

Terms of Service

Copyright © 2021 Facebook, Inc.

https://reactnative.dev/docs/accessibilityinfo 6/6

You might also like