Android의 접근성
이 페이지에서는 Android 접근성 API를 사용하여 접근성 검사 목록에 따라 앱을 빌드하는 방법을 설명합니다. 다른 플랫폼 API에 대한 iOS 접근성 및 OS X 접근성 페이지를 참조하세요.
UI 요소 설명
Android는 화면 읽기 API ContentDescription
에서 컨트롤의 용도에 대한 접근성 있는 설명을 제공하는 데 사용되는 속성을 제공합니다.
콘텐츠 설명은 C# 또는 AXML 레이아웃 파일에서 설정할 수 있습니다.
C#
설명은 코드에서 모든 문자열(또는 문자열 리소스)으로 설정할 수 있습니다.
saveButton.ContentDescription = "Save data";
AXML 레이아웃
XML 레이아웃에서는 다음 특성을 사용합니다 android:contentDescription
.
<ImageButton
android:id=@+id/saveButton"
android:src="@drawable/save_image"
android:contentDescription="Save data" />
TextView에 힌트 사용
데이터 입력의 경우 EditText
및 컨트롤에 Hint
대해 속성을 사용하여 필요한 입력(대신)에 ContentDescription
TextView
대한 설명을 제공합니다.
일부 텍스트를 입력하면 텍스트 자체가 힌트 대신 "읽기"가 됩니다.
C#
코드에서 Hint
속성을 설정합니다.
someText.Hint = "Enter some text"; // displays (and is "read") when control is empty
AXML 레이아웃
XML 레이아웃 파일에서는 다음 특성을 사용합니다 android:hint
.
<EditText
android:id="@+id/someText"
android:hint="Enter some text" />
LabelFor는 입력 필드를 레이블과 연결합니다.
레이블을 데이터 입력 컨트롤과 연결하려면 다음 속성을 LabelFor
사용합니다.
C#
C#에서 이 콘텐츠가 설명하는 컨트롤의 리소스 ID로 속성을 설정합니다 LabelFor
(일반적으로 이 속성은 레이블에 설정되고 다른 입력 컨트롤을 참조합니다.)
EditText edit = FindViewById<EditText> (Resource.Id.editFirstName);
TextView tv = FindViewById<TextView> (Resource.Id.labelFirstName);
tv.LabelFor = Resource.Id.editFirstName;
AXML 레이아웃
레이아웃에서 XML은 android:labelFor
속성을 사용하여 다른 컨트롤의 식별자를 참조합니다.
<TextView
android:id="@+id/labelFirstName"
android:hint="Enter some text"
android:labelFor="@+id/editFirstName" />
<EditText
android:id="@+id/editFirstName"
android:hint="Enter some text" />
접근성에 대한 알림
모든 보기 컨트롤의 AnnounceForAccessibility
메서드를 사용하여 접근성을 사용할 때 이벤트 또는 상태 변경 내용을 사용자에게 전달합니다. 이 메서드는 기본 제공 내레이션에서 충분한 피드백을 제공하는 대부분의 작업에는 필요하지 않지만 추가 정보가 사용자에게 도움이 되는 위치에 사용해야 합니다.
아래 코드는 다음과 같은 간단한 호출 AnnounceForAccessibility
예제를 보여줍니다.
button.Click += delegate {
button.Text = string.Format ("{0} clicks!", count++);
button.AnnounceForAccessibility (button.Text);
};
포커스 설정 변경
접근성 있는 탐색은 사용자가 사용할 수 있는 작업을 이해하는 데 도움이 되는 포커스가 있는 컨트롤에 의존합니다. Android는 Focusable
탐색 중에 포커스를 받을 수 있도록 컨트롤에 태그를 지정할 수 있는 속성을 제공합니다.
C#
컨트롤이 C#을 사용하여 포커스를 얻지 못하도록 하려면 속성을 다음으로 false
설정합니다Focusable
.
label.Focusable = false;
AXML 레이아웃
레이아웃 XML 파일에서 특성을 설정합니다.android:focusable
<android:focusable="false" />
일반적으로 레이아웃 AXML에서 nextFocusDown
설정된 , nextFocusLeft
, nextFocusRight
nextFocusUp
특성을 사용하여 포커스 순서를 제어할 수도 있습니다. 이러한 특성을 사용하여 사용자가 화면의 컨트롤을 쉽게 탐색할 수 있도록 합니다.
접근성 및 지역화
위의 예제에서 힌트 및 콘텐츠 설명은 표시 값으로 직접 설정됩니다. 다음과 같이 Strings.xml 파일에서 값을 사용하는 것이 좋습니다.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="enter_info">Enter some text</string>
<string name="save_info">Save data</string>
</resources>
문자열 파일의 텍스트 사용은 C# 및 AXML 레이아웃 파일에서 아래에 나와 있습니다.
C#
코드에서 문자열 리터럴을 사용하는 대신 다음을 사용하여 문자열 파일 Resources.GetText
에서 변환된 값을 조회합니다.
someText.Hint = Resources.GetText (Resource.String.enter_info);
saveButton.ContentDescription = Resources.GetText (Resource.String.save_info);
AXML
레이아웃에서 XML 접근성 특성은 다음과 같 hint
으며 contentDescription
문자열 식별자로 설정할 수 있습니다.
<TextView
android:id="@+id/someText"
android:hint="@string/enter_info" />
<ImageButton
android:id=@+id/saveButton"
android:src="@drawable/save_image"
android:contentDescription="@string/save_info" />
별도의 파일에 텍스트를 저장하는 이점은 앱에서 파일의 여러 언어 번역을 제공할 수 있다는 것입니다. 애플리케이션 프로젝트에 지역화된 문자열 파일을 추가하는 방법을 알아보려면 Android 지역화 가이드를 참조하세요.
접근성 테스트
다음 단계에 따라 Android 디바이스에서 접근성을 테스트하기 위해 TalkBack 및 Touch별 탐색을 사용하도록 설정합니다.
설정 접근성에 표시되지 않는 경우 Google Play에서 TalkBack을 >설치해야 할 수 있습니다.