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 대해 속성을 사용하여 필요한 입력(대신)에 ContentDescriptionTextView 대한 설명을 제공합니다. 일부 텍스트를 입력하면 텍스트 자체가 힌트 대신 "읽기"가 됩니다.

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 사용합니다.

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, nextFocusRightnextFocusUp 특성을 사용하여 포커스 순서를 제어할 수도 있습니다. 이러한 특성을 사용하여 사용자가 화면의 컨트롤을 쉽게 탐색할 수 있도록 합니다.

접근성 및 지역화

위의 예제에서 힌트 및 콘텐츠 설명은 표시 값으로 직접 설정됩니다. 다음과 같이 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을 >설치해야 할 수 있습니다.