Android의 내게 필요한 옵션Accessibility on Android

이 페이지에서는 Android 접근성 Api를 사용 하 여 내게 필요한 옵션 검사 목록에 따라 앱을 빌드하는 방법을 설명 합니다.This page describes how to use the Android Accessibility APIs to build apps according to the accessibility checklist. 다른 플랫폼 Api는 iOS 접근성OS X 접근성 페이지를 참조 하세요.Refer to the iOS accessibility and OS X accessibility pages for other platform APIs.

UI 요소 설명Describing UI Elements

Android는 화면 읽기 Api에서 컨트롤의 용도에 대 한 액세스 가능한 설명을 제공 하는 데 사용 하는 ContentDescription 속성을 제공 합니다.Android provides a ContentDescription property that is used by screen reading APIs to provide an accessible description of the control's purpose.

내용 설명은 C# 또는 axml 레이아웃 파일에서 설정할 수 있습니다.The content description can be set in either C# or in the AXML layout file.

C#C#

설명은 코드에서 임의의 문자열 (또는 문자열 리소스)로 설정할 수 있습니다.The description can be set in code to any string (or a string resource):

saveButton.ContentDescription = "Save data";

AXML 레이아웃AXML layout

XML 레이아웃에서는 android:contentDescription 특성을 사용 합니다.In XML layouts use the android:contentDescription attribute:

<ImageButton
    android:id=@+id/saveButton"
    android:src="@drawable/save_image"
    android:contentDescription="Save data" />

TextView에 대 한 use 힌트Use Hint for TextView

데이터 입력에 대 한 EditTextTextView 컨트롤의 경우 Hint 속성을 사용 하 여 ContentDescription 대신 필요한 입력에 대 한 설명을 제공 합니다.For EditText and TextView controls for data input, use the Hint property to provide a description of what input is expected (instead of ContentDescription). 일부 텍스트를 입력 한 경우에는 힌트 대신 텍스트 자체가 "읽기" 됩니다.When some text has been entered, the text itself will be "read" instead of the hint.

C#C#

코드에서 Hint 속성을 설정 합니다.Set the Hint property in code:

someText.Hint = "Enter some text"; // displays (and is "read") when control is empty

AXML 레이아웃AXML layout

XML 레이아웃 파일에서는 android:hint 특성을 사용 합니다.In XML layout files use the android:hint attribute:

<EditText
    android:id="@+id/someText"
    android:hint="Enter some text" />

데이터 입력 컨트롤과 레이블을 연결 하려면 LabelFor 속성을 사용 합니다.To associate a label with a data input control, use the LabelFor property to

C#C#

에서 C#LabelFor 속성을이 콘텐츠가 설명 하는 컨트롤의 리소스 ID로 설정 합니다. 일반적으로이 속성은 레이블에 설정 되어 있고 다른 입력 컨트롤을 참조 합니다.In C#, set the LabelFor property to the resource ID of the control that this content describes (typically this property is set on a label and references some other input control):

EditText edit = FindViewById<EditText> (Resource.Id.editFirstName);
TextView tv = FindViewById<TextView> (Resource.Id.labelFirstName);
tv.LabelFor = Resource.Id.editFirstName;

AXML 레이아웃AXML layout

레이아웃 XML에서 android:labelFor 속성을 사용 하 여 다른 컨트롤의 식별자를 참조 합니다.In layout XML use the android:labelFor property to reference another control's identifier:

<TextView
    android:id="@+id/labelFirstName"
    android:hint="Enter some text"
    android:labelFor="@+id/editFirstName" />
<EditText
    android:id="@+id/editFirstName"
    android:hint="Enter some text" />

내게 필요한 옵션에 대 한 알림Announce for Accessibility

접근성이 설정 된 경우 모든 뷰 컨트롤에서 AnnounceForAccessibility 메서드를 사용 하 여 이벤트 또는 상태 변경 내용을 사용자에 게 전달 합니다.Use the AnnounceForAccessibility method on any view control to communicate an event or status change to users when accessibility is enabled. 이 방법은 기본 제공 설명이 충분 한 피드백을 제공 하지만 사용자에 게 유용한 추가 정보를 제공 하는 대부분의 작업에는 필요 하지 않습니다.This method isn't required for most operations where the built-in narration provides sufficient feedback, but should be used where additional information would be helpful for the user.

아래 코드는 AnnounceForAccessibility를 호출 하는 간단한 예제를 보여 줍니다.The code below shows a simple example calling AnnounceForAccessibility:

button.Click += delegate {
  button.Text = string.Format ("{0} clicks!", count++);
  button.AnnounceForAccessibility (button.Text);
};

포커스 설정 변경Changing Focus Settings

액세스 가능 탐색은 사용자가 사용 가능한 작업을 이해 하는 데 도움이 되는 컨트롤에 의존 합니다.Accessible navigation relies on controls having focus to aid the user in understanding what operations are available. Android는 탐색 하는 동안 포커스를 받을 수 있는 컨트롤에 태그를 지정할 수 있는 Focusable 속성을 제공 합니다.Android provides a Focusable property which can tag controls as specifically able to receive focus during navigation.

C#C#

컨트롤이 포커스 C#를 얻지 못하게 하려면 Focusable 속성을 false로 설정 합니다.To prevent a control from gaining focus with C#, set the Focusable property to false:

label.Focusable = false;

AXML 레이아웃AXML layout

레이아웃 XML 파일에서 android:focusable 특성을 설정 합니다.In layout XML files set the android:focusable attribute:

<android:focusable="false" />

일반적으로 레이아웃 AXML에서 설정 된 nextFocusDown, nextFocusLeft, nextFocusRight nextFocusUp 특성으로 포커스 순서를 제어할 수도 있습니다.You can also control focus order with the nextFocusDown, nextFocusLeft, nextFocusRight, nextFocusUp attributes, typically set in the layout AXML. 이러한 특성을 사용 하 여 사용자가 화면의 컨트롤을 통해 쉽게 탐색할 수 있도록 합니다.Use these attributes to ensure the user can navigate easily through the controls on the screen.

접근성 및 지역화Accessibility and Localization

위의 예제에서 힌트 및 내용 설명은 표시 값으로 직접 설정 됩니다.In the examples above the hint and content description are set directly to the display value. 다음과 같이 문자열 .xml 파일에 값을 사용 하는 것이 좋습니다.It is preferable to use values in a Strings.xml file, such as this:

<?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 레이아웃 파일에서 문자열 파일의 텍스트를 사용 하는 방법은 다음과 같습니다.Using text from a strings file is shown below in C# and AXML layout files:

C#C#

코드에 문자열 리터럴을 사용 하는 대신 Resources.GetText를 사용 하 여 문자열 파일에서 번역 된 값을 조회 합니다.Instead of using string literals in code, look up translated values from strings files with Resources.GetText:

someText.Hint = Resources.GetText (Resource.String.enter_info);
saveButton.ContentDescription = Resources.GetText (Resource.String.save_info);

MAIN.AXMLAXML

레이아웃에서 XML 액세스 가능성 특성은 hintcontentDescription와 같은 문자열 식별자로 설정할 수 있습니다.In layout XML accessibility attributes like hint and contentDescription can be set to a string identifier:

<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" />

텍스트를 별도의 파일에 저장 하는 경우의 혜택은 파일의 여러 언어 번역이 앱에서 제공 될 수 있다는 것입니다.The benefit of storing text in a separate file is multiple language translations of the file can be provided in your app. 지역화 된 문자열 파일을 응용 프로그램 프로젝트에 추가 하는 방법에 대해 알아보려면 Android 지역화 가이드 를 참조 하세요.See the Android localization guide to learn how add localized string files to an application project.

접근성 테스트Testing Accessibility

Android 장치에서 내게 필요한 옵션을 테스트 하려면 다음 단계 를 수행 하 여 TalkBack를 사용 하도록 설정 하 고 터치를 탐색 합니다.Follow these steps to enable TalkBack and Explore by Touch to test accessibility on Android devices.

설정 > 내게 필요한 옵션에 표시 되지 않는 경우 Google Play에서 TalkBack 를 설치 해야 할 수 있습니다.You may need to install TalkBack from Google Play if it does not appear in Settings > Accessibility.