시각장애인에게 ‘읽는 순서’가 왜 중요할까? | 접근성 업무일지 #1
배경
여러분은 스크린리더라는 기능을 아시나요? 시각장애인 사용자가 앱을 탐색할 때 사용하는 보조 기술로, 화면 위의 요소들을 음성으로 읽어줘요. iOS에서는 ‘보이스오버(VoiceOver)’라는 이름으로 제공되고 있어요.

보이스오버는 이 화면을 이렇게 읽어줘요.
이 문장은 3가지 핵심 정보로 구성돼 있어요. 레이블, 역할, 상태인데요. 이 3가지 요소를 파악해야 이게 읽기만 하는 정보인지, 눌러야 할 버튼인지, 현재 어떤 상태인지를 정확히 파악할 수 있어요. 사용성에 가장 중요한 요소인거죠.

- 레이블(Label): 컴포넌트 내용
- 역할(Role): 버튼, 탭, 토글 등 컴포넌트 종류
- 상태(State): 활성화, 비활성화 등 컴포넌트 현재 상태
사용자는 끝까지 듣지 않는다
토스에서는 시각장애인 사용자를 대상으로 꾸준히 UT(사용성 테스트)를 진행해오고 있어요. 그 과정에서 반복적으로 발견된 한 가지 사용 패턴이 있었어요. 스크린리더 사용자는 음성을 2배속으로 듣고 다음 항목으로 넘어간다는 점이었죠. 화면을 볼 때 모든 글을 꼼꼼히 읽지 않고 훑는 것 처럼, 스크린리더 사용자도 모든 내용을 끝까지 듣지는 않는거죠.
보이스오버 사용자의 탐색 속도
특히 리스트 컴포넌트처럼 앞부분에 읽어야 할 정보가 많은 경우, 사용자가 ‘역할 정보’를 듣기 전에 항목을 넘겨버리는 일이 많았어요.

예를 들어, 이런 화면을 보이스오버는 “ 쌓인 이자 2,253원, 5,931,424원, 버튼 “ 이라고 읽어줘요. ‘버튼’이라는 역할 정보는 문장의 맨 끝에 오기 때문에, 사용자가 앞부분만 듣고 넘기면 이 항목이 눌러야 할 버튼인지조차 인지하지 못한 채 지나치게 돼요. 결국 다시 해당 항목으로 돌아와 재탐색해야 하는 불편함이 반복되는 거죠.
그렇다면, 어떻게 읽어줘야할까?
역할 정보를 뒤에 읽어주는 것은 iOS의 기본 설정이지만, 사용자에게 최선은 아니라고 느껴졌어요. 그래서 리스트 컴포넌트를 어떻게 읽어줘야 더 좋은 사용성을 만들 수 있을지, iOS 개발자, 접근성 컨설턴트, 디자이너가 함께 머리를 맞댔어요. 그 과정에서 몇 가지 아이디어가 나왔어요.
1. 리스트 항목을 분절해서 읽기
쌓인 이자 200원 10,000원 버튼
기존처럼 한꺼번에 읽어주는 게 아니라, 하나하나 쪼개서 읽어주는 거예요. 사용자가 빠른 속도로 탐색하더라도 역할 정보를 비교적 빨리 파악할 수 있죠. 하지만, 초점(Focus)이 지나치게 많아져 오히려 탐색 속도가 느려질 수도 있었어요.
2.효과음으로 알려주기
(띵) 쌓인 이자 200원,10,000원, 버튼
역할 정보를 짧은 효과음으로 구분해주는 아이디어도 있었어요. 예를 들어 버튼은 ‘띵’, 스위치는 ‘툭’, 텍스트는 무음처럼, 귀로 바로 감지할 수 있게 만드는 방식이죠. 사용자가 텍스트를 끝까지 듣지 않더라도, 소리만으로도 이게 어떤 컴포넌트인지 직관적으로 알 수 있어요.
3.역할 정보를 앞에 읽어주기
버튼, 쌓인 이자 200원, 10,000원
마지막으로 떠올린 방법은, 역할 정보를 문장 앞에서 먼저 읽어주는 방식이에요. 사용자가 탐색을 시작하자마자 이 항목이 버튼인지, 단순한 텍스트인지 바로 파악할 수 있도록요.
하지만 이 방식은 iOS의 기존 시스템 문법과는 다르죠. 토스 앱만 예외적으로 앞에 읽도록 바꿔버리면, 다른 앱들과의 사용성 일관성이 깨질 수 있다는 우려도 있었어요. 그래서 결국 이 문제는 개별 앱이 해결하기보다, 시스템 차원에서 사용자가 읽는 방식을 선택할 수 있도록 옵션을 제공해야 한다는 결론을 내렸어요.
그리고 이 중 두 가지를 정리해 토스에서 어떻게 개선할 수 있을지 고민하면서, 관련 업체에 제안을 해보기도 했어요.
iOS 기능이 업데이트 되다
그 시점에, iOS 18.4에 정말로 변화가 생겼어요. “컨트롤 항목 순서 설정”이라는 이름의 기능이 추가된 거예요. 이제 보이스오버 사용자는 역할 정보를 앞에 들을지, 뒤에 들을지, 혹은 생략할지 직접 설정할 수 있게 됐어요. 기존에는 iOS 환경에서 역할 정보는 항상 뒤에 고정된 순서로만 읽혔기 때문에, 사용자가 직접 순서를 조정할 수 있게 된 건 큰 변화였어요.
사실 이런 설정은 Android나 Windows 등 다른 플랫폼에서는 이미 제공되고 있었어요. iOS VoiceOver에서 제공되지 않았던 설정이기에, 이번 업데이트가 더욱 인상 깊게 다가왔죠.
내부에서 논의했던 방식들과 굉장히 유사한 방향으로 기능이 개선되었다는 점에서 더욱 반가웠어요. 직접적인 연결은 아니더라도, 우리의 문제의식과 고민이 시스템 변화의 흐름과 맞닿아 있었다는 것만으로도 큰 의미가 있었어요.

답은 사용자에게 있다
이번 변화는 단순히 기능 하나가 추가된 것을 넘어, 우리가 고민해온 방향성과 맞닿아 있었던 시스템의 변화라는 점에서 의미 있게 느껴졌어요. 접근성이라는 시스템의 문법에 질문을 던지고, 더 나은 사용성을 향한 방법을 찾으려는 우리의 시도가 실제 변화의 흐름과 연결되어 있었다는 점에서 더욱 특별하게 다가왔고요.
이런 논의가 가능했던 이유는, 무언가 지켜야 할 원칙에서 출발한 것이 아니라 사용자의 실제 불편함에 주목했기 때문이라고 생각해요. “원칙상 어쩔 수 없다”는 태도보다는, 지금 이 순간 사용자가 겪는 문제를 어떻게든 풀어내려는 집요한 고민이 있었기에 가능했죠.
앞으로도 토스 Universal Design 팀은, 사용자가 실제로 느끼는 불편함에 더 가까이 다가가고, 당연한 것에 질문을 던지며 더 좋은 서비스를 만들어보려고 해요. 그 과정을 계속해서 공유할게요!