시각장애인도 코딩을 할 수 있을까?

DH-han·2021년 10월 10일
3

나도 무언가 쓰려고 velog에 가입했지만, 그동안 바쁘기도 했고 글을 어떻게 써야 할지 몰랐다는 핑계를 대며 미뤄왔다.

velog를 보면 '나는 코딩을 어떻게 입문하게 되었나?', '내가 코딩을 하면서 느낀 것들'과 같은 주제의 글들을 볼 수 있다. 나도 오늘 그런 주제에 대해 이야기해보려 하는데, 내 얘기는 조금 특별하게 들릴지도 모른다.

시각장애인도 코딩을 할 수 있을까?

우선 나는 시각장애인이다. 시각장애인에 대해 들어본 적이 있는가? 시각장애인은 말 그대로 시각, 즉 눈에 장애가 있는 사람들을 말한다. 한마디로 앞을 제대로 보지 못하는 사람들이다.

시각장애라고 해서 모두 앞을 못 보는 것은 아니다. 색만 구분하는 사람도 있고, 형체까지만 보이는 사람도 있으며, 나처럼 빛조차 보이지 않는 사람들도 많다.

그럼 나는 코딩을 어떻게 할까? 이 주제에 대해 글을 써보려고 한다.

대부분의 사람들은 시각장애인이 코딩하는 것이 어렵지 않을까 생각할 것이다. 코딩이란 본디 모니터에 뿜어져 나오는 에러들과 씨름하며 하는 일이니 말이다. 그런데 눈이 보이지 않으니 모니터 화면을 못 보고, 그럼 당연히 코딩은 물론 컴퓨터나 스마트폰 사용도 못 하지 않을까 하는 생각을 하는 사람이 많을 것이다.

결론부터 말하자면 시각장애인들도 코딩을 할 수 있다.

모니터를 볼 수 없는 시각장애인들은 어떻게 코딩을 할까? 잠시 글 읽는 것을 멈추고 이것에 대해 생각해보자. 굳이 코딩이 아니더라도 시각장애인은 컴퓨터 사용을 어떻게 할까에 대해서도 말이다.

시각장애인이라고 해서 삶이 대단할 정도로 많이 바뀌는 것은 아니다. 눈이 보이지 않으면 엄청 힘들지 않을까 많이들 생각하지만, 반대로 말하면 눈만 보이지 않을 뿐 다른 감각기관들은 멀쩡하다는 뜻이다.

이 글을 읽는 여러분들은 시각장애인이라는 말을 들었을 때, '시각장애인'이라는 재료로 재조립하려 하지 말고, 이미 만들어져 있는 '사람'이라는 재료에서 시각이라는 감각만 빼고 봐주었으면 좋겠다.

스크린 리더라는 해답

시각장애인들은 앞을 보지 못한다. 하지만 청각, 후각, 촉각 등 다른 감각들은 느낄 수 있다. 그렇다고 코딩이 냄새가 나는 것도 아니니 후각을 이용해서 코딩한다기엔 이상하고, 코딩에 맛이 있는 것도 아니니 미각을 이용한다는 것도 이상하지 않은가?

이제 진짜 이 문제에 대한 답을 공개하겠다. 시각장애인들은 대부분 청각을 이용해서 코딩을 한다. 더 정확히 말해서 화면을 볼 수 없는 시각장애인들은 스크린 리더라는 것을 활용해서 컴퓨터 혹은 스마트폰 화면에 접근할 수 있다.

스크린 리더란 이름 그대로 화면을 읽어주는 프로그램이다. 요즘 스마트폰에는 이런 스크린 리더 프로그램이 기본적으로 들어있는 경우가 많다. 애플의 아이폰은 보이스오버, 안드로이드는 보이스 어시스턴트나 톡백이 있다.

컴퓨터에도 마찬가지로 스크린 리더 프로그램이 있다. 마이크로소프트에서는 윈도우에 내레이터라는 기능을 넣어놨지만 워낙 후진 기능이라, 윈도우를 사용하는 시각장애인들은 내레이터보다 센스리더나 NVDA라는 스크린 리더를 사용한다.

센스리더와 NVDA는 우리가 Java나 Python을 말하는 것처럼 단순히 스크린 리더의 이름일 뿐이다. 앞서 나온 보이스오버, 보이스 어시스턴트 같은 것들도 모두 스크린 리더의 이름이다.

나의 코딩 입문기

그럼 나는 코딩에 어떻게 입문하게 되었을까?

나는 상당히 일찍부터 컴퓨터를 만지기 시작했다. 컴퓨터를 계속 하다 보니 좋아하게 되었지만, 코딩을 배우려는 생각은 없었다. 그때는 코딩이 뭔지, 프로그래밍이 뭔지 알지 못했기 때문이다.

그러던 어느 날 인터넷을 돌아다니다 우연히 HTML에 대한 이야기를 듣게 되었다. 이걸 사용하면 평소 내가 보던 링크나 버튼 같은 것들을 웹사이트에 구현할 수 있다길래, 당장 너무 신기해서 HTML에 관해 찾아보다 생활코딩님의 강의를 접하게 되었다.

하지만 시각장애인인 내가 듣기에는 조금 불편한 점이 있었다. 유튜브에서 동영상 강의를 제공하다 보니 코드를 보고 따라 쳐야 되는데, 나는 그게 불가능했기 때문이다. 물론 HTML을 배우고 난 후에 이 코드들이 opentutorials 사이트와 GitHub에 모두 올라온다는 사실을 알게 되었지만, 그때는 그런 사실들을 몰랐다.

앞서 스크린 리더에 대해 설명했으니, 왜 텍스트로 된 코드는 내가 읽을 수 있고 동영상에 나오는 코드는 못 읽는지는 다들 이해했을 거라 믿는다.

어쨌든 나는 HTML을 계속 배워나갔다. 대충 강의에서 태그 이름들은 말씀해 주셨으니, 그런 태그들을 검색해보는 등의 방법으로 말이다.

HTML을 완벽하게 배운 건 아니지만, 그래도 이제는 링크나 버튼을 만들 수 있게 되었다. 지금 와서 생각해보면 HTML은 순서대로 차근차근 배운다기보다는 그냥 태그를 알아가는 개념에 더 가까웠던 것 같다.

HTML을 배우고 나서는 한참을 HTML을 이용해서 텍스트로만 이루어진 게임을 만들어봤다. 그냥 텍스트가 표시되고 선택지에 맞는 링크를 누르면 또 다른 HTML 문서로 이동해서 그 링크에 대한 또 다른 스토리를 보여주는, 지금 와서 생각해보면 문서 수만 몇십 개씩 될 것 같은 그런 비효율적인 게임들을 말이다.

CSS는 건너뛰고

나는 HTML에서 이미지 다루는 것을 배우지 않았다. 못 한 게 아니라 안 한 것이다. 당장 내가 이미지를 다룰 일도 없을 뿐더러, 어차피 스크린 리더도 이미지에 관해서는 읽어주지 않기 때문에 소용이 없기 때문이다. 그렇기 때문에 순수 텍스트로만 이루어진 게임을 만들 수밖에 없었다.

대부분의 사람들이 HTML 다음으로는 CSS를 배운다. CSS는 HTML과 함께 쓰여서 사이트를 디자인해주는 역할을 한다. 하지만 아무리 색깔을 지정하고 너비나 글꼴을 지정해도 나에게는 그게 다 쓸모가 없기 때문에 나는 CSS를 배우지 않았다. 지금도 CSS는 모르고 있는 언어 중 하나다.

만약 나중에 개발 쪽으로 취업을 하게 된다면 CSS도 필수로 배워야 될 언어일 것이다. 하지만 그게 지금이어야 할 필요성은 느끼지 못하고 있다.

AutoIt과의 만남

HTML 다음으로는 AutoIt 이라는 조금 생소한 언어를 배웠던 것 같다. 이때부터 프로그래밍에 본격적인 재미를 붙이기 시작했다. AutoIt은 기본적으로 콘솔에 입출력을 하지 않는다.

처음 배우는 msgbox 함수는 GUI 형태로 출력을 해준다. C를 배우기 전까지도, 아니 C에서 Hello, World 소스코드를 작성하고 컴파일되기 전까지도 모든 프로그래밍 언어들이 당연히 GUI로 실행되는 줄 알고 있었다. 뭐 그때는 GUI니 CLI니 하는 개념들을 몰랐으니, 그냥 화면에 버튼이 뜨는 줄만 알았다.

AutoIt도 기본적인 제어문이나 함수까지 배우고 이것저것 만들어봤다. 번호를 누르면 내가 자주 실행하는 프로그램을 실행해준다든지, 단순한 구구단 퀴즈 게임이라든지 하는 것들 말이다.

그때가 초등학교 6학년에서 중학교 1학년 쯤이었을 거다. 나도 자세한 시기는 기억이 나지 않는다.

C언어와의 만남

한동안은 AutoIt으로 이것저것 만들기만 했지, 뭘 배울 생각은 없었다. 그러다가 C언어에 대해 알게 되었다. AutoIt과 HTML만 해서 심심했던 나는 당장 C언어를 배우기 시작했다. 이번에는 동영상 강좌가 아닌 텍스트 형태로 되어있는 강좌로 배웠다.

내가 C를 배운 사이트는 '모두의코드'라는 사이트인데, 강의도 상당히 좋았지만 내가 가장 좋았던 건 코드와 강좌가 모두 텍스트로 제공된다는 점이었다.

C를 배우면서는 언어에 대한 지식뿐만 아니라 언어 외적인 IT 관련 지식이나 컴퓨터 관련 지식들을 굉장히 많이 얻을 수 있었다. C는 컴퓨터에 굉장히 밀접하게 관련있는 언어다. 이런 점 때문에 C를 배우면서 다른 언어를 배울 때보다 컴퓨터의 동작 방식, IT 등에 더 관심이 많이 가지 않았나 싶다.

100퍼센트 C 덕분이라고는 할 수 없지만, C를 배우면서 프로그래밍에 정말 급격하게 관심이 쏠리기도 했다. 이틀 만에 기본 입출력을 다룰 수 있게 되었고, 슬슬 함수와 포인터가 나오면서부터 급격히 난이도가 올라갔다.

아직도 포인터에 대해서는 잘 알지 못한다. 메모리 할당이니 동적 메모리니 하는 것들도 들어만 봤지 자세히는 알지 못한다.

개발 도구와 접근성

나는 C를 배울 때 비주얼 스튜디오를 사용했다. 설치부터 사용까지 스크린 리더가 읽어주는 데는 지장이 없었다.

잠깐! 여기서 또 하나 빼놓고 가면 안 되는 이야기가 있다. 시각장애인들은 아무리 텍스트로 되어있는 프로그램이라고 해도 '접근성'이 좋지 않으면 사용할 수 없다. 텍스트로 되어있지만 스크린 리더가 못 읽어주는 경우도 있고, 항목은 읽어주지만 포커스가 잘 맞춰지지 않는다든지, 일부 항목만 읽어준다든지 하는 프로그램도 있다.

그런 면에서 봤을 때 비주얼 스튜디오는 접근성이 꽤 우수한 프로그램이었다. 단, 디버깅 빼고 말이다.

그래도 기본적인 소스코드 작성과 컴파일, 그리고 결과를 보는 것까지는 나도 할 수 있었다. 더군다나 콘솔에서 입출력을 하기 때문에 스크린 리더가 읽어주지 않을 일도 없었다. 콘솔은 애초에 CLI 기반이기 때문에 완전한 텍스트다.

하지만 프로그래밍을 배우면서 접근성이 좋지 않은 예도 꽤 많았다. Python에 tkinter 라이브러리를 활용해서 GUI를 만들고 실행했더니 버틐 등의 객체에 포커스가 잘 맞춰지지 않았고, 잘 읽어주지도 않았다. 다른 라이브러리인 PyQt5도 마찬가지였다.

스크린 리더가 완벽하게 읽어주는 GUI를 만들려면 아마 C나 C++를 사용해야 될 것 같다. 물론 Python으로도 어떻게 잘 하면 만들 수 있겠지만, 아직까지 방법을 찾지는 못했다.

웹 접근성에 대한 생각

그래도 웹은 그나마 낫다. 웹은 접근성 표준에만 잘 맞춰서 만들면 스크린 리더가 잘 읽어주고, 굳이 그렇게 하지 않아도 간단한 HTML 문서는 잘 읽어준다. 웬만한 국내 포털 사이트들은 스크린 리더로 접근이 잘 된다.

하지만 솔직히 말해서 velog는 접근성이 그렇게 좋은 편은 아니다. 그래도 이것저것 눌러보면서 구조를 익혀가면 사용하는 데 지장은 없을 것 같다. velog 외에도 접근성이 안 좋은 사이트들은 얼마든지 있다.

그런 사이트들을 발견하면 정말 기본적인 것들은 스크린 리더가 읽어주니, 그런 것들을 눌러가며 사이트 구조를 익혀가면서 사용한다. 뭐 정말 그런 것도 안 되는 경우라면 해당 서비스와 비슷한 유형의 사이트를 찾아보거나, 정말 여의치 않은 상황이라면 이용을 포기할 수밖에 없다.

사이트 자체의 접근성이 좋지 않은 것도 문제지만, 사이트 가입 절차가 문제가 되는 경우도 있다. 흔히 나름 규모가 있는 사이트라면 가입할 때 보안문자를 입력하는 화면을 본 적이 있을 것이다.

요즘은 대부분 음성문자 듣기를 지원하지만, 최근까지도 이를 지원하지 않는 사이트들이 많다. 한 예시로 OpenAPI는 최근까지도 음성문자를 도입하지 않았었다. 정부가 운영하는 사이트라고 알고 있는데, 가입 절차에서부터 막히니 솔직히 좀 실망스러웠다.

또 대부분의 공유기 관리자 페이지들은 로그인할 때 음성문자를 지원하지 않는다. 임베디드 환경이라 저장공간, 하드웨어 환경 등 모든 것에 제약이 큰 것은 알고 있지만, 그래도 추가되었으면 하는 바람이다.

이렇게 로그인할 때 자동입력 방지 문자를 이미지 형태로만 지원한다면 정말 답이 없다. 우리가 그림을 볼 수 있는 것도 아니고, 주변에 도움을 요청하자니 굳이 그렇게까지 해야 하나 라는 생각도 든다. 그리고 이런 상황이 있을 때마다 계속 주변에 도움을 요청하는 것도 아니라고 생각한다.

긍정적인 변화의 사례

그래도 위에 나온 OpenAPI 사례는 나름 좋은 편이다. 사이트를 이용할 방법을 생각하다 그냥 관리자에게 이메일을 보내기로 했다. 성격이 내성적인 편이라 이런 이메일을 어떻게 작성해야 될지 몰라서 그동안 피해왔던 방법일 수도 있다. 하지만 결과는 좋았다. 관리자분께서는 바로 기능을 추가해 주셨고, 현재 OpenAPI에는 음성문자를 이용하여 자동입력 방지 문자를 입력할 수 있다.

마무리하며

접근성이 안 좋은 사이트들을 내가 싫어하지는 않는다. 또 접근성이 안 좋은 사이트가 전혀 나쁜 사이트라는 것도 아니다. 많은 사람들은 접근성을 신경 쓰지 않는 것이 아니다. 물론 그런 경우도 있겠지만, 대부분이 접근성에 대해 몰라서 생각을 못 한 것뿐이다.

내 바람을 잠시 이야기해보자면, 개발자들 사이에서도 시각장애인 접근성에 대한 인식이 널리 확산되었으면 좋겠고, 이러기 위해서는 실제 시각장애인이 개발자로서 많이 활동해야할 것 같다.

사실 시각장애인들 중에도 정말 프로그래밍을 잘하시는 분들이 많다. 이분들을 보면 별의별 것을 다 만드시는데, 막상 직업은 개발자가 아니다. 이 부분이 조금은 아쉬운 부분이다.

결론적으로 같은 어려움을 공유하고 나아갈 수 있는, 개발 이야기를 할 수 있는 시각장애인이 많아지는 것, 나아가 접근성을 고려한 개발이 당연시 되는 것이 내가 가지고있는 목표이다. 미래에 개발자로 일하게 되지 않더라도 꾸준히 노력하고싶다.

profile
프로그래밍에 관심이 많은 학생입니다

5개의 댓글

comment-user-thumbnail
2022년 1월 23일

안녕하세요! 동현님!

저희는 서울과학기술대학교 3명의 개발자로 이루어진 팀이고, 저는 팀내에서 시각 장애인분들과 좀 더 가까이서 이야기 해보고자 소통을 담당하게 된 전의정이라고 합니다.
다름이 아니고 저희 팀은 이번 구글 솔루션 챌린지라는 대회에서 시각장애인들의 코딩 및 개발에 도움을 주는 플랫폼 서비스 라는 주제로 개발을 진행하고자 합니다.

초기에 “시각장애인들도 코딩을 할 수 있을까?”라는 궁금증으로 부터 저희 주제가 시작되었습니다. 사전 조사를 하던중 동현님의 “시각 장애인도 코딩을 할 수 있을까?” 라는 글을 보게 되었고 주제와 기능을 구체화하는데 많은 도움을 받았습니다. 하지만 시각장애인분들이 코딩을 할 때 구체적으로 어떤 도움이 필요한지를 알지 못하여 기능을 구체화하는데 어려움이 존재하였습니다. 따라서 이에 대한 동현님의 의견을 듣고자 합니다!

혹시 메일 주소를 알 수 있을까요?!
전의정 드림

1개의 답글
comment-user-thumbnail
2022년 4월 30일

좋은 글 잘 읽었습니다. 저도 시각 장애인분들은 어떻게 코딩을 하실까 궁금해서 검색하다가 들어왔는데 덕분에 글을 읽고 나서 이해하게 되었습니다. 시각장애인 접근성에 대한 인식이 개선되어야한다는 점에 공감하고 갑니다!

1개의 답글