피드로 돌아가기
뱅크샐러드 기술블로그Frontend
원문 읽기
접근성을 지원한다는 착각
개발팀이 UI 출력물을 텍스트 기반 인터페이스로 재설계해 접근성 지원과 테스트 코드 작성을 동시에 해결
AI 요약
Context
개발자들은 접근성 지원을 추가 작업으로 인식해 일정 연장의 이유로 미루고 있었다. 또한 UI 기반 테스트 코드를 작성하기 어렵다고 판단해 비즈니스 로직만 테스트하고 UI 로직은 테스트 대상에서 제외하고 있었다.
Technical Solution
- UI 출력물을 텍스트 형태로 변환: aria-role, aria-expanded 등 접근성 속성을 추가해 화면을 텍스트 기반 구조로 표현
- 텍스트 기반 ViewTree 구성: iOS의 AXSnapshot 같은 도구를 통해 UI를 텍스트 형태의 스냅샷으로 생성
- 스크린리더 호환성 확보: 접근성 속성을 추가함으로써 스크린리더, 음성 명령 모드, 안구 추적 모드 등 다양한 인터페이스에서 동작
- 테스트 코드와 명세 통합: screen.getByRole() 등 텍스트 기반 쿼리를 통해 테스트 코드가 제품 요구사항 문서와 일치하도록 작성
- 추상화 계층 최소화: 테스트를 위한 별도 함수나 자료형을 만들지 않고 실제 UI 컴포넌트 자체를 검사 대상으로 삼음
Key Takeaway
UI를 텍스트 기반 인터페이스로 설계하면 접근성 지원이 자연스럽게 테스트 가능성을 확보하게 되므로, 접근성을 별도 작업이 아닌 핵심 개발 흐름에 통합할 수 있다.
실천 포인트
웹 및 모바일 개발팀에서 aria-role, aria-expanded, accessibilityLabel 등 텍스트 기반 접근성 속성을 UI 컴포넌트에 추가하면, 스크린리더 호환성 확보와 함께 이미지 기반 스냅샷 테스트 대신 의미 있는 텍스트 기반 테스트 코드를 작성할 수 있어 유지보수 비용을 절감하고 테스트 명세의 신뢰성을 높일 수 있다.