DTech 공모전 회고록

Ted·2023년 12월 7일
0

회고록

목록 보기
1/5
post-thumbnail

일단 얘기에 앞서.
D-Tech라는 건 Disability, Design, Dream과 Tech를 합친 말이다.

즉 아직 우리가 살아가는 세상 속엔 장애인분들을 가로막는 많은 장벽이 존재하고 그렇기에 창의적인 기술이나 디자인, 사업 아이템을 통해서 이런 문제를 해결하려는 목적에서 공모전이 탄생했다!

이 이런 사회적 약자를 돕는 공모전을 통해서 처음에 내가 얻고싶었던 것은 사실 뭔가 베리어프리를 실현시키기 위한 노력이 부족하다고 생각하기도 해서 여태 사회적인 변화를 일으키기 위한 다양한 공모전이나 프로젝트 기획같은 시도를 해봤지만 정작 개발자로서 실제 개발을 해본적은 거의 없어 이번 기회를 통해 개발까지 해보고 싶었다.

처음 기획이 끝나고 뒤에 참여하게 되었지만 실제로 굳이 iOS로 개발하는 이유부터 iOS의 장점을 얘기하는 내용이 일절 없었다. 개발자로서 참여하였지만 아무리 생각해도 이걸론 근거를 대기 부족할 듯하여 기획에서 기능에 전문적인 부분을 담당해서 기획을 좀 더 탄탄하게 만들려고 했다.

기본적인 리듬에 가사얹기

정말 잘 만들어진 리듬에 가사를 얹어 노래를 완성시키듯 우리가 iOS로 서비스를 개발하려는 이유를 명확하게 만들고자 하였다. 시작장애인 부모를 위한 서비스를 기획하였고 시각장애인을 위한 서비스이기에 무엇보다 VoiceOver에 초점을 두었다.

더 정확한 근거를 위해 유투브에 시작장애인 부모의 육아삶을 촬영한 다큐 영상을 참고하여 최대한 아이의 건강상태를 파악하기 좋을 UX를 부모가 경험할 수 있도록 디자인부터 개발까지 설계하였다. VoiceOver의 작동방식을 외워 직접 눈을 감고 사용해보면서 무엇이 필요할지 무엇이 빠져야할 지를 생각했다.

궁극적으로 VoiceOver의 경우 한 뷰에 있는 오브젝트들을 사용자가 긁으며 읽을 수도 있고 뷰에 있는 모든 내용을 읽게 할 수도 있다. 사용자가 어떤 동작을 선호할지는 모르기에 최대한 한 뷰에 요소가 적게 하고 싶었고 그 결과 큰 버튼과 한 뷰에 필요한 요소를 최소화하였다.

무엇보다 중요했던 건 VoiceOver 기술이었다.

기술..

VoiceOver는 정말 혁신적인 기술이었지만 진짜 거의 처음 이걸 사용하는 사람은 사용해보면 알겠지만 진짜 작동하기 어렵다.... 시각장애인분들이 존경스럽습니다...

VoiceOver, 즉 접근성을 앱에서 활성화하는건 어떻게 하냐? 바로 accessbility라는 것을 활용한다. VoiceOver를 켜보고 알았지만 대부분의 앱에서 단순한 버튼을 말할 때 이미지라고 읽는다. 시각장애인이 이걸 듣고 사용할 수 있을까...?

배달의 민족, 쿠팡같은 대기업의 앱에서는 당연하게도 이러한 버튼들에 어울리는 표현을 해놨다. 배달의 민족의 경우 각 음식 종류별 버튼이 있는데 여기도 족발이라면, "족발 버튼"이런 식으로 말한다. 버튼 title을 족발 버튼이라하면 되는거 아님? 이러면 안된다...

원샷한솔이라는 시각장애인 유투버가 카톡을 쓰면서 댓글과 톡 이모티콘까지 사용하는 영상이 있는데 이런 영상을 참고해보면 개발자로서 생각이 열릴 것이다!

iOS에서는 오디오 피드백을 통해서 이러한 접근을 준다. 프레임워크가 UIKit이냐 SwiftUI냐에 따라 적용 방식이 다르긴 하지만 기본적으로 UIKit에서는 isAccessibilityElement을 통해 접근성 요소인지를 판단하게 해준다. 사실 UIKit으로 만들면 굳이 안읽어도 되는 부분들을 false를 통해 제외시킬 수 있다.

let imageView = UIImageView()
imageView.isAccessibilityElement = false // 읽지 않습니다.

하지만 난 SwiftUI로 개발했다... SwiftUI와 UIKit 둘다 accessibilityLabel이라는 것이 있다. 요소를 선택했을 때 읽어주는 텍스트를 여기서 지정할 수 있다!

let addButton = UIButton()
button.setImage(UIImage(named: "add", for: .normal)
button.accessibilityLabel = "족발, 보쌈"

그리고 추가적인 설명이나 동작시키기 위한 방법을 안내하게 할 수 있는 accessibilityHint같은 것을 쓴다.

그러면 타이핑을 할 때는 내가 뭐 적고 있는 어떻게 알아? 라고 할 수 있는데 이런건 또 accessibilityValue로 값이 달라지는 요소에 맞춰 오디오 피드백을 준다.

그래서 최대한 이런 접근성을 위한 것들을 뷰를 구현하면서 추가하였다.

문제발생

근데 뷰는 구현했는데 아니 폰에서 앱을 실행시켜보니 영어로만 읽고 한글로 accessibilityLabel설정 해놓은 건 읽지도 않는 것이다.. 공모전이 다끝나고 나서 한참뒤에 원인을 알았지만 알고보니 Xcode 초기에 설정에 보면 Localization이 default가 USA라서 안됐던 것이다. 문제가 생겼기에 어쩔 수 없이 노트북에서 실행하는 시뮬레이터에서 VoiceOver 툴을 켜서 읽게하는 방식으로 영상을 찍을 수 밖에 없게 되었다.

결과

물론 큰 대회에서 5팀안에 드는 성과를 이룰 수 있었지만 팀원 모두가 아쉬웠는지 더욱 디벨롭을 시키게 되었다. 좋은 결과던 아니던 VoiceOver를 다루면서 뷰의 구성에 따라서 잘못 짜면 VoiceOver가 잘못 인식하는 것도 확인하면서 뷰의 구성을 잘 짜야겠다는 생각도 하게 되었다.

추가적으로는 accessibility를 수정하고 깔끔하게 코드를 리팩토링할 예정이다. 애플에서 제공하는 기본 속성들만으로도 충분히 쉽게 접근성지원을 만들 수 있다는 것을 깨달았기에 앞으로도 이런 디테일은 중요하게 생각해야할 것같다.

아직 많은 앱들이 눈을 감고 사용하면 이게 뭔지 모를만큼 알기 힘든 앱들이 많았다. 앞으로 만드는 서비스들엔 접근성을 추가하면서 단순할 수 있지만 더 나은 경험을 위한 개발을 하려한다.

참고자료


https://www.d-techcampaign.com/
https://developer.apple.com/documentation/swiftui/view-accessibility/
https://developer.apple.com/documentation/uikit/accessibility_for_uikit/supporting_voiceover_in_your_app
https://okanghoon.medium.com/ios-%EC%A0%91%EA%B7%BC%EC%84%B1-voiceover-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0-f2b3b1288b02

profile
iOS Developer

0개의 댓글