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 上,可以透過在選項物件中將 queue
設定為 true
來將其排在現有語音之後。
參數
名稱 | 類型 | 描述 |
---|---|---|
announcement 必填 | 字串 | 要宣告的字串 |
options 必填 | 物件 | queue - 將宣告排在現有語音之後iOS |
getRecommendedTimeoutMillis()
Android
static getRecommendedTimeoutMillis(originalTimeout: number): Promise<number>;
取得使用者需要的逾時時間,以毫秒為單位。此值設定在「輔助功能」設定的「採取動作的時間 (輔助功能逾時)」中。
參數
名稱 | 類型 | 描述 |
---|---|---|
originalTimeout 必填 | 數字 | 如果未設定「輔助功能逾時」,則傳回的逾時時間。以毫秒為單位指定。 |
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}
。