티스토리 뷰

웹 접근성

08. 이해의 용이성 (2) | sohinggu๑°⌓°๑

댕발자 (●'-'●) 2019. 6. 24. 04:20

이해의 용이성 (2)

학습목표
1. 콘텐츠 선형화를 이해하고 콘텐츠를 제공할 수 있습니다.
2. 표의 구성 항목을 이해하고 콘텐츠를 제공할 수 있습니다.
3. 레이블 제공 항목을 이해하고 콘텐츠를 제공할 수 있습니다.
4. 오류 정정 항목을 이해하고 콘텐츠를 제공할 수 있습니다.

웹 접근성 검사항목 - 이해의 용이성

 

<항목19> 콘텐츠의 선형 구조: 콘텐츠는 논리적인 순서로 제공해야 한다.

<항목20> 표의 구성: 표는 이해하기 쉽게 구성해야 한다.

<항목21> 레이블 제공: 입력 서식에 대응하는 레이블을 제공해야 한다.

<항목22> 오류 정정: 입력 오류를 정정할 수 있는 방법을 제공해야 한다.

콘텐츠 선형 구조

1. 콘텐츠 선형 구조의 개념

웹 문서를 제작할 때 뼈대가 되는 HTML 마크업 언어로 먼저 논리적인 순서에 맞게 개발하고 이에 CSS를 적용하는데 CSS를 통해 꾸며진 상태의 순서가 아닌 CSS가 제거된 상태에서의 콘텐츠 순서가 우리가 콘텐츠를 읽어나갈 때 이해가 될 수 있는 상식적인 순서로 제공되고 있는지에 대한 개념이다.

 

2. 콘텐츠 선형 구조의 필요성/목적

화면 낭독 프로그램과 같은 보조 기기는 전체 콘텐츠를 보통 소스 코드 순서대로 풀어서 접근하므로 콘텐츠는 논리적인 순서로 제공해야한다. 복잡한 데이터를 표로 제공할 경우, 시각장애인 등도 이해할 수 있도록 표의 이해를 돕기 위한 내용 및 구조에 대한 정보를 제공해야 한다.

콘텐츠 선형 구조는 화면 낭독기에 가상 커서 방식으로 컨텐츠를 읽는 순서를 결정한다. 웹 페이지에 제공하는 콘텐츠의 시각적인 순서와 키보드 초점의 이동순서는 '좌 → 우', '위 → 아래'로 논리적인 순서로 제공하는 것이 좋다. 사용자의 차별을 없애기 위해 논리적인 순서로 CSS를 제거해야 하며, CSS를 제거하기 전의 초점 이동과 논리적 순서를 일치시켜야 한다.

 

3. 콘텐츠 선형 구조의 검사항목 해설

  • <항목19>초점이동과 연관 있음
  • 초정 이동은 논리적인 순서로 이동해야하는데 CSS를 제거한 콘텐츠의 순서도 동일한 순서로 초점 이동이 되어야 한다. → 일반 윈도우 커서와 가상 커서의 순서를 맞추어 주어야 한다.
  • 가장 먼저 문서의 구조와 표현을 분리하는 작업이 우선시되는 지표이다.

 

4. 콘텐츠 선형 구조 제공 방법

(1) 제공 방법

기준: 콘텐츠의 순서가 논리적으로 선형화되어 제공된 경우 기준을 준수한 것으로 인정한다.

(2) 오류 유형

a. 계층 구조가 명백하게 필요한 콘텐츠를 중첩 마크업을 이용하여 표현하지 않은 경우 → <ul>과 <ul>를 활용하여 계층 구조를 명확하게 구분해준다. (콘텐츠를 마크업하여 제공)

콘텐츠 선형 구조 오류 유형1 (출처: 배움나라)

b. '제목-내용'으로 구성된 콘텐츠 목록의 배치가 분리되어 내용을 직관적으로 이해할 수 없는 경우 → 소스코드의 순서를 제목에서 내용으로 이동시켜 직관적으로 이해하기 쉬운 바람직한 계층구조로 개선

콘텐츠 선형 구조 오류 유형2 (출처: 배움나라)

(3) 주의사항

a. 탭 메뉴에서 탭1 → 탭2 → 탭3으로 이동하여 모든 탭 내용을 확인할 수 있는 경우 보다 논리적으로 구성해야 한다.

- 탭1 → 탭2 → 탭3으로 이동하며 모든 탭을 확인하는 방법

  • 키보드로 접근할 때
  • 마우스를 탭 메뉴에 올렸을 때

콘텐츠 선형 구조 주의사항1 (출처: 배움나라)

b. 2단계의 깊이를 가진 메뉴에서 1차 메뉴와 2차 메뉴, 탭 메뉴와 탭 콘텐츠는 서로 다른 계층으로 표현되어야 한다.

예를 들어, 'ul > li > ul > li', 'ol > li > ol > li' 구조는 계층 구조로 인정한다.

콘텐츠 선형 구조 주의사항2 (출처: 배움나라)

c. 탭 메뉴와 탭 콘텐츠의 계층 구조는 경우에 따라 마크업 중첩이 아닌 '제목-내용'으로 표현이 가능하다.

  • hx-ul, hx-div, hx-p, dt-dd 형식으로 마크업 했다면 계층 구조로 인정
  • 제목 영역에 <h1~6>, 정의형 목록의 <dt>를 제목 용도로 사용하고,
    내용 영역에 <ul>, <div>, <p>와 정의형 목록에서의 <dd>로 구성한 경우 계층 구조로 인정

 

[Tip] <h1~6>와 <dt>의 차이

- <h1~6>: 콘텐츠 구분을 위한 제목으로 활용

- <dt>:정의형 목록에서의 제목으로 활용

→ <h1~6>요소를 이용하여 제목을 제공하는 것이 제목과 내용을 구분하는데 있어 가장 명확하다.

 

d. 로그인, 회원가입 등의 방법 안내는 로그인, 회원가입 이전에 정보를 제공해야 한다.

  • 메세지를 먼저 읽게 하기 위해 마크업 순서 상 로그인 폼 보다 먼저 제공하더라도 웹 화면에서는 CSS를 활용하여 로그인 폼 아래 위치시켜야 한다.

콘텐츠 선형 구조 주의사항4 (출처: 배움나라)

e. 내용 순으로 선형화 된 페이지에서 서브메뉴가 우측에 위치하는 경우 등 혼란이 없는 경우는 인정한다.

  • 원칙은 '좌' → '우'로 이동
  • 크게 혼란이 없는 수준에서 CSS를 활용하여 서브메뉴와 같은 위치를 변경할 수 있도록 인정한다.

콘텐츠 선형 구조 주의사항5 (출처: 배움나라)

표의 구성

1. 표의 구성의 개념

표에 담긴 정보를 음성으로 듣고 이해할 수 있도록 제목셀과 내용셀로 구분하여 서로 짝지어 읽을 수 있도록 한다. 또한 제목과 요약을 제공하여 표의 내용을 쉽게 이해할 수 있도록 한다.
표: 데이터 간의 상관관계를 요약하여 제공하는 정보.

 

2. 표의 구성의 필요성/목적

복잡한 표를 풀어서 읽을 수 있도록 구현함으로써 화면낭독기에서 이용할 수 있는 제목셀과 내용셀을 짝지어 읽게 하고 표에 대한 설명 정보를 미리 확인할 수 있도록 하여 표에 대한 이해를 쉽게 만든다.

 

3. 표의 구성의 검사항목 해설

데이터 테이블

  • 본래 데이터의 상관관계
  • 표의 형식을 제거하고 남아있는 데이터를 나열했을 때 이해를 할 수 없다.
  • 제목셀과 내용셀로 구분하며, 표의 제목과 요약을 제공하여 표를 이해하기 쉽게 한다.

레이아웃용 테이블

  • 다자인적인 배치를 위해 사용
  • 표의 형식을 제가하고 남아있는 데이터를 나열했을 때 이해할 수 있다.
  • 제목셀, 제목, 요약 등을 제공하지 않는다.

 

4. 표의 구성 제공 방법

(1) 제공 방법

기준: 표를 이해할 수 있도록 정보를 제공한 경우 기준을 준수한 것으로 인정한다.

(2) 오류 유형

a. <caption>요소, summary 속성을 제공하지 않거나 용도 또는 설명이 부적절한 경우

a-1. 제목과 요약을 제공하지 않은 표

표의 구성 오류 유형1-1 (출처: 배움나라)

a-2. 제목과 요약글의 용도가 부적절한 표

표의 구성 오류 유형1-2 (출처: 배움나라)

a-3. 제목과 요약글의 설명이 부적절한 표

표의 구성 오류 유형1-3 (출처: 배움나라)

b. 데이터 테이블에 제목 셀과 내용 셀을 <th>와 <td>요소로 구분하지 않은 경우

표의 구성 오류 유형2 (출처: 배움나라)

c. 복잡한 표를 제공시 id, headers 또는 scope로 제공하지 않은 경우 → 복잡한 표에 직접적으로 제목셀의 범위를 지정해주는 scope와 제목셀과 내용셀을 연결해주는 id, header를 사용하여 짝지어 읽는 수준을 높인다.

 

표의 구성 오류 유형3 (출처: 배움나라)

(3) 주의사항

a. 원칙적으로 <caption>요소와 summary 속성을 모두 사용해야 하며, 이 중 하나 이상 적절히 제공한 경우 준수한 것으로 인정한다. (하지만 둘 다 사용하는 것이 바람직)

b. <caption>요소는 표의 제목을, summary 속성에는 표의 요약, 구조나 탐색 방법을 기술해 주어야 한다.

  • summary와 caption을 같은 용도로 사용하지 않아야 한다.
  • 복잡한 표일 경우, 해당 표를 어떻게 탐색하면 편리한지 등을 담아야 한다.
  • 행, 열 드으이 정보는 오히려 중복된 정보를 제공하게 되니 주의해야 한다.

c. 데이터 테이블은 자료들 간의 논리적인 관계를 나타내기 위한 경우로, 표의 형식을 제거하고 선형화 했을 때 이해할 수 없다.

d. 레이아웃용 테이블은 화면 배치를 위해 작성된 경우로, 표의 형식을 제거하고 선형화했을 때 이해가 가능하다.

e. 레이아웃용 테이블은 <th>, <caption>요소, summary 속성을 사용하지 않아야 한다.

- 화면낭독기는 <th>, <caption>요소, summary 속성을 데이터 테이블로 인식하고 짝지어 읽기를 시도하지만 레이아웃용테이블은 제목셀과 내용셀의 관계가 없기 때문에 오히려 표를 이해하는데 방해가 된다.

레이블 제공

1. 레이블 제공의 개념

레이블: 입력서식이나 편집창과 같은 폼의 요소에 대한 목적이나 용도(=꼬리표, 라벨)

 

2. 레이블 제공의 필요성/목적

운동장애가 있는 이용자가 입력 폼으로 진입할 수 있도록 지원해주고, 화면낭독기 사용자에게는 입력창에 접근하는 순간 어떤 용도의 입력창인지를 알 수 있도록 하여 입력서식의 이해를 용이하게 한다.

 

3. 레이블 제공의 검사항목 해설

가장 좋은 레이블: <label>의 for와 폼 요소의 id를 연결하는 방법.
하지만 모든 콘텐츠가 id와 for만으로 연결할 수 없는 경우도 있다. ex) 전화번호 입력서식
따라서 이 경우에는 요소의 설명을 의미하는 title속성을 활용하여 사용해야 한다.

 

4. 레이블 제공 방법

(1) 제공 방법

기준: 입력 서식에 대응하는 레이블을 제공한 경우 기준을 준수한 것으로 인정한다.

(2) 오류 유형

a. <input>,<textarea>,<select>요소에 1:1 대응하는 <label>요소 또는 title속성을 제공하지 않은 경우 시각장애인이 입력하고자 하는 폼 요소에 대한 목적을 파악할 수 없어 서식입력에 문제가 생김→ <label>의 for와 <input>의 id를 동일하게 매칭하여 제공

레이블 제공 오류 유형1 (출처: 배움나라)

b. <input>의 id와 <label>의 for가 다르거나, 페이지 안에 같은 id가 있는 경우

b-1. 페이지 안에 <input>의 id와 같은 id가 있는 경우

레이블 제공 오류 유형2-1 (출처: 배움나라)

b-2. <input>의 id와 <label>의 for가 다른 경우

레이블 제공 오류 유형2-2 (출처: 배움나라)

c. <select>요소의 첫번째 <option>이 레이블 역할을 대신하는 경우 <option>요소는 선택하고자 하는 데이터를 나열하는 의미로 사용하는 것일 뿐 폼 요소에 대한 설명을 대신할 수는 없어서 화면낭독기 이용자에게는 해당 옵션에 대한 내용이 선택하는 것으로 오해할 소지가 있다. → 따라서 <select>요소에 title를 제공함으로써 해당 요소에 대한 목적을 파악 가능

레이블 제공 오류 유형3 (출처: 배움나라)

(3) 주의사항

a. 레이블로 연걸할 텍스트가 있는 경우 title속성보다 <label>요소를 제공하는 것을 권장한다.

  • 운동장애가 있는 사용자에게 선택할 수 있는 범위를 넓혀줌으로 사용성을 높인다.
  • title을 제공하게 되면 폼 요소의 선택범위가 제한적이므로 접근성이 떨어진다.

b. id, for 속성을 사용하지 않고 <label>요소로 레이블 텍스트와 서식 컨트롤을 한번에 묶는 암묵적인 방법을 사용한 경우 인정하지만 권장하지 않는다.

  • 암묵적 방법: <label><input type="checkbox">암묵적</label>
  • 명시적 방법: <label for="see">명시적</label><input type="checkbox" id="see">

오류 정정

1. 오류 정정의 개념

사용자가 오류들에 대하여 정정할 수 있도록 오류의 내용을 알려주고, 오류의 위치를 수정할 수 있도록 하는 것

 

2. 오류 정정의 필요성/목적

오류 정정은 시스템의 문제를 파악하여 문제 발생을 줄이기 위해 사용한다.

 

3. 오류 정정의 검사항목 해설

오류입력 항목에 정정할 수 있는 방법을 제공해야 하며, 오류메세지를 알리고 오류항목의 초점이 자동으로 이동하는 것이 좋다.

 

4. 오류 정정 제공 방법

(1) 제공 방법

기준: 입력 오류를 정정할 수 있는 방법을 제공한 경우 기준을 준수한 것으로 인정한다.

(2) 오류 유형

a. 입력 서식을 잘못 작성한 경우 해당 서식 필드로 초점을 이동할 수 이쓴 수단을 제공하지 않거나 해당 서식의 전송버튼을 눌렀을 때, 입력 내용이 모두 사라지는 경우

a-1. 오류를 정정할 수 있는 방법을 제공하지 않은 경우

오류 정정 오류 유형1-1 (출처: 배움나라)

a-2. 서식의 전송버튼을 눌렀을 때, 입력 내용이 모두 사라지는 경우

오류 정정 오류 유형1-2 (출처: 배움나라)

b. 오류 발생 시, 정정할 수 있는 수단을 제공하지 않는 경우 → 오류 메세지를 제공하여 사용자가 잘못 입력한 정보에 대해 알려줌

오류 정정 오류 유형2 (출처: 배움나라)

c. 입력 정정방식 또는 내용을 잘못 제공한 경우

c-1. 입력 정정방식을 잘못 제공한 경우

오류 정정 오류 유형3-1 (출처: 배움나라)

c-2. 정정방식의 내용을 잘못 제공한 경우

오류 정정 오류 유형3-2 (출처: 배움나라)

(3) 주의사항

a. 오류가 있는 곳에만 오류 표시를 하면 전맹이나 저시력자는 오류가 난 곳에 도달하지 전까지 어디에 오류가 있는지 알기 어렵기때문에 오류의 내용을 먼저 텍스트로 설명해주거나 프로그램을 통해 요류가 난 위치에 도달하도록 오류의 내용을 설명해 주어야 한다. 즉, 오류 부분을 경고창으로 동일하게 알려 사용자에게 인지시켜 주어야 한다.

내용 정리

1. 콘텐츠 선형 구조

  • 제목과 내용이 연속되어 있는 구조인 경우, 제목에 해당하는 내용임을 인식할 수 있도록 순서대로 구성 (구조: 제목+내용)
  • 반드시 제목과 내용 순이 아니라, 직관적으로 내용을 이해할 수 있는 형태로 구성되어 콘텐츠를 선형화하였을 때 이해가 용이하록 제공

2. 표의 구성

  • 데이터 레이블: 제목, 요약과 함께 제목 셀, 내용 셀을 구분
  • 레이아웃용 테이블: 표의 제목, 요약 및 제목 셀과 내용 셀을 구분하지 않아 데이터가 들어있는 표가 아님을 알 수 있도록 제공
  • 표의 형식을 제거하고 내용을 선형화 시켜 내용을 이해하는데 문제가 있으면 데이터 테이블, 없으면 레이아웃용 테이블

3. 레이블 제공

  • 입력서식에는 반드시 레이블을 제공하여 입력 창에 대한 설명을 제공
  • 레이블과 입력서식이 1:1로 대응하는 경우: label의 for값과 inpu의 id값을 연결
  • 레이블로 연결할 입력서식이 여러 개인 경우: title속성 값으로 입력서식 요소에 대한 용도나 목적을 제공

4. 오류 정정

  • 입력서식에는 반드시 레이블을 제공하여 입력 창에 대한 설명을 제공
  • 오류를 정정할 수 있도록 오류 내용을 알려주고, 이를 정정할 수 있도록 오류 위치로 이동
댓글
© 2018 webstoryboy