AccessibilityInfo
有时,知道设备是否启用了屏幕阅读器会很有用。AccessibilityInfo
API 就是为此目的而设计的。您可以使用它来查询屏幕阅读器的当前状态,以及注册以便在屏幕阅读器的状态更改时收到通知。
示例
参考
方法
addEventListener()
static addEventListener(
eventName: AccessibilityChangeEventName | AccessibilityAnnouncementEventName,
handler: (
event: AccessibilityChangeEvent | AccessibilityAnnouncementFinishedEvent,
) => void,
): EmitterSubscription;
添加事件处理程序。支持的事件
事件名称 | 描述 |
---|---|
accessibilityServiceChanged Android | 当启用某些服务(例如 TalkBack、其他 Android 辅助技术和第三方辅助功能服务)时触发。事件处理程序的参数是一个布尔值。当启用某些辅助功能服务时,布尔值为 true ,否则为 false 。 |
announcementFinished iOS | 当屏幕阅读器完成公告时触发。事件处理程序的参数是一个字典,其中包含以下键
|
boldTextChanged iOS | 当粗体文本切换状态更改时触发。事件处理程序的参数是一个布尔值。当启用粗体文本时,布尔值为 true ,否则为 false 。 |
grayscaleChanged iOS | 当灰度切换状态更改时触发。事件处理程序的参数是一个布尔值。当启用灰度时,布尔值为 true ,否则为 false 。 |
invertColorsChanged iOS | 当反转颜色切换状态更改时触发。事件处理程序的参数是一个布尔值。当启用反转颜色时,布尔值为 true ,否则为 false 。 |
reduceMotionChanged | 当减少动态效果切换状态更改时触发。事件处理程序的参数是一个布尔值。当启用减少动态效果(或当“开发者选项”中的“过渡动画缩放”为“动画关闭”时),布尔值为 true ,否则为 false 。 |
reduceTransparencyChanged iOS | 当减少透明度切换状态更改时触发。事件处理程序的参数是一个布尔值。当启用减少透明度时,布尔值为 true ,否则为 false 。 |
screenReaderChanged | 当屏幕阅读器状态更改时触发。事件处理程序的参数是一个布尔值。当启用屏幕阅读器时,布尔值为 true ,否则为 false 。 |
announceForAccessibility()
static announceForAccessibility(announcement: string);
发布一个字符串,供屏幕阅读器朗读。
announceForAccessibilityWithOptions()
static announceForAccessibilityWithOptions(
announcement: string,
options: options: {queue?: boolean},
);
发布一个字符串,供屏幕阅读器朗读,并带有修改选项。默认情况下,公告将中断任何现有的语音,但在 iOS 上,可以通过在 options 对象中将 queue
设置为 true
来将其排在现有语音之后。
参数
名称 | 类型 | 描述 |
---|---|---|
announcement 必需 | string | 要公告的字符串 |
options 必需 | object | queue - 将公告排在现有语音之后iOS |
getRecommendedTimeoutMillis()
Android
static getRecommendedTimeoutMillis(originalTimeout: number): Promise<number>;
获取用户需要的超时时间(毫秒)。此值在“辅助功能”设置的“操作超时时间(辅助功能超时)”中设置。
参数
名称 | 类型 | 描述 |
---|---|---|
originalTimeout 必需 | number | 如果未设置“辅助功能超时”,则返回的超时时间。以毫秒为单位指定。 |
isAccessibilityServiceEnabled()
Android
static isAccessibilityServiceEnabled(): Promise<boolean>;
检查是否启用了任何辅助功能服务。这包括 TalkBack,但也包括可能已安装的任何第三方辅助功能应用。要仅检查是否启用了 TalkBack,请使用 isScreenReaderEnabled。返回一个 Promise,它解析为一个布尔值。当启用某些辅助功能服务时,结果为 true
,否则为 false
。
注意:如果您只想检查 TalkBack 的状态,请使用 isScreenReaderEnabled。
isBoldTextEnabled()
iOS
static isBoldTextEnabled(): Promise<boolean>:
查询当前是否启用了粗体文本。返回一个 Promise,它解析为一个布尔值。当启用粗体文本时,结果为 true
,否则为 false
。
isGrayscaleEnabled()
iOS
static isGrayscaleEnabled(): Promise<boolean>;
查询当前是否启用了灰度。返回一个 Promise,它解析为一个布尔值。当启用灰度时,结果为 true
,否则为 false
。
isInvertColorsEnabled()
iOS
static isInvertColorsEnabled(): Promise<boolean>;
查询当前是否启用了反转颜色。返回一个 Promise,它解析为一个布尔值。当启用反转颜色时,结果为 true
,否则为 false
。
isReduceMotionEnabled()
static isReduceMotionEnabled(): Promise<boolean>;
查询当前是否启用了减少动态效果。返回一个 Promise,它解析为一个布尔值。当启用减少动态效果时,结果为 true
,否则为 false
。
isReduceTransparencyEnabled()
iOS
static isReduceTransparencyEnabled(): Promise<boolean>;
查询当前是否启用了减少透明度。返回一个 Promise,它解析为一个布尔值。当启用减少透明度时,结果为 true
,否则为 false
。
isScreenReaderEnabled()
static isScreenReaderEnabled(): Promise<boolean>;
查询当前是否启用了屏幕阅读器。返回一个 Promise,它解析为一个布尔值。当启用屏幕阅读器时,结果为 true
,否则为 false
。
prefersCrossFadeTransitions()
iOS
static prefersCrossFadeTransitions(): Promise<boolean>;
查询当前是否启用了减少动态效果和首选交叉淡入淡出过渡设置。返回一个 Promise,它解析为一个布尔值。当启用首选交叉淡入淡出过渡时,结果为 true
,否则为 false
。
setAccessibilityFocus()
static setAccessibilityFocus(reactTag: number);
将辅助功能焦点设置到 React 组件。
在 Android 上,这将使用传递的 reactTag
和 UIManager.AccessibilityEventTypes.typeViewFocused
参数调用 UIManager.sendAccessibilityEvent
方法。
注意:请确保您要接收辅助功能焦点的任何
View
都具有accessible={true}
。