정보공간_1

[4기 강남 이상훈] Mobile Accessibility[모바일 애플리케이션 접근성 지침]-Part 2 본문

IT 놀이터/Elite Member Tech & Talk

[4기 강남 이상훈] Mobile Accessibility[모바일 애플리케이션 접근성 지침]-Part 2

알 수 없는 사용자 2013. 10. 20. 22:42

 이전 포스팅을 통해 모바일 접근성 개념에 대해 설명해 드렸습니다. 이번 포스팅은 행정안전부와 한국정보화진흥원에서 발표한 "모바일 애플리케이션 접근성 지침-행정안전부고시 제2011-38호"와 "모바일 애플리케이션 [안드로이드] 접근성 점검 메뉴얼 [v1.0]" 을 참고하여 모바일 애플리케이션 준수사항 7가지를 소개하여 드리고, 이를 적용하는 방법을 설명해 드리려 합니다. 

 

 본 포스팅에 앞서 장애인들이 어떻게 스마트폰을 사용하는지를 이해하기 위해 접근성 제츠셔를 사용하는 동영상을 보도록 하겠습니다. 본 영상은 안드로이드 접근성 메뉴에서 talkback 기능과 기타 접근성 기능들을 활성화 한 후 찍은 영상입니다. 참고하시기 바랍니다. 


[ 출처 : http://ui.daum.net/accessibility/tools/android ]

 위의 사이트에 가시면 안드로이드 접근성 설정 방법에 대하여 자세히 설명되어 있으니, 참고하시기 바랍니다.


우선 그럼 준수 사항이 무엇인지 간략하게 알아보고 가도록 하겠습니다. 

준수 사항이란?

 장애인이 비장애인과 동등하게 모바일 애플리케이션에 접근하여 이용하기 위해서 반드시 준수해야 하는 사항을 말합니다. 


 그럼 본격적으로 모바일 애플리케이션 준수사항 7가지를 설명하도록 하겠습니다. 준수사항 7가지는 아래와 같습니다.


1. 대체 텍스트

2. 초점(Focus)

3. 운영체제 접근성 기능 지원

4. 누르기 동작 지원

5. 색에 무관한 인식

6. 명도 대비

7. 자막 수화등의 제공


 대체 텍스트란 텍스트가 아닌 콘텐츠에 대응하는 대체 텍스트가 그 의미나 기능을 파악할 수 있도록 짧고 명확하게 제공하여야 한다는 것입니다. 

 시각장애인의 경우 안드로이드는 talkback이라는 스크린 리더를 이용하여 스마트폰을 사용하는데, 대체 텍스트를 명확하게 제공하지 않을 경우 애플리케이션을 이용할 수 없습니다. 모바일 애플리케이션은 이미지가 많이 들어간다는 특징이 있습니다. 여기에는 반드시 대체 텍스트를 제공하여야 하며, 대체 텍스트를 듣는 것만으로 본 버튼이나 다른 콘트롤들이 의미하는 바를 명확하게 인지 할 수 있어야 합니다. 만약 이미지뷰나 이미지버튼에 대체텍스트를 삽입하지 않는다면, 장애인들은 talkback을 활용하여 버튼을 확인할 경우, 확인할 수 없는 텍스트가 출력(ex> ic_play 버튼, 그림1 버튼)되어 사용자에게 혼란을 가져다 줍니다. 

그렇다면 어떻게 대체텍스트를 삽입하여야 할까요?

android XML 코드에서 

위와같이 android:contentDescription 태그를 활용하여 대체 텍스트를 삽입할 수 있습니다. 

반드시 이미지 버튼이나 이미지를 활용한 컨트롤을 생성 할 경우, 본 컨트롤이 어떠한 기능을 하는지 명시를 해줘야 장애인들이 사용을 할 때, 혼란을 방지 할 수 있습니다. 

또한 자바 코드를 활용하여 대체 텍스트를 적용할 수 있습니다.

voidsetContentDescription(CharSequence contentDescription)
Sets the View description.

 View Class의 setContentDescription을 활용하여 적용할 수 있습니다. android의 모든 widget은 View를 상속받기 때문에, 모든 컨트롤에서 적용할 수 있습니다. 



2. 초점(Focus)

모든 객체에는 초점(focus)이 적용되고, 초점은 순차적으로 이동되어야 합니다. 초점이란 쉽게 설명하면 윈도우에서 폴더를 한번 클릭했을때, 선택된 영역을 말합니다. 즉, 현재 화면상에서 포커싱되고 있는 것인가를 표시 할 수 있어야 된다는 말로 풀이할 수 있습니다. 

 초점을 제공해야 하는 이유는 초점이 제공되지 않을 시 스크린리더(android의 경우 talkback)가 화면을 읽어 줄 때 어떠한 순서로 읽어야 할지를 모르기 때문입니다. 따라서 반드시 모든 객체의 Focus의 순서를 적용해야 하고 , 해당 객체 이전의 포커스는 어디인지, 다음 포커스는 어떤 객체인지를 명시를 해 주어야 하는 것입니다. 

그럼 포커스를 적용하는 방법에 대해 알아보도록 합시다.

android XML 코드에서 

위와 같은 속성을 이용하여 적용하여 해당 위치의 객체를 포커싱 할 수 있고, JAVA 코드로는

voidsetNextFocusDownId(int nextFocusDownId)
Sets the id of the view to use when the next focus is FOCUS_DOWN.
voidsetNextFocusForwardId(int nextFocusForwardId)
Sets the id of the view to use when the next focus is FOCUS_FORWARD.
voidsetNextFocusLeftId(int nextFocusLeftId)
Sets the id of the view to use when the next focus is FOCUS_LEFT.
voidsetNextFocusRightId(int nextFocusRightId)
Sets the id of the view to use when the next focus is FOCUS_RIGHT.
위와 같이 적용할 수 있습니다. 또한 아래의 XML 속성을 사용하면

해당객체에 초점을 적용할 수 있도록 설정을 할 수 있습니다. 또한 android:requestFocus 속성을 사용하면 해당 객체에 초점을 설정할 수 있습니다. 

소스코드로는 아래의 메소드를 활용하여 초점을 제공 할 수 있습니다.

booleanrequestFocus(int direction, Rect previouslyFocusedRect)
Call this to try to give focus to a specific view or 
to one of its descendants and give it hints about 
the direction and a specific rectangle that the focus is coming from.


3. 운영체제 접근성 기능 지원

 장애인 등의 모바일 애플리케이션 접근성을 보장하기 위해서는 각 운영체제에서 제공하는 접근성 기능을 활용해야 합니다. 이를 활용하지 않을 시에는 장애인이 활용하는 다양한 모바일 기긱, 모바일 보조기기 등과 호환되지 않아 이용이 불가능하는 경우가 발생하기 때문입니다. Android에서 제공하는 Accessibility API 중 대표적으로는 Accessibility Service, Accessibility Event , Accessibility API for Customize, Eyes-free 등이 대표적입니다.

 다양한 API들 중 하나만 예를 들자면 EditText에서 제공하는 접근성 기능으로 hint 기능이 있을 수 있습니다. 

EditText객체에 hint(설명)를 넣어주지 않을 경우, 장애인이 사용했을 경우 해당 입력창에 무엇을 입력해야 하는지 알 수 없음으로 반드시 hint를 입력해 주어야 합니다. 적용방법은 각각 아래와 같습니다.

android XML 속성

Java Method

final voidsetHint(CharSequence hint)
Sets the text to be displayed when the text of the TextView is empty.

 

4. 누르기 동작 지원

 모바일에서 제공되는 모든 애플리케이션은 흔히 말하는 Touch 동작으로 작동 할 수 있어야 합니다. 이 이유는 눈이 안보이는 시각장애인의 경우 Drag나 Slide(미는 동작)를 원활히 할 수 없기 때문입니다. 생각해 보세요. 눈이 안보이는 사용자가 폴더를 드래그앤 드랍을 한다면? 우선 어떤 폴더를 선택해야하는지도 난감하지만, 어디에다가 drop을 해야하는지도 매우 난감할 것입니다. 따라서 모든 컨트로는 touch 혹은 tap 으로 작동을 할 수 있도록 구현을 해야 합니다. 

  본 기능을 구현하기 위해서는 View객체에 ClickListener를 등록하여 해결 할 수 있습니다. 

voidsetOnClickListener(View.OnClickListener l)
Register a callback to be invoked when this view is clicked.



 화면에 표시되는 모든 정보는 색에 관계없이 인식할 수 있어야 합니다. 이는 색맹 사용자를 위한 접근성 지침인데, 대표적인 예로 적논 색맹의 경우 적색과 녹색을 구분하지 못함으로서 신호등을 구분하지 못하여 일상생활에 많은 불편함을 겪고 있습니다. 이와 마찬가지로, 만약 애플리케이션에서 정보를 색으로만 구분지어 제공한다면 사용자는 어떠한 정보가 해당 정보인지 정확히 받아 들일 수 없게 됩니다. 


그림1. 색에 무관한 인식 준수사례와 미준수 사례 

[출처. 모바일 애플리케이션 접근성 점검 메뉴얼_한국정보화진흥원]


 [그림1]을 보게되면 색상정보와 함께, TEXT정보를 함께 표현하고 있어, 색이 없다고 가정하더라도 누구나가 정확한 대이터를 인지 할 수 있습니다. 하지만 오른쪽의 경우, 색을 없애게 되면 어느 그래프가 미국인지, 일본인지, 독일인지 등등 데이터를 정확히 식별할 수 없습니다. 

 [그림1]과 같이 데이터를 제공할 때는 색에 무관하게 인식 할 수 있도록 제공하여야 합니다. 


6. 명도 대비

 화면에 표시되는 모든 정보는 전경색과 배경색이 구분될 수 있도록 최소 대비(3:1) 이상으로 제공하여야 합니다. 시력이 안좋은 사람들의 경우에는 전경색과 배경색이 구분이 자세히 안될경우 정보를 인지하는데 있어서 어려움을 겪게 됩니다. 특히 전경색과 배경색이 흰색과 회색, 노란색과 오렌지 색 등 유사한 색감으로 디자인 되어 있을 경우 정보를 인지하는데 매우 불편함을 느끼게 됩니다. 따라서 모든 정보는 최소 대비 이상으로 구성하여야 하고, 주요 콘텐츠의 경우에는 4.5:1 또는 7:1 이상의 대비를 확보하는 것이 좋습니다. 


  전경과 배경색의 대비를 확인하는 방법은 아래의 첨부파일을 받아 확인 할 수 있습니다. 해당 화면 또는 버튼의 스크린샷을 확보 한 후 아래의 프로그램을 활용하여 대비를 확인 할 수 있습니다. 


CCA-KO.zip


그림2. 명도 대비 확인 툴(Colour Contrast Analyser)


그 밖에 명도 대비 및 색에 무관한 인식 관련 평가 도구를 알려 드리도록 하겠습니다. 


- Color Doctor

http://www.fujitsu.com/global/accessibility/assistance/cd/download.html


- Visual Impairment Simulator for Microsoft Windows

http://vis.cita.uiuc.edu/index.php


- Colour Contrast Analyser

http://juicystudio.com/article/colour-contrast-analyser-firefox-extension.php


- Colour Checker

http://www.etre.com/tools/colourcheck/


- Color Selector

http://www.fujitsu.com/global/accessibility/assistance/cs/download.html


- aDesigner

http://www.alphaworks.ibm.com/tech/adesigner


7. 자막 수화등의 제공

 마지막 준수사항인 자막 수화등의 제공 입니다. 멀티미디어 콘텐츠를 제공할때에는 동등한 내용의 자막, 원고 또는 수화가 제공되어야 한다는 내용입니다. 청각장애인의 경우에는 동영상이나 음성으로 전달하는 멀티미디어 콘텐츠에 경우는 거의 정보를 전달 받지 못한다고 해도 과언이 아닙니다. 따라서 이들에게도 동일하게 정보를 제공해 줄 수 있도록, 동기화된 자막을 제공하거나 별도의 원고를 제공하여야 합니다. 그래야 그들도 비장애인들처럼 동등하게 정보를 획들 할 수 있기 때문입니다. 

 뿐만아니라 이러한 컨텐츠 제공은 비장애인들에게도 도움을 줄 수 있습니다. 조용한 환경에서 영상을 보거나, 해당 언어를 모국어로 사용하지 않는 비장애인들에게도 도움을 줄 수 있기 때문입니다. 해당언어를 모국어로 사용하지 않는 동영상 컨텐츠의 경우, 비 장애인들도 청각장애인과 다를바 없지 않을까요?....:)




 이상으로 모바일 애플리케이션 접근성 지침에 따른 준수사항 7가지를 알아봤습니다. 여기서 준수사항이란 장애인과 비장애인과 동등하게 모바일 애플리케이션에 접근하여 이용하기 위해서 반드시 준수해야 하는 사항으로써, 모바일의 경우는 아직 법적으로 강제성을 띄지는 않지만, 웹의 과거를 되돌아 보았을경우, 모바일의 경우도 법적으로 머지않아 제제가 되지 않을까 생각합니다. 이렇게 되면 접근성 지침을 알고 있지 않거나, 적용을 할 줄 모르는 사람들의 경우, 애플리케이션을 퍼블링할 수 있는 능력을 잃는 것이나 다름 없습니다. 미리미리 준비하여 누구나가 동등하게 정보를 획들할 수 있도록 저희들이 먼저 앞장 서도록 합시다!.


다음은 모바일 애플리케이션 접근성 지침에 따른 권고사항 8개 중 평가에서 제외되는 평가제외 항목 3가지를 소개해 드리도록 하겠습니다. 긴 글 읽어 주셔서 감사합니다. :)


참고자료 : 

한국정보화진흥원 - 모바일 애플리케이션[안드로이드] 접근성 점검 메뉴얼[v1.0]

모바일 애플리케이션 접근성 지침 - 행정안전부고시 제 2011-38호