Skip to main content
Version: Next

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에서는 옵션 객체에서 queuetrue로 설정하면 기존 음성 뒤에 대기열에 추가할 수 있다.

매개변수:

이름타입설명
announcement
필수
string화면 리더가 읽을 문자열
options
필수
objectqueue - 기존 음성 뒤에 발표를 대기열에 추가
iOS

getRecommendedTimeoutMillis()
Android

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

사용자가 필요한 타임아웃 값을 밀리초 단위로 가져온다. 이 값은 '접근성' 설정에서 '작업 수행 시간(접근성 타임아웃)'에 설정된 값을 기준으로 한다.

매개변수:

이름타입설명
originalTimeout
필수
number'접근성 타임아웃'이 설정되지 않은 경우 반환할 타임아웃 값. 밀리초 단위로 지정한다.

isAccessibilityServiceEnabled()
Android

tsx
static isAccessibilityServiceEnabled(): Promise<boolean>;

접근성 서비스가 활성화되어 있는지 확인한다. 이 기능은 TalkBack뿐만 아니라 설치된 다른 제3자 접근성 앱도 포함한다. TalkBack만 활성화되었는지 확인하려면 isScreenReaderEnabled를 사용한다. Promise를 반환하며, 이 Promise는 boolean 값으로 해결된다. 접근성 서비스가 활성화되어 있으면 true를, 그렇지 않으면 false를 반환한다.

참고: TalkBack의 상태만 확인하고 싶다면 isScreenReaderEnabled를 사용한다.

isBoldTextEnabled()
iOS

tsx
static isBoldTextEnabled(): Promise<boolean>:

현재 굵은 텍스트가 활성화되어 있는지 확인한다. Promise를 반환하며, 이 Promise는 boolean 값으로 resolve된다. 굵은 텍스트가 활성화되어 있으면 true를, 그렇지 않으면 false를 반환한다.

isGrayscaleEnabled()
iOS

tsx
static isGrayscaleEnabled(): Promise<boolean>;

현재 그레이스케일이 활성화되어 있는지 확인한다. Promise를 반환하며, 이 Promise는 boolean 값으로 resolve된다. 그레이스케일이 활성화되어 있으면 true, 그렇지 않으면 false를 반환한다.

isInvertColorsEnabled()
iOS

tsx
static isInvertColorsEnabled(): Promise<boolean>;

현재 색상 반전 기능이 활성화되어 있는지 확인한다. Promise를 반환하며, 이 Promise는 boolean 값으로 resolve된다. 색상 반전이 활성화되어 있으면 true, 그렇지 않으면 false를 반환한다.

isReduceMotionEnabled()

tsx
static isReduceMotionEnabled(): Promise<boolean>;

현재 모션 감소 설정이 활성화되어 있는지 확인한다. Promise를 반환하며, 이 Promise는 boolean 값으로 해결된다. 모션 감소가 활성화된 경우 true를 반환하고, 그렇지 않으면 false를 반환한다.

isReduceTransparencyEnabled()
iOS

tsx
static isReduceTransparencyEnabled(): Promise<boolean>;

투명도 감소 기능이 현재 활성화되어 있는지 확인한다. Promise를 반환하며, 이 Promise는 boolean 값으로 해결된다. 투명도 감소 기능이 활성화되어 있으면 결과는 true이고, 그렇지 않으면 false이다.

isScreenReaderEnabled()

tsx
static isScreenReaderEnabled(): Promise<boolean>;

화면 읽기 기능이 현재 활성화되어 있는지 확인한다. Promise를 반환하며, 이 Promise는 boolean 값으로 resolve된다. 화면 읽기 기능이 활성화되어 있으면 true, 그렇지 않으면 false를 반환한다.

prefersCrossFadeTransitions()
iOS

tsx
static prefersCrossFadeTransitions(): Promise<boolean>;

현재 '모션 줄이기'와 '크로스페이드 트랜지션 선호' 설정이 활성화되어 있는지 확인한다. 이 메서드는 Promise를 반환하며, 해당 설정이 활성화되어 있으면 true, 그렇지 않으면 false로 해결된다.

setAccessibilityFocus()

tsx
static setAccessibilityFocus(reactTag: number);

리액트 컴포넌트에 접근성 포커스를 설정한다.

안드로이드에서는 reactTagUIManager.AccessibilityEventTypes.typeViewFocused 인자를 사용해 UIManager.sendAccessibilityEvent 메서드를 호출한다.

참고: 접근성 포커스를 받을 View에는 반드시 accessible={true}를 설정해야 한다.