더욱 접근성 높은 앱 만들기

Android 앱의 목표는 접근성이 필요한 사용자를 비롯하여 모두에게 유용한 앱이 되는 것입니다.

시각 장애, 색맹, 청각 장애, 수동기민성 장애, 인지 장애가 있는 사용자를 비롯한 많은 장애인이 일상생활에서 Android 기기를 사용하여 작업을 완료합니다. 접근성을 염두에 두고 앱을 개발할 때는 특히 이러한 장애인을 비롯하여 다른 접근성이 필요한 사용자를 고려하여 사용자 환경을 개선해야 합니다.

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

텍스트 가시성 향상

앱 내에 있는 각 텍스트 집합에서 색상 대비 또는 텍스트 색상과 텍스트 뒤에 있는 배경 색상 간의 감지되는 밝기 차이는 특정 임계값 이상인 것이 좋습니다. 정확한 임계값은 텍스트의 글꼴 크기와 텍스트가 굵게 표시되는지 여부에 따라 다릅니다.

  • 텍스트가 18pt보다 작거나 텍스트가 굵고 14pt보다 작으면 색상 대비율이 4.5:1 이상이어야 합니다.
  • 기타 다른 텍스트의 경우 색상 대비율이 3.0: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와 같은 뷰 그룹 내 각 항목에는 다른 설명이 있어야 합니다. 각 설명은 위치 목록에 있는 도시 이름과 같이 특정 항목에 고유한 콘텐츠를 반영해야 합니다.

  • UI에 장식용 효과에만 사용되는 그래픽 요소가 포함된 경우 설명을 "@null"로 설정합니다. 앱의 minSdkVersion16 이상이면 이 그래픽 요소의 android:importantForAccessibility 속성을 "no"로 설정할 수 있습니다.

참고 자료

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

Codelab

블로그 게시물