디바이스에 현재 활성화된 스크린 리더가 있는지 확인해야 할 때가 있다. 이때 AccessibilityInfo
API를 사용한다. 이 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 필수 | 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를 반환하며, 해당 Promise는 boolean 값으로 resolve된다. 접근성 서비스가 활성화된 경우 결과는 true
이고, 그렇지 않으면 false
이다.
참고: TalkBack의 상태만 확인하려면 isScreenReaderEnabled를 사용한다.
isBoldTextEnabled()
iOS
static isBoldTextEnabled(): Promise<boolean>:
현재 굵은 텍스트가 활성화되어 있는지 확인한다. Promise를 반환하며, 이는 boolean 값으로 resolve된다. 굵은 텍스트가 활성화되어 있으면 true
, 그렇지 않으면 false
를 반환한다.
isGrayscaleEnabled()
iOS
static isGrayscaleEnabled(): Promise<boolean>;
현재 그레이스케일이 활성화되어 있는지 확인한다. Promise를 반환하며, 이 Promise는 불리언 값으로 해결된다. 그레이스케일이 활성화되어 있으면 true
, 그렇지 않으면 false
를 반환한다.
isInvertColorsEnabled()
iOS
static isInvertColorsEnabled(): Promise<boolean>;
색상 반전 기능이 현재 활성화되어 있는지 확인하는 쿼리이다. 이 메서드는 Promise를 반환하며, 해당 Promise는 boolean 값으로 resolve된다. 색상 반전 기능이 활성화되어 있으면 true
, 그렇지 않으면 false
를 반환한다.
isReduceMotionEnabled()
static isReduceMotionEnabled(): Promise<boolean>;
현재 모션 감소 설정이 활성화되었는지 확인한다. Promise를 반환하며, 이 Promise는 boolean 값으로 resolve된다. 모션 감소가 활성화된 경우 true
를 반환하고, 그렇지 않은 경우 false
를 반환한다.
isReduceTransparencyEnabled()
iOS
static isReduceTransparencyEnabled(): Promise<boolean>;
현재 투명도 감소 기능이 활성화되어 있는지 확인한다. Promise를 반환하며, 이는 boolean 값으로 해결된다. 투명도 감소 기능이 활성화되어 있으면 true
를 반환하고, 그렇지 않으면 false
를 반환한다.
isScreenReaderEnabled()
static isScreenReaderEnabled(): Promise<boolean>;
스크린 리더가 현재 활성화되어 있는지 확인한다. Promise를 반환하며, 이 Promise는 boolean 값으로 resolve된다. 스크린 리더가 활성화되어 있으면 true
를, 그렇지 않으면 false
를 반환한다.
prefersCrossFadeTransitions()
iOS
static prefersCrossFadeTransitions(): Promise<boolean>;
모션 감소와 크로스페이드 트랜지션 설정이 현재 활성화되어 있는지 확인한다. Promise를 반환하며, 이 Promise는 boolean 값으로 해결된다. 크로스페이드 트랜지션이 활성화되어 있으면 true
를 반환하고, 그렇지 않으면 false
를 반환한다.
setAccessibilityFocus()
static setAccessibilityFocus(reactTag: number);
React 컴포넌트에 접근성 포커스를 설정한다.
안드로이드에서는 UIManager.sendAccessibilityEvent
메서드를 호출하며, 전달된 reactTag
와 UIManager.AccessibilityEventTypes.typeViewFocused
인자를 사용한다.
참고: 접근성 포커스를 받을
View
에는 반드시accessible={true}
속성이 설정되어 있어야 한다.