일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Bidirectional Associative Memory
- 가상화
- 패턴인식
- SSM
- 패턴 인식
- Google App Engine
- BAM
- 신경회로망
- 인공지능
- 물걸레자동세척로봇청소기
- 삼성전자 소프트웨어멤버십 SSM
- NarwalFreo
- 삼성
- hopfield network
- 동아리
- Neural Network
- 갤럭시탭S8울트라
- Friendship
- 멤버십
- 삼성소프트웨어멤버십
- 물걸레로봇청소기추천
- Python
- 빅데이터
- 고려대학교
- 나르왈프레오
- 신경망
- 증강현실
- 하이퍼바이저
- 구글 앱 엔진
- 파이썬
- Today
- Total
정보공간_1
[4기 강남 이상훈] Mobile Accessibility[모바일 애플리케이션 접근성 지침]-Part 3 본문
[4기 강남 이상훈] Mobile Accessibility[모바일 애플리케이션 접근성 지침]-Part 3
알 수 없는 사용자 2013. 10. 25. 03:56이전 포스팅에서 행정안전부와 한국정보화진흥원에서 발표한 "모바일 애플리케이션 접근성 지침-행정안전부고시 제2011-38호"와 "모바일 애플리케이션 [안드로이드] 접근성 점검 메뉴얼 [v1.0]" 을 참고하여 모바일 애플리케이션 준수사항 7가지를 소개해 드렸습니다. 이번 포스팅은 모바일 애플리케이션 권고사항 리스트 8가지 중 평가 제외 항목 3가지를 적용 방법과 함께 설명해 드리도록 하겠습니다.
우선 그럼 권고 사항이 무엇인지 간략하게 알아보고 가도록 하겠습니다.
권고 사항이란?
모바일 애플리케이션의 접근성 향상을 위하여 무리한 부담이 되지 않는 한 준수할 것을 권장하는 사항을 말합니다.
그럼 본격적으로 권고사항 리스트 중 평가제외 항복 3가지에 대하여 알아보고 적용 방법을 알려드리도록 하겠습니다. 비록 평가 제외 항목이나, 되도록이면 준수하여 사용해야 하는 사항이니 알아 놓으시면 좋을 것 같습니다.
모바일 애플리케이션 권고사항 평가 제외 항목 3가지
Application은 운영체제 및 플랫폼에서 제공하는 Native UI를 사용하는 것이 가장 바람직 합니다. 그 이유는 개발자가 직적 customizing 한 UI를 사용할 경우, talkback 등 다양한 접근성 기능을 잃을 가능성이 많이 존재하기 때문입니다. 하지만 개발자 및 디자이너, 기획자의 입장에서는 Native UI만을 사용하기에는 한계가 있기 마련입니다. 따라서 최대한 Native UI를 사용하도록 하되, 불가피 할 경우 제가 소개해드릴 아래의 방법으로 접근성을 준수하 실 수 있습니다.
우선 Native UI란 Android에서 제공하는 Button, TextView, EditText , ListView , CheckBox, RadioButton, Gallery, Spinner, AutoCompleteTextView, ImageWsitcher, TextSwitcher 등의 widget을 의미하며, android developer 사이트에서 widget의 종류를 확인 하실 수 있습니다.
* Android UI component : http://developer.android.com/auide/topics/ui/index.html\
그렇다면 본격적으로 직접 customizing한 컴포넌트에 대한 접근성 적용 방법을 알아 보도록 하겠습니다.
접근성 지원을 위한 4대 주요 작업
1) 사용자 선택(클릭 등)에 대한 처리
2) 접근성 API 구현
3) 접근성 이벤트 전달
4) 접근성 이벤트 처리
우선 1)에 해당하는 사용자 선택(클릭)에 대한 처리는 보통 Virtual D-pad에서 선택버튼으로 사용 되는 '중앙(center)'에 대한 입력 처리를 지칭 합니다.
모든 기본 뷰에서는 KEYCODE_DPAD_CENTER 키 이벤트가 적용되고 있으나, 사용자 변형 뷰에서는 KEYCODE_DPAD_CENTER 이벤트에 대한 처리를 해 주셔야 합니다. onKeyUp method를 Override 하여 따로 처리하여 주시면 됩니다. 관련 method는 아래와 같습니다.
Called when a key was released and not handled by any of the views inside of the activity. |
@Override
public boolean onKeyUp (int keyCode , KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT ) {
mCurrentValue--;
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED);
return true;
}
// .. 중략
}
접근성 관련 이벤트들은 사용자 입력에 대한 메세지이고, 이 메세지는 접근성 서비스에 의해 처리 됩니다. 따라서 2)번에 해당하는 메세지를 처리할 API를 적용시켜 주어야 하는데 방법은 아래와 같습니다. (ICS 기준)
View to populate the accessibility event with its text content. |
위의 method를 활용하면 해당 사용자 customizing 인터페이스에 대한 텍스트 설명을 지정 할 수 있습니다.
@Override
public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
super.onPopulateAccessibilityEvent(host, event);
// We call the super implementation to populate its text for the
// event. Then we add our text not present in a super class.
// Very often you only need to add the text for the custom view.
CharSequence text = getText();
if (!TextUtils.isEmpty(text)) {
event.getText().add(text);
}
}
customizing 인터페이스에 대한 이벤트 초기화는
method를 활용하여 할 수 있으며 사용법은 아래와 같습니다.
@Override
public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(host, event);
// We call the super implementation to let super classes
// set appropriate event properties. Then we add the new property
// (checked) which is not supported by a super class.
event.setChecked(isChecked());
}
@Override
public void onInitializeAccessibilityNodeInfo(View host,
AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
// We call the super implementation to let super classes set
// appropriate info properties. Then we add our properties
// (checkable and checked) which are not supported by a super class.
info.setCheckable(true);
info.setChecked(isChecked());
// Quite often you only need to add the text for the custom view.
CharSequence text = getText();
if (!TextUtils.isEmpty(text)) {
info.setText(text);
}
}
child View에 대한 이벤트를 처리할 경우에는 아래의 Method를 활용 하시면 됩니다.
gives an opportunity to its parent to augment the event. |
int | TYPE_VIEW_SCROLLED | Represents the event of scrolling a view. |
int | TYPE_VIEW_HOVER_ENTER | Represents the event of a hover enter over a View . |
int | TYPE_VIEW_HOVER_EXIT | Represents the event of a hover exit over a View . |
마지막으로 커스텀한 위젯에 대한 접근성 지원 방법으로 4)접근성 이벤트 처리만 남았는데요, 이 이벤트가 필요한 이유는 접근성 이벤트가 발생되면 이를 음성으로 출력하기 위한 텍스트 처리가 필요하기 때문입니다. 하지만 위에서 구현한 onPopulateAccessibilityEvent 를 통하여 처리가 됨으로, 이 부분은 앞에서 메세지 처리에 대한 method를 구현해 주셨다면 신경쓰지 않으셔도 될 부분입니다.
2. 범용 폰트 이용
디바이스 | 지원 폰트 |
---|---|
Galaxy_S4 | 기본 서체 , 애플 민트 , 초코 쿠키, Samsung Sans , 팅커벨 |
3. 장애인 등 사용자 평가
오늘까지 해서 모바일 애플리케이션 접근성 지침 중 준수사항 7가지와, 권고사항 3개지를 알아 보았습니다. 다음 포스팅을 마지막으로 모바일 애플리케이션 관련 포스팅을 모두 마치도록 할 예정입니다. 오늘도 긴 글 읽어 주셔서 감사합니다.
참고자료 :
한국정보화진흥원 - 모바일 애플리케이션[안드로이드] 접근성 점검 메뉴얼[v1.0]
모바일 애플리케이션 접근성 지침 - 행정안전부고시 제 2011-38호
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[4기 부산 오세빈] Chrome App을 만들어보자! (0) | 2013.10.26 |
---|---|
[4기 부산 오세빈] 서버 프레임워크 VERT.X 소개와 활용 (0) | 2013.10.26 |
[4기 부산 김한남] Hopfield Network를 이용한 패턴 인식#2 (0) | 2013.10.24 |
[4기 부산 김한남] Hopfield Network를 이용한 패턴 인식#1 (0) | 2013.10.24 |
[4기 강남 김태협] HOG와 SVM 분류기를 활용한 사람검출 방법2 (0) | 2013.10.23 |