본문 바로가기
Study/HTML

HTML 기초 강의 11편: 웹 접근성(Accessibility) 기초와 ARIA 태그

by wawManager 2024. 11. 11.
728x90

1. 웹 접근성이란?

웹 접근성(Accessibility)은 모든 사용자, 특히 장애가 있는 사용자들이 웹 콘텐츠를 쉽게 이용할 수 있도록 웹 페이지를 설계하는 것을 의미합니다. 접근성 좋은 웹 사이트는 시각, 청각, 운동 능력이 제한된 사용자들도 쉽게 사용할 수 있습니다. 접근성을 높이면 더 많은 사람들이 웹 사이트를 이용할 수 있으며, SEO에도 긍정적인 영향을 줍니다.

 

2. 접근성 향상을 위한 HTML 태그와 속성

1) alt 속성

이미지 태그의 alt 속성은 이미지가 표시되지 않을 때 대체 텍스트를 제공합니다. 화면 읽기 장치는 alt 속성을 읽어 이미지의 내용을 전달하므로 시각 장애인을 위해 꼭 추가하는 것이 좋습니다.

<img src="image.jpg" alt="자연 풍경 이미지">

2) label 태그

label 태그는 입력 필드에 레이블을 제공하며, 화면 읽기 장치가 해당 필드의 목적을 전달할 수 있도록 돕습니다. for 속성을 사용하여 특정 입력 필드와 연결합니다.

<label for="username">사용자 이름:</label>
<input type="text" id="username" name="username">

3) aria-label 속성

aria-label 속성은 특정 요소에 대해 화면 읽기 장치가 읽을 수 있는 설명을 제공합니다. aria-label 속성은 시각적 레이블이 없는 버튼이나 아이콘에 적합합니다.

<button aria-label="검색">🔍</button>

4) role 속성

HTML5에 기본 제공되는 시맨틱 태그 외에도 role 속성을 사용해 요소의 역할을 명시할 수 있습니다. 예를 들어 navigation, main, button 같은 역할을 정의할 수 있습니다.

<div role="navigation">내비게이션 메뉴</div>

3. ARIA(Accessible Rich Internet Applications) 속성

ARIA는 웹 접근성을 높이기 위해 추가된 HTML 속성입니다. ARIA는 스크린 리더 같은 보조 기술이 콘텐츠와 상호작용할 수 있도록 정보를 제공합니다. 주요 ARIA 속성은 다음과 같습니다.

1) aria-hidden

이 속성이 true로 설정된 요소는 화면 읽기 장치에서 무시됩니다. 예를 들어, 장식용 이미지나 화면 읽기 장치가 필요 없는 요소에 설정할 수 있습니다.

<img src="decoration.jpg" alt="" aria-hidden="true">

2) aria-live

aria-live 속성은 동적 콘텐츠가 업데이트될 때 화면 읽기 장치가 이를 알리도록 합니다. 주로 실시간 업데이트가 필요한 영역에 사용됩니다.

  • polite: 다른 콘텐츠 읽기가 끝난 후 업데이트된 내용을 읽음
  • assertive: 즉시 업데이트된 내용을 읽음
<div aria-live="polite">실시간으로 업데이트되는 메시지</div>

3) aria-expanded

메뉴나 아코디언처럼 열리고 닫히는 요소의 상태를 알릴 때 사용합니다.

<button aria-expanded="false" aria-controls="menu">메뉴 열기</button>
<div id="menu" hidden>메뉴 내용</div>

4) aria-describedby

aria-describedby 속성은 다른 요소의 ID를 참조하여 설명을 제공할 때 사용합니다.

<input type="text" id="username" aria-describedby="usernameDesc">
<small id="usernameDesc">사용자 이름을 입력하세요.</small>

4. 웹 접근성 향상 예제

다양한 ARIA 속성을 활용해 접근성 높은 폼을 만들어보겠습니다.

<!DOCTYPE html>
<html>
<head>
    <title>웹 접근성 폼 예제</title>
</head>
<body>
    <h2>회원 가입</h2>
    <form>
        <!-- 사용자 이름 입력 -->
        <label for="username">사용자 이름:</label>
        <input type="text" id="username" name="username" aria-required="true" aria-describedby="usernameDesc">
        <small id="usernameDesc">사용자 이름을 4~12자로 입력하세요.</small><br><br>

        <!-- 비밀번호 입력 -->
        <label for="password">비밀번호:</label>
        <input type="password" id="password" name="password" aria-required="true" aria-describedby="passwordDesc">
        <small id="passwordDesc">비밀번호는 8자 이상이어야 합니다.</small><br><br>

        <!-- 이메일 입력 -->
        <label for="email">이메일:</label>
        <input type="email" id="email" name="email" aria-required="true"><br><br>

        <!-- 동의 체크박스 -->
        <label>
            <input type="checkbox" name="agree" aria-checked="false">
            이용 약관에 동의합니다.
        </label><br><br>

        <!-- 제출 버튼 -->
        <button type="submit" aria-label="회원 가입 완료">가입하기</button>
    </form>
</body>
</html>

코드 설명

  • aria-required: 필수 입력 필드를 지정하여 화면 읽기 장치가 안내하도록 합니다.
  • aria-describedby: 각 입력 필드에 설명을 추가하여 사용자가 입력할 내용을 명확히 전달합니다.
  • aria-checked: 체크박스의 상태를 명시해 화면 읽기 장치가 상태를 설명하도록 합니다.

5. 웹 접근성 고려사항

1) 시맨틱 태그 사용

HTML5 시맨틱 태그(<header>, <main>, <footer>)를 사용하여 페이지 구조를 명확히 하면, 화면 읽기 장치가 페이지를 더 잘 이해할 수 있습니다.

2) 키보드 내비게이션 지원

모든 사용자가 키보드만으로 페이지를 탐색할 수 있도록 해야 합니다. 특히, tabindex 속성으로 초점이 이동하는 순서를 설정하면 키보드 내비게이션이 쉬워집니다.

3) 색 대비 고려

텍스트와 배경색의 대비를 충분히 주어 시각적으로 구분하기 쉽게 디자인하는 것도 중요합니다.

 

요약

이번 강의에서는 **웹 접근성(Accessibility)**의 중요성과 ARIA 속성을 사용하여 웹 페이지의 접근성을 개선하는 방법을 배웠습니다. 접근성을 고려하여 웹 페이지를 설계하면 더 많은 사용자들이 편리하게 웹 사이트를 이용할 수 있습니다.

 

728x90