跳到主要內容

AccessibilityInfo

有時了解裝置是否有螢幕閱讀器正在啟用會很有用。AccessibilityInfo API 就是為此目的而設計的。您可以使用它來查詢螢幕閱讀器的目前狀態,以及註冊以便在螢幕閱讀器狀態變更時收到通知。

範例


參考

方法

addEventListener()

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

新增事件處理器。支援的事件

事件名稱描述
accessibilityServiceChanged
Android
當某些服務(例如 TalkBack、其他 Android 輔助技術和第三方輔助服務)啟用時觸發。事件處理器的參數是一個布林值。當某些輔助服務啟用時,布林值為 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: options: {queue?: boolean},
);

張貼要由螢幕閱讀器宣告的字串,並帶有修改選項。預設情況下,宣告會中斷任何現有的語音,但在 iOS 上,可以透過在選項物件中將 queue 設定為 true 來將其排在現有語音之後。

參數

名稱類型描述
announcement
必填
字串要宣告的字串
options
必填
物件queue - 將宣告排在現有語音之後
iOS

getRecommendedTimeoutMillis()
Android

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

取得使用者需要的逾時時間,以毫秒為單位。此值設定在「輔助功能」設定的「採取動作的時間 (輔助功能逾時)」中。

參數

名稱類型描述
originalTimeout
必填
數字如果未設定「輔助功能逾時」,則傳回的逾時時間。以毫秒為單位指定。

isAccessibilityServiceEnabled()
Android

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


prefersCrossFadeTransitions()
iOS

tsx
static prefersCrossFadeTransitions(): Promise<boolean>;

查詢目前是否已啟用減少動態效果和偏好淡入淡出轉場效果設定。傳回解析為布林值的 Promise。當偏好淡入淡出轉場效果啟用時,結果為 true,否則為 false


setAccessibilityFocus()

tsx
static setAccessibilityFocus(reactTag: number);

將輔助功能焦點設定到 React 組件。

在 Android 上,這會使用傳遞的 reactTagUIManager.AccessibilityEventTypes.typeViewFocused 引數呼叫 UIManager.sendAccessibilityEvent 方法。

注意:請確保您想要接收輔助功能焦點的任何 View 都具有 accessible={true}