더욱 접근성 높은 앱 만들기

접근성 기능이 필요한 사용자를 포함하여 모든 사용자가 Android 앱을 사용할 수 있도록 하세요.

시각 장애, 색맹, 청각 장애, 수동기민성 장애, 인지 장애가 있는 사용자를 비롯한 많은 장애인이 Android 기기를 사용합니다. 접근성을 염두에 두고 앱을 개발할 때는 접근성 기능이 필요한 사용자를 고려하여 사용자 환경을 개선해야 합니다.

이 페이지는 모든 사용자가 앱을 더 쉽게 사용할 수 있도록 접근성 기능의 핵심 요소를 구현하기 위한 가이드라인을 제시합니다. 앱의 접근성을 높이는 방법에 관한 자세한 내용은 앱 접근성 개선 원칙을 참고하세요.

텍스트 가시성 향상

앱 내의 텍스트 집합마다 색상 대비(텍스트 색상과 텍스트 뒤의 배경 색상 간의 인지 밝기 차이)가 특정 기준점 이상일 것을 권장합니다. 정확한 기준점은 텍스트의 글꼴 크기와 텍스트가 굵게 표시되는지 여부에 따라 다릅니다.

  • 텍스트가 18pt보다 작거나 텍스트가 굵고 14pt보다 작으면 색상 대비율을 4.5:1 이상으로 설정하세요.
  • 다른 텍스트의 경우에는 모두 색상 대비율을 3:1 이상으로 설정합니다.

다음 이미지는 두 가지 텍스트와 배경 색상 대비의 예를 보여줍니다.

텍스트를 보여주는 사진
그림 1. 색상 대비가 권장값보다 낮은 예(왼쪽)와 충분한 예(오른쪽)

앱에서 텍스트와 배경 색상 대비를 확인하려면 온라인 색상 대비 검사기 또는 접근성 검사기 앱을 사용하세요.

크고 간단한 컨트롤 사용

앱의 컨트롤을 더 쉽게 보고 탭할 수 있으면 앱 UI를 더 쉽게 사용할 수 있습니다. 상호작용이 가능한 각 UI 요소에는 48dpx48dp 이상의 포커스 가능 영역 또는 터치 영역 크기를 포함하는 것이 좋습니다. 크기는 클수록 더 좋습니다.

특정 UI 요소의 터치 영역 크기가 충분히 크려면 다음 조건이 둘 다 true여야 합니다.

패딩값을 사용하면 권장 터치 영역 크기를 유지하면서 객체의 표시 크기를 48dpx48dp보다 작게 만들 수 있습니다.

다음 코드 스니펫에서는 요소의 크기가 권장 터치 영역 크기인 요소를 보여줍니다.

<ImageButton ...
    android:paddingLeft="4dp"
    android:minWidth="40dp"
    android:paddingRight="4dp"

    android:paddingTop="8dp"
    android:minHeight="32dp"
    android:paddingBottom="8dp" />

각 UI 요소 설명

앱의 UI 요소마다 요소의 목적에 관한 설명을 포함합니다. 대부분의 경우 다음 코드 스니펫과 같이 요소의 contentDescription 속성에 이 설명을 포함합니다.

<!-- Use string resources for easier localization. -->
<!-- The en-US value for the following string is "Inspect". -->
<ImageView
    ...
    android:contentDescription="@string/inspect" />

앱의 UI 요소에 설명을 추가할 때 다음 권장사항을 염두에 두시기 바랍니다.

  • 콘텐츠 설명에 UI 요소의 유형을 포함하면 안 됩니다. 스크린 리더는 요소의 유형과 설명 모두 자동으로 알려줍니다. 예를 들어 버튼을 선택하면 앱에서 '제출' 작업이 발생하는 경우 버튼의 설명을 "Submit button"이 아닌 "Submit"으로 만듭니다.

  • 각 설명은 고유해야 합니다. 그래야만 스크린 리더 사용자에게 요소 설명이 반복적으로 표시되는 경우 포커스가 이전에 이미 포커스가 있었던 요소에 있다는 것을 사용자가 올바로 인식할 수 있습니다. 특히 RecyclerView와 같은 뷰 그룹 내 각 항목에는 다른 설명이 있어야 합니다. 예를 들어 위치 목록에 포함된 도시 이름처럼 각각의 설명은 각 항목에 대한 고유한 내용을 반영해야 합니다.

  • 앱의 minSdkVersion16 이상인 경우 장식용 효과에만 사용되는 그래픽 요소의 android:importantForAccessibility 속성을 "no"로 설정할 수 있습니다.

추가 리소스

앱의 접근성을 높이는 방법을 자세히 알아보려면 다음 추가 리소스를 참조하세요.

Codelab

블로그 게시물