ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹 접근성과 웹 표준을 알아보자!
    개발 지식/WEB 2024. 5. 22. 16:55

    웹 접근성 (Web Accessibility)

    웹 접근성은 장애를 가진 사람과 장애를 가지지 않은 사람 모두가 웹사이트를 이용할 수 있게 하는 방식을 가리킨다.
    위키 백과

     

    즉, 모든 사람이 웹 사이트에서 제공하는 정보를 차별 및 제한 없이 동등하게 사용할 수 있도록 보장하는 것을 말합니다.

    이를 만족하기 위해서는 신체적 조건과 환경적 조건을 고려해야 합니다.

     

    신체적으로는 장애인과 고령자를 포함한 모든 사람이 동등하게 이용할 수 있다는 것을 말합니다.

    환경적으로는 다양한 플랫폼 및 디바이스, 웹 브라우저 등 모든 환경에서 이용할 수 있다는 것을 말합니다.

     

    웹 콘텐츠 접근성 가이드라인 (WCAG) 준수

    웹 콘텐츠 접근성 가이드라인은 인터넷의 주요 국제 표준 기구인 W3C에서 만든 가이드라인으로 웹 사이트 / 애플리케이션에서 충족해야 하는 기준을 정의하여 장애가 있는 사용자가 더욱 쉽게 이용할 수 있도록 준수해야 하는 지침입니다.

    웹 콘텐츠 접근성 가이드라인 (WCAG)

     

    WCAG는 각 지침을 4가지 원칙의 범주로 분류하여 제공하고 있습니다.

    • 인식 - 모든 사용자는 서비스 콘텐츠를 인식할 수 있어야 합니다.
    • 운용 - 모든 사용자는 서비스의 기능을 운용할 수 있어야 합니다.
    • 이해 - 모든 사용자가 서비스의 콘텐츠, 기능 사용법 등을 이해하기 쉬워야 합니다.
    • 견고 - 사용자가 이용하는 모든 기기 및 브라우저에서 접근, 사용 가능해야 합니다.

    웹 표준 (Web Standards)

    웹 표준은 월드 와이드 웹의 측면을 서술하고 정의하는 공식 표준이나 다른 기술 규격을 가리키는 일반적인 용어이다.
    위키 백과

     

    다양한 브라우저와 디바이스가 존재하기 때문에 일관된 사용자 경험을 제공하기 위한 표준이 필요합니다.

    W3C에서 제공한 웹 표준은 웹 페이지의 작성과 해석에 관한 규칙과 지침을 제공하여 웹의 모든 요소가 일관되고 호환할 수 있게 작동하도록 보장합니다.

     

    웹 표준의 주요 요소는 아래와 같습니다.

    • HTML - 콘텐츠의 구조를 설계하고 의미를 부여하는 기술
    • CSS - 콘텐츠의 배치 및 스타일을 위한 기술
    • JavaScript - 콘텐츠의 기능을 구현하는 기술
    • WAI-ARIA - 기존 HTML에 역할, 속성, 상태 정보 등을 추가하여 접근성을 향상하는 기술

    웹 표준과 웹 접근성은 사용자에게 일관된 경험을 제공한다는 공통된 목적이 있습니다.

    그렇게 때문에, 이들을 모두 준수하는 것은 웹 개발에서 중요하게 적용된다는 것을 알 수 있습니다.

    웹 접근성 향상

    그렇다면 웹 접근성을 어떻게 향상할 수 있는지 알아보도록 하겠습니다.

    시맨틱 태그 (Semantic Tag) 사용

    시맨틱 태그는 웹 페이지의 구조와 의미를 명확하게 정의하는 데 사용됩니다.

    각 콘텐츠의 의미와 역할을 명확하게 하므로 웹 페이지의 가독성, 접근성, 검색 엔진 최적화(SEO)에 도움이 됩니다.

     

    1. 시맨틱 태그를 사용하지 않을 때

    <body>
        <div id="header">
            <h1>My Website</h1>
        </div>
    
        <div id="main">
            <h2>Welcome to My Website</h2>
            <p>This is the main content area.</p>
        </div>
    
        <div id="footer">
            <p>footer area</p>
        </div>
    </body>

     

    2. 시맨틱 태그를 사용할 때

    <body>
        <header>
            <h1>My Website</h1>
        </header>
    
        <main>
            <h2>Welcome to My Website</h2>
            <p>This is the main content area.</p>
        </main>
    
        <footer>
            <p>footer area</p>
        </footer>
    </body>

     

    스크린 리더를 사용하면 화면의 텍스트를 TTS로 읽어주는데, 모든 태그를 div 등으로 구성하면 의미를 이해하기 어려워 사용자 경험이 저하될 수 있습니다.

    시맨틱 태그를 사용하면 콘텐츠의 구조를 명확하게 정의할 수 있기 때문에 보다 효율적으로 콘텐츠를 해석할 수 있게 됩니다.

    대체 텍스트 사용

    대체 텍스트는 웹 콘텐츠에서 이미지나 그래픽 요소가 불러와 지지 않거나 시각 장애가 있는 사용자가 콘텐츠에 접근할 수 있도록 하는 텍스트 설명입니다.

    시각 장애가 있는 사람이 볼 수 없는 요소를 음성으로 인식할 수 있도록 도와줍니다.

    <img src="company_logo.png" alt="회사 로고">

    단순히 이미지뿐만 아니라, 여러 기능이 있는 아이콘 들에도 대체 텍스트를 추가하여 어떤 역할을 하는지 설명해 주는 것이 중요합니다.

     

    WAI-ARIA 사용

    WAI-ARIA는 웹 콘텐츠 및 웹 애플리케이션의 접근성을 개선하기 위한 기술입니다.

    기존 HTML 요소에 역할, 속성, 상태 정보를 추가하여 접근성을 향상할 수 있습니다.

      <button id="toggleButton" aria-pressed="false" aria-label="메뉴 열기">메뉴</button>
    
      <div id="menu" role="menu" aria-hidden="true">
        <ul>
          <li role="menuitem">항목 1</li>
          <li role="menuitem">항목 2</li>
          <li role="menuitem">항목 3</li>
        </ul>
      </div>

     

    button의 aria-pressed, aria-label 속성을 사용하여 버튼의 눌림 상태와 버튼의 기능을 설명할 수 있습니다.

    마찬가지로 aria-hidden을 이용하여 메뉴가 보이는 상태를 설명할 수 있고, role을 통해서 각 태그의 역할을 알 수 있습니다.

     

    위와 같이 WAI-ARIA를 사용함으로써 웹 애플리케이션의 접근성을 높일 수 있습니다.

    form 요소의 접근성 개선

    form 요소에 명시적인 label을 제공하여 사용자가 어떤 정보를 입력해야 하는지 이해할 수 있도록 할 수 있습니다.

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

    label을 input과 연결하기 위해 for  속성과 input 요소의 id 값을 같게 지정해서 접근성을 높일 수 있습니다.

    또한, 에러 메시지를 적절히 활용하여 위와 같이 required 속성으로 필수로 입력해야 하는 요소에 대해 입력이 없을 때 에러 메시지를 표시하여 접근성을 높일 수 있습니다.

     

    이 외에도 모든 장치에서 접근할 수 있도록 반응형 디자인을 구현하여 웹 접근성을 높일 수 있습니다.

    후기

    웹 접근성에 대해 학습하면서 이전에는 신경 쓰지 못했던 부분에 대해 많이 알게 되었습니다. 

    오늘 학습한 내용을 토대로 이전에는 미처 신경 쓰지 못했던 부분들을 확인하여 접근성이 높은 웹을 개발할 수 있도록 노력하겠습니다.

     

    참고

    https://boostbrothers.github.io/experience/2022/05/31/web-accessibility/

    '개발 지식 > WEB' 카테고리의 다른 글

    기억해줘! 기억할게! (쿠키, 세션, 토큰)  (0) 2023.11.28
Designed by Tistory.