跳到主要内容
版本:0.79

AccessibilityInfo

有时知道设备是否当前激活了屏幕阅读器是很有用的。AccessibilityInfo API 就是为此设计的。你可以使用它来查询屏幕阅读器的当前状态,以及注册通知以便在屏幕阅读器状态更改时收到通知。

示例


参考

方法

addEventListener()

tsx
static addEventListener(
eventName: AccessibilityChangeEventName | AccessibilityAnnouncementEventName,
handler: (
event: AccessibilityChangeEvent | AccessibilityAnnouncementFinishedEvent,
) => void,
): EmitterSubscription;

添加一个事件处理器。支持的事件:

事件名称描述
accessibilityServiceChanged
安卓
当某些服务(如 TalkBack、其他安卓辅助技术和第三方无障碍服务)启用时触发。事件处理器的参数是一个布尔值。当某些无障碍服务启用时布尔值为 true,否则为 false
announcementFinished
iOS
当屏幕阅读器完成播报时触发。事件处理器的参数是一个包含以下键的字典:
  • announcement:屏幕阅读器播报的字符串。
  • success:一个布尔值,指示播报是否成功。
boldTextChanged
iOS
当粗体文本切换状态改变时触发。事件处理器的参数是一个布尔值。当启用粗体文本时布尔值为 true,否则为 false
grayscaleChanged
iOS
当灰度切换状态改变时触发。事件处理器的参数是一个布尔值。当启用灰度时布尔值为 true,否则为 false
invertColorsChanged
iOS
当颜色反转切换状态改变时触发。事件处理器的参数是一个布尔值。当启用颜色反转时布尔值为 true,否则为 false
reduceMotionChanged当减少动态效果切换状态改变时触发。事件处理器的参数是一个布尔值。当启用减少动态效果时布尔值为 true(或者当“开发者选项”中的“过渡动画缩放”为“动画关闭”时),否则为 false
reduceTransparencyChanged
iOS
当降低透明度切换状态改变时触发。事件处理器的参数是一个布尔值。当启用降低透明度时布尔值为 true,否则为 false
screenReaderChanged当屏幕阅读器状态改变时触发。事件处理器的参数是一个布尔值。当启用屏幕阅读器时布尔值为 true,否则为 false

announceForAccessibility()

tsx
static announceForAccessibility(announcement: string);

发布一个字符串供屏幕阅读器播报。


announceForAccessibilityWithOptions()

tsx
static announceForAccessibilityWithOptions(
announcement: string,
options: {queue?: boolean},
);

发布一个字符串供屏幕阅读器播报,并带有修改选项。默认情况下,播报会中断任何现有的语音,但在 iOS 上,可以通过在选项对象中将 queue 设置为 true 将其排队在现有语音之后。

参数:

名称类型描述
announcement
必需
string要播报的字符串
options
必需
objectqueue - 将播报排队在现有语音之后
iOS

getRecommendedTimeoutMillis()
安卓

tsx
static getRecommendedTimeoutMillis(originalTimeout: number): Promise<number>;

获取用户所需的超时时间(毫秒)。 此值设置在“无障碍”设置的“操作时间(无障碍超时)”中。

参数:

名称类型描述
originalTimeout
必需
number如果未设置“无障碍超时”,则返回的超时时间。以毫秒为单位指定。

isAccessibilityServiceEnabled()
安卓

tsx
static isAccessibilityServiceEnabled(): Promise<boolean>;

检查是否启用了任何无障碍服务。这包括 TalkBack,也包括任何可能安装的第三方无障碍应用。如果只想检查 TalkBack 是否启用,请使用 isScreenReaderEnabled。返回一个解析为布尔值的 Promise。当启用了某些无障碍服务时结果为 true,否则为 false

注意:如果你只想检查 TalkBack 的状态,请使用 isScreenReaderEnabled


isBoldTextEnabled()
iOS

tsx
static isBoldTextEnabled(): Promise<boolean>:

查询当前是否启用了粗体文本。返回一个解析为布尔值的 Promise。当启用粗体文本时结果为 true,否则为 false


isGrayscaleEnabled()
iOS

tsx
static isGrayscaleEnabled(): Promise<boolean>;

查询当前是否启用了灰度。返回一个解析为布尔值的 Promise。当启用灰度时结果为 true,否则为 false


isInvertColorsEnabled()
iOS

tsx
static isInvertColorsEnabled(): Promise<boolean>;

查询当前是否启用了颜色反转。返回一个解析为布尔值的 Promise。当启用颜色反转时结果为 true,否则为 false


isReduceMotionEnabled()

tsx
static isReduceMotionEnabled(): Promise<boolean>;

查询当前是否启用了减少动态效果。返回一个解析为布尔值的 Promise。当启用减少动态效果时结果为 true,否则为 false


isReduceTransparencyEnabled()
iOS

tsx
static isReduceTransparencyEnabled(): Promise<boolean>;

查询当前是否启用了降低透明度。返回一个解析为布尔值的 Promise。当启用降低透明度时结果为 true,否则为 false


isScreenReaderEnabled()

tsx
static isScreenReaderEnabled(): Promise<boolean>;

查询当前是否启用了屏幕阅读器。返回一个解析为布尔值的 Promise。当启用屏幕阅读器时结果为 true,否则为 false


isHighTextContrastEnabled()
安卓

tsx
static isHighTextContrastEnabled(): Promise<boolean>

查询当前是否启用了高文本对比度。返回一个解析为布尔值的 Promise。当启用高文本对比度时结果为 true,否则为 false


isDarkerSystemColorsEnabled()
iOS

tsx
static isDarkerSystemColorsEnabled(): Promise<boolean>

查询当前是否启用了深色系统颜色。返回一个解析为布尔值的 Promise。当启用深色系统颜色时结果为 true,否则为 false


prefersCrossFadeTransitions()
iOS

tsx
static prefersCrossFadeTransitions(): Promise<boolean>;

查询当前是否启用了减少动态效果和偏好交叉淡入淡出过渡设置。返回一个解析为布尔值的 Promise。当启用偏好交叉淡入淡出过渡时结果为 true,否则为 false


setAccessibilityFocus()

已弃用

建议改用 eventType 为 focussendAccessibilityEvent

tsx
static setAccessibilityFocus(reactTag: number);

将无障碍焦点设置到 React 组件。

在 Android 上,这会调用 UIManager.sendAccessibilityEvent 方法,并传入 reactTagUIManager.AccessibilityEventTypes.typeViewFocused 参数。

备注

确保任何你想要接收无障碍焦点的 View 都有 accessible={true}


sendAccessibilityEvent()

tsx
static sendAccessibilityEvent(host: HostInstance, eventType: AccessibilityEventTypes);

命令式地在 React 组件上触发无障碍事件,例如改变屏幕阅读器的聚焦元素。

备注

确保任何你想要接收无障碍焦点的 View 都有 accessible={true}

名称类型描述
host
必需
HostInstance要发送事件到的组件 ref。
eventType
必需
AccessibilityEventTypes其中之一:'click'(仅安卓)、'focus''viewHoverEnter'(仅安卓)或 'windowStateChange'(仅安卓)