아티클

모바일 터치 디바이스에서의 키보드 접근성

2018-02-27 13:58:48

안녕하세요, 엔비전스입니다. 

스크린리더 사용자가 터치 기반의 장치(스마트폰, 태블릿 PC)를 사용하면서 겪게 되는 큰 어려움 중의 하나는 문자 입력입니다. 스크린리더는 각 키에 포커스 하면 포커스 된 문자를 출력합니다. 그러나 사용자에 따라 키 간격이 좁게 느껴지는 사용자가 있고, 물리적 키보드에 비해 문자 입력 속도가 많이 떨어질 수밖에 없습니다. 이러한 문제를 해결하기 위해 일부 제조사에서는 여러 대안이 개발되었습니다. 이번 아티클에서는 그 대안들을 살펴보고, 키보드를 개발할 때 필요한 접근성 사항에 대해 알아보겠습니다.

  • 음성 입력
‘음성 입력의 접근성’에서 미리 살펴본 적이 있듯이 터치 디바이스에서의 문자 입력 대안으로 가장 많이 이용되고 있는 방법입니다. 단순한 글자 입력뿐만 아니라 운영체제에 따라 마침표, 쉼표, 느낌표와 같은 문장부호도 인식하므로 간단한 메시지를 보낼 때 유용하게 사용이 가능합니다. 그러나 개인의 특성상 음성 입력을 너무 불편해하거나 글자 인식이 잘못되었을 때 수정이 불편한 점 등으로 인해 음성 입력으로 100% 문자를 입력할 수 있다고는 말할 수 없습니다. 또한 영어와는 달리 한국어에서는 ‘새 문단, 새 줄’과 같은 명령어 인식이 불가능하며 안드로이드의 경우 삼성 빅스비와 같은 특정 플랫폼을 제외하고는 구글 음성 입력은 문장부호, 특수문자와 같은 한글 발음 음성인식의 경우 입력이 불가능하다는 문제가 있습니다.

  • 블루투스 키보드

블루투스 키보드는 스마트폰과 연결하여 물리적 키로 입력하여 내용을 작성할 수 있다는 점에서 스크린리더 사용자가 가장 많이 이용하는 대안 중 하나입니다. 이러한 특성을 고려하여 VoiceOver, TalkBack 스크린리더에서는 블루투스 키보드로 스크린리더의 기능을 제어할 수 있는 여러 단축키 또한 제공하고 있습니다. 그러나 이러한 블루투스 키보드는 항상 휴대하고 다녀야 한다는 점과 이동 중 입력이 어렵다는 불편함이 따릅니다. 이러한 휴대성에서의 불편함을 해결하기 위하여 모비언스라는 회사는 천지인, 나랏글과 같은 방식으로 문자를 입력 가능하도록 키보드의 크기를 줄이고 키보드 자체에 스피커 및 마이크를 추가하여 스마트폰 스크린리더의 음성 피드백을 블루투스 키보드에서도 들을 수 있도록 하는 등의 개발이 이루어지고 있습니다.

 

  • 가상 점자 키보드를 통한 입력

가상 점자 입력은 스마트폰 디스플레이에 6개의 손가락을 올려놓으면 6개의 손가락 위치가 각각의 점자 키보드로 변환되어 바로 점자 입력이 가능하도록 지원하는 방법을 말합니다. 점자 키보드가 설정된 상태에서 스마트폰을 가로로 위치시킨 후 손가락 6개를 피아노 건반에 올려놓듯이 가로로 6개의 손가락을 올려놓거나 손목을 45도 각도로 돌려서 양손이 마주 보는 제스처로 점자를 입력하면 자동으로 일반 글자로 번역됩니다. 점자 입력이 능숙할 경우 입력 도중 스크린리더의 음성 없이도 빠르게 글자를 입력할 수 있어 해외에서는 많은 시각장애인들이 점자 키보드 입력을 사용하고 있습니다. 그러나 한글점자는 한국점자 규정에 맞게 스마트폰 플랫폼에 점자 데이터가 내장되어 있지 않아 한글을 입력하는 것은 거의 불가능합니다. 

 

 

위에서 살펴본 것처럼 문자에 입력에 대한 여러 대안을 상황에 따라 사용한다 하더라도 터치 키보드 입력을 아예 사용하지 않을 수 없습니다. 따라서 터치 키보드 구현 시 구현되어야 할 접근성 기능에 대해 함께 살펴보겠습니다. 

 

  1.  키보드 각 키에 스크린리더로 접근할 수 있어야 합니다. iOS의 경우에는 한 손가락 쓸기를 이용하여 키보드의 키에 포커스 되지만 안드로이드는 기본적으로 키보드의 각 글자에 한 손가락 쓸기로 바로 포커스 할 수 없습니다. 그리하여 터치한 상태로 화면을 탐색해 각 키에 포커스 할 수밖에 없습니다.
  2.  이모티콘을 제외한 글자, 특수문자의 경우에는 각 글자에 대한 대체 텍스트를 제공할 때 글자 자체로 대체 텍스트를 제공해야 합니다. 예를 들어 ‘기역’이라는 키보드 글자에 대체 텍스트를 삽입한다면 단순히 ‘ㄱ’으로 부여할 수도 있고 풀어서 ‘기역’이라고 부여할 수도 있습니다. 대체 텍스트는 전자로 제공해야 합니다. 왜냐하면 스크린리더는 ‘ㄱ’, ‘ㅏ’, ‘a’ 등의 글자에 위치하면 힌트 메시지로 phonetic feedback을 제공합니다. 이를테면 ‘ㄱ’은 ‘가을’로 풀어 읽습니다. 만약 후자처럼 대체 텍스트를 제공할 경우 제대로 된 힌트 메시지를 제공할 수 없습니다(iOS는 아직 한글 문자에 대한 힌트는 제공하지 않음). 
  3.  편집 창을 활성화하여 키보드가 표시되거나 혹은 편집 창이 닫힐 때에는 ‘한국어 키보드 표시, 한국어 키보드 숨김’과 같이 키보드가 표시되었는지, 숨겨졌는지, 그리고 어떤 언어의 키보드가 표시되었는지를 각 플랫폼에 맞는 접근성 기능을 통하여 구현해야 합니다. 특정 키를 길게 눌러 팝업이 표시되거나 닫혔을 때에도 ‘팝업 표시됨’과 같이 음성 출력해야 합니다.
  4.  일반적으로 각 문자를 길게 누르면 팝업이 표시되면서 대체 문자 혹은 추가 옵션을 설정할 수 있도록 각 키보드에서 기능을 제공합니다. 스크린리더를 사용할 경우 사용자에 따라 손가락 움직임의 차이도 다르고 특정 글자에 손가락을 길게 올려놓아 힌트 메시지를 들을 수도 있으므로 팝업 표시 시간을 사용자가 설정할 수 있도록 지원해야 합니다.
  5.  키보드 영역에서 손가락을 터치한 상태로 키보드 영역 바깥으로 슬라이드 할 경우에는 키보드 탐색만 한 것이지 손가락을 떼어 글자 입력을 하지 않은 것이므로 특정 글자가 입력되지 않도록 구현해야 합니다.
  6.  안드로이드의 경우 키보드의 각 글자가 TextView 요소로 출력되지 않도록 해야 합니다. 일반적으로 TextView 요소는 탭 하여 실행할 수 있는 요소가 아닌 단순 텍스트를 표현할 때 사용하므로 톡백에서 해당 요소를 만나면 톡백 사운드도 약하게 출력할 뿐만 아니라 진동 피드백을 설정한 때에도 진동의 세기도 약하게 출력됩니다. 따라서 키보드의 각 글자가 TextView로 구현되어 있으면 각 요소 간 손가락 이동 시에 정확한 요소 피드백이 어려울 수 있습니다.

완전하진 않지만 위에서 살펴본 접근성 기능을  잘 구현한 키보드 중 하나가 안드로이드의 Swiftkey 키보드입니다. 

  • 안드로이드의 Swiftkey 키보드 사용해보기
플레이 스토어에서 앱을 설치하면 키보드 관리 항목에 Swiftkey 키보드가 추가되어 있습니다. 
    1.  설정 > 접근성 > 음성 안내 지원 > 상세 출력에서 ‘사용 힌트를 음성으로 제공’ 항목을 체크합니다. 이 항목이 체크되어 있어야 키보드의 각 글자에 손가락을 올려놓고 있으면 힌트 메시지가 출력됩니다.
    2.  설정 > 언어 및 입력 > 스크린 키보드(삼성 갤럭시의 경우, Google 레퍼런스는 가상 키보드로 표시) > 키보드 관리에서 Swiftkey를 활성화합니다.
    3.  설정 > 언어 및 입력 > 기본 키보드에서 Swiftkey 키보드로 기본 키보드를 변경합니다.
    4.  스크린 키보드 > swiftkey 키에서는 키보드 언어 및 숫자 키 표시, 키 길게 누를 때 팝업 표시 시간, 소리 출력 등의 옵션을 설정할 수 있습니다. 참고로 언어를 한국어와 영어로 설정하였다면 언어를 전환하기 위해 스페이스를 길게 누르면 됩니다. 
      • 팝업 표시 시간의 경우 톡백을 켠 상태에서 슬라이드로 값을 조절 가능하지만 볼륨 키로 슬라이드 조절 시 변경 값이 적용되지 않으므로 슬라이드를 길게 이중 탭 하여 좌 또는 우로 슬라이드 하여 값을 조절하도록 합니다.
    5.  설정을 마쳤다면 메모 앱과 같은 편집 가능한 요소를 이중 탭 합니다. 그러면 톡백에서 ‘스위프트키 한글 키보드 표시’라고 음성 출력합니다. 
    6.  각 글자에 손가락을 올려놓고 조금 기다리면 'ㅣ'(이순신)과 같이 그 글자에 대한 힌트 메시지를 들을 수 있습니다.
    7.  뒤로 버튼 등을 눌러서 편집 창을 닫습니다. 그러면 ‘키보드 숨김’과 같이 음성출력합니다.

지금까지 모바일 키보드에서의 접근성 이슈에 대해 함께 생각해 보았습니다. 이 글이 키보드의 접근성에 대해 이해하는데 도움이 되었으면 좋겠습니다.

 

 

 

댓글 0
댓글을 작성하려면 해주세요.