Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코루틴
- Rxjava
- Python
- activity
- Coroutines
- 쿠링
- Codeforces
- 백준
- MiTweet
- textfield
- Hilt
- Compose
- 프로그래머스
- androidStudio
- Coroutine
- pandas
- TEST
- ProGuard
- livedata
- AWS
- relay
- GitHub
- 암호학
- android
- MyVoca
- Kotlin
- boj
- Gradle
- 코드포스
- architecture
Archives
- Today
- Total
이동식 저장소
한국형 웹 접근성 지침 본문
인식의 용이성
- 적절한 대체 텍스트 제공
- 텍스트로 표현할 수 없는 콘텐츠(이미지 등)에는 스크린 리더가 읽을 수 있도록 대체 텍스트를 제공해야 한다.
- 멀티미디어 대체 수단
- 동영상의 음성을 대체할 수 있는 수단(자막, 스크립트, 원고 등)을 제공해야 한다.
- 음성이 없는 동영상의 경우 스크린 리더가 읽을 수 있는 자막이나 원고를 제공해야 한다.
- 콘텐츠의 명료성
- 콘텐츠는 색에 무관하게 구분되어야 한다. 굵기, 모양, 테두리 등을 이용하여 콘텐츠를 구별할 수 있다.
운용의 용이성
- 명확한 지시사항 제공
- 지시사항을 단일 감각으로만 제공해서는 안 된다. 모양, 굵기, 소리 등을 이용하여 지시사항을 명확히 표현해야 한다.
- 텍스트의 명도 대비
- 텍스트와 배경색 간의 명도는 4.5:1 이상으로 구현해야 한다. 페이지를 확대 가능한 경우 3:1 이상으로 구현해야 한다.
- 자동 재생 금지
- 페이지에 접속했을 때 자동으로 음악 등이 재생되는 경우, 스크린 리더의 음성을 방해할 수 있다.
- 콘텐츠 간의 구분
- 이웃한 콘텐츠(버튼 등)는 시각적으로 충분히 구분되어야 한다. 테두리, 구분선 등을 이용하여 콘텐츠의 경계를 구분할 수 있어야 한다.
- 키보드 사용성 보장
- 키보드만을 사용하여 페이지를 탐색하는 경우에도 페이지 이용에 문제가 없어야 한다. 즉 마우스와 키보드 간의 사용성이 동일해야 한다.
- 예를 들어 마우스를 올려놓을 때 특정 메뉴가 보이는 버튼이 있다면, 키보드로 버튼에 접근했을 때에도 메뉴가 보여야 한다.
- 포커스 이동
- 포커스란 특정 객체가 선택된 상황을 말한다. 키보드로 포커스를 이동할 때 논리적인 순서로 이동하도록 페이지를 구현해야 한다. (HTML로)
- 조작 가능성
- 화살표 등의 컨트롤은 너무 작아서는 안 되며, 대각선 길이가 6mm 이상이어야 한다.
- 컨트롤 테두리 안쪽으로 1픽셀 이상의 여백을 두어야 한다. 여러 컨트롤이 너무 가까이 붙으면 조작하기 어렵기 때문이다.
- 응답 시간 조절
- 은행 등의 사이트에서 접속 시간을 제한하는 경우가 있다. 이때 접속시간을 충분히 제공해야 하며, 시간이 얼마 남지 않았음을 안내하고 원하는 경우 시간을 연장할 수 있어야 한다.
- 일정 시간이 지난 후 페이지를 자동으로 전환할 때에는 스크린 리더 사용자가 인지할 수 있도록 충분한 시간을 제공해야 하며, 사용자가 원하지 않는 경우 페이지를 전환하지 않아야 한다.
- 정지 기능 제공
- 자동 슬라이드 등 자동으로 변하는 컨텐츠는 이전, 다음, 정지 기능을 제공해야 하며, 포커스를 얻었을 때 정지하도록 구현해야 한다.
- 깜빡임과 번쩍임 사용 제한
- 지나치게 깜빡이거나 번쩍이는 화면을 볼 경우 광과민성 발작이 일어날 수도 있다. 따라서 깜빡이는 컨텐츠를 사용할 때는 컨텐츠의 면적을 최소화하고, 깜빡이는 빈도를 낮추고, 깜빡임을 멈출 수 있는 수단을 제공해야 한다.
- 대표적인 사례가 포켓몬 쇼크이다.
- 반복 영역 건너뛰기
- 여러 페이지에 공통된 요소(헤더 등)가 있는 경우, 스크린 리더 사용자가 이를 건너뛸 수 있는 기능을 제공해야 한다.
- 주로 페이지 맨 처음에 '건너뛰기' 버튼을 제공하는 방식으로 구현된다.
이해의 용이성
- 제목 제공
- 페이지마다 서로 다른 제목을 제공해야 한다. 페이지 내용을 쉽게 인식하기 어렵기 때문이다.
- 페이지를 구분할 수 있는 가장 구체적인 제목을 작성하자.
- 적절한 링크 텍스트
- 링크는 주변의 맥락으로부터 그 의미를 충분히 파악할 수 있도록 작성해야 한다. 예를 들어 더 보기보다 공지사항 더 보기가 더 좋은 텍스트이다.
- 페이지의 기본 언어 표시
- 페이지에서 주로 사용하는 언어를 제공하면 스크린 리더가 화면을 더 잘 읽어줄 수 있다.
-
<html lang='ko'>
- 사용자 요구에 따른 실행
- 사용자가 의도하지 않은 기능을 실행하지 않아야 한다.
- 예를 들어 링크를 클릭했을 때 새 창이 뜨는 경우, 스크린 리더 사용자는 새 창이 뜬 상황을 인식하기 어렵다. 이전 페이지를 탭으로 탐색할 수 있는지, 아니면 완전히 다른 창을 탐색해야 하는지 알 수 없다.
- 선형(linear) 콘텐츠 구성
- 여러 탭과 컨텐츠가 제공되는 경우, 탭 1 → 콘텐츠 1 → 탭 2 → 콘텐츠 2 → ...의 순서로 마크업을 구성해야 한다.
- 제목, 내용, 더 보기는 이 순서대로 마크업을 구성해야 한다. 제목, 더 보기, 내용 순서는 논리적으로 부자연스럽다.
- 표의 구성
- 표를 너무 복잡하게 작성하면 스크린 리더로 이해하기 힘들다. 복잡한 표를 간단하게 분할하거나, ``td`` 태그의 ``headers`` 속성을 이용하자.
- 레이블 제공
- 텍스트 입력창에 레이블을 제공하여 입력하는 내용을 설명해야 한다. ``input`` 태그를 공부하다 보면 알게 될 것이다.
- 입력 내용을 정정할 때
- 사용자의 입력에 오류가 있는 경우 이를 정정할 수 있어야 한다.
- 이때 입력한 내용이 모두 사라져서는 안 되며(아직도 이런 페이지가 많다), 오류의 원인을 제공하고 오류가 발생한 위치로 포커스를 이동해야 한다.
견고성
- 마크업 문법 준수
- 태그를 안 닫는다던가,
- id를 중복 사용한다던가.
- 간단하다. 문법을 지키자.
- 웹 애플리케이션 접근성
- 웹 애플리케이션은 페이지에 포함되어 특정 기능을 수행하는 소프트웨어로, 플래시가 대표적인 예이다. 페이지에 포함된 웹 애플리케이션 역시 접근성을 고려하여 구현되어야 한다.
'Tertiary > Frontend' 카테고리의 다른 글
[CSS] 화면에서 대체 텍스트를 숨기는 방법 (0) | 2022.01.19 |
---|---|
[CSS] IR 기법 (0) | 2022.01.19 |
[CSS] 길이의 단위 (0) | 2022.01.02 |
Jetbrains Academy - Frontend Track 완료 (0) | 2021.12.09 |
Comments