피드로 돌아가기
Android VPAT journey
Slack EngineeringSlack Engineering
Mobile

Android VPAT journey

Slack이 Android 앱의 VPAT 접근성 감사를 통해 TalkBack 스크린 리더 호환성, 헤딩 의미론, 폼 필드 라벨링 등 8가지 주요 접근성 이슈를 식별 후 OutlinedTextField와 SKBanner 수정, SKListAccessibilityDelegate 도입으로 해결

Hye Jung Choi2025년 11월 19일10intermediate

Context

2024년 Slack이 대규모 UI 변경(IA4) 후 제3자 접근성 벤더를 통해 VPAT(Voluntary Product Accessibility Template) 감사를 수행했고, Android 플랫폼에서 TalkBack 스크린 리더 사용자와 모터/인지 장애가 있는 사용자를 위한 여러 접근성 문제를 발견했다. 색상 대비, 이미지 라벨 같은 즉시 해결 가능한 이슈는 담당팀에 할당했으며, 나머지 문제들에 대해 체계적인 분류 및 해결 과정을 진행했다.

Technical Solution

  • P1 오류 메시지 비접근성 해결: OutlinedTextField를 수정하여 편집 필드 아래 오류를 즉시 공지하고, 오류 타입의 SKBanner를 업데이트하여 오류 발생 시 스크린 리더에 공지
  • P2 헤딩 의미론 강화: Preferences 페이지와 같은 리스트 내부의 누락된 헤딩을 식별 후 수정하여 스크린 리더 사용자가 콘텐츠 계층 구조를 신속하게 파악 가능하도록 개선
  • P2 EditField 라벨 추가: 검색 필드에 명시적 검색 아이콘을 추가하여 자리 표시자 텍스트만 사용하는 문제 해결, 메시지 입력 영역(AMI)은 공간 제약으로 최적 솔루션 미적용
  • P2 리스트 항목 개수 오류 수정: SKListAdapter를 위한 새로운 SKListAccessibilityDelegate를 도입하여 데코레이션 SKDivider가 리스트 항목으로 카운트되지 않도록 CollectionInfo 덮어쓰기 (예: 7개 항목 중 2개 디바이더 제거 후 5개로 올바르게 공지)
  • P2 워크스페이스 스위처 드래그-드롭 접근성: 드래그 동작 대신 키보드 단축키를 제공하여 운동 능력 제약이 있는 사용자도 워크스페이스 재배열 가능하도록 변경
  • P2 취소선 정보 전달: 취소선 포매팅 정보를 스크린 리더 사용자에게 전달하도록 수정
  • P3 색상만으로 오류 표시 문제: 향후 작업으로 분류하여 차후 진행 예정
  • P3 키보드 네비게이션 및 포커스: Android 대형 폼팩터 미지원으로 인해 현재 탐색 중인 다른 솔루션 진행

Key Takeaway

Android 접근성 개선 시 TalkBack 스크린 리더와 CollectionInfo 같은 Android 접근성 API를 직접 테스트하고, 플랫폼 표준(앱 바 헤딩 패턴 제외)과의 일관성을 확인한 후, 설계 제약(공간 부족 시 대안)과 플랫폼 미지원 기능(대형 폼팩터)을 구분하여 우선순위를 정하는 것이 효과적이다.


Android 앱을 개발하는 팀에서 VPAT 또는 접근성 감사를 수행할 때, TalkBack 스크린 리더로 직접 테스트하면서 OutlinedTextField와 Banner 같은 핵심 UI 컴포넌트의 공지(announcement) 동작을 확인하고, SKListAccessibilityDelegate를 통해 리스트 항목 개수를 정확히 카운트하며, 플랫폼 표준과 설계 제약을 문서화하면 접근성 이슈 해결 속도와 정확성을 동시에 높일 수 있다.

원문 읽기
Android VPAT journey | Devpick