천상나타의 일상다반사

닫기 검색결과 전체 보기

    aria-label과 role 속성 - 웹 접근성을 위한 필수 개념

    IT/javaScript 2025. 4. 5. 08:08

    웹 접근성(Web Accessibility)은 모든 사용자가 웹 콘텐츠에 접근할 수 있도록 만드는 중요한 요소입니다.

    특히 시각장애인 등 보조기술을 사용하는 사용자에게는 **스크린 리더(Screen Reader)**의 도움으로 콘텐츠를 이해하게 되는데, 이때 꼭 필요한 속성이 바로 aria-label과 role입니다.

    스크린 리더는 시각장애인 등 화면을 보기 어려운 사용자가 웹 콘텐츠를 소리로 듣거나 점자로 읽을 수 있도록 도와주는 보조 기술


    aria-label이란?

    aria-label은 요소에 **스크린 리더용 이름(label)**을 부여하는 속성입니다. 사용자가 콘텐츠를 직접 볼 수 없더라도, 스크린 리더는 이 텍스트를 읽어줍니다.

    사용 예시

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

    설명: 버튼 안에 아이콘만 있는 경우, aria-label을 사용해서 의미를 전달할 수 있어요. 이 버튼은 스크린 리더에게 "검색 열기"라고 읽히게 됩니다.


    role이란?

    role 속성은 요소의 **역할(role)**을 명시적으로 지정해주는 속성입니다. 예를 들어, 어떤 <div>가 실제로는 버튼 역할을 한다면 role="button"을 지정해줘야 스크린 리더가 올바르게 인식합니다.

    사용 예시

    <div role="button" tabindex="0" onclick="doSomething()">
      더 보기
    </div>

    설명: 시맨틱 태그가 아닌 일반 요소를 쓸 경우, role을 통해 사용자에게 정확한 의미를 전달할 수 있습니다.

    시맨틱 태그는 HTML에서 의미를 가지는 태그 단순히 모양이 아니라, 어떤 역할을 하는지를 명확하게 알려주는 태그\
    ex : header, footer, nav, button

    잘못된 사용 예시

    <a href="/home" role="listitem">홈</a> <!-- ❌ 부적절한 role -->

    <a> 태그는 기본적으로 링크 역할이 있기 때문에 role="listitem"을 부여하면 호환되지 않는 ARIA 역할 경고가 발생할 수 있습니다.
    listitem은 <li> 요소에 자연스럽게 부여되는 역할이므로, 아래처럼 작성하는 것이 올바릅니다:

    <ul>
      <li>
        <a href="/home">홈</a>
      </li>
    </ul>

     

    'IT > javaScript' 카테고리의 다른 글

    JavaScript Async Await Promise 사용법의 이해  (0) 2023.01.24
    JavaScript 비동기 Promise에 대한 설명  (0) 2023.01.24
    클로저 자바스크립트(Closure javascript) 그리고 캡슐화 - 내부함수와 외부함수 이해  (0) 2019.05.11
    자바스크립트 window 객체의 속성을 알아보자(자신의 브라우저에 따라 다름)  (0) 2018.06.12
    자바스크립트 JSON 객체의 parse 및 stringify 정리.  (0) 2018.06.12

    'IT/javaScript' 관련 글 more
    • thumbnail
      JavaScript Async Await Promise 사용법의 이해 2023.01.24
    • thumbnail
      JavaScript 비동기 Promise에 대한 설명 2023.01.24
    • thumbnail
      클로저 자바스크립트(Closure javascript) 그리고 캡슐화 - 내부함수와 외부함수 이해 2019.05.11
    • thumbnail
      자바스크립트 window 객체의 속성을 알아보자(자신의 브라우저에 따라 다름) 2018.06.12
    Posted by 천상나타

Google Translate

Naver Neighborhood

    최근...

  • 포스트
  • 댓글
  • 더 보기

글 보관함

«   2025/05   »
일 월 화 수 목 금 토
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

카테고리

분류 전체보기 (393)
IT (130)
JAVA (19)
JSP (5)
NoSql (8)
Linux (5)
javaScript (13)
Oracle (7)
MySql (2)
Android (1)
Spring (8)
Server (19)
System (13)
Tool (30)
공부자료(비공개) (0)
일상 (258)
맛집 (69)
해외여행 (31)
국내여행 (21)
우리집 고양이 쪼꼬 (4)
디저트&야식 (49)
영화 후기 (2)
제품리뷰 (5)
추천노래 (3)
취미 (74)
다이어트 (0)
유용한정보 (5)
블로그팁 (4)
지역정보 (1)

카운터

Total
Today
Yesterday
  • 네이버 이웃추가
  • 방명록
천상나타's Blog is powered by daumkakao
Skin info material T Mark 5+ by 뭐하라
favicon

천상나타의 일상다반사

IT정보공유 및 일상다반사

  • 네이버 이웃추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (393)
    • IT (130)
      • JAVA (19)
      • JSP (5)
      • NoSql (8)
      • Linux (5)
      • javaScript (13)
      • Oracle (7)
      • MySql (2)
      • Android (1)
      • Spring (8)
      • Server (19)
      • System (13)
      • Tool (30)
      • 공부자료(비공개) (0)
    • 일상 (258)
      • 맛집 (69)
      • 해외여행 (31)
      • 국내여행 (21)
      • 우리집 고양이 쪼꼬 (4)
      • 디저트&야식 (49)
      • 영화 후기 (2)
      • 제품리뷰 (5)
      • 추천노래 (3)
      • 취미 (74)
      • 다이어트 (0)
    • 유용한정보 (5)
      • 블로그팁 (4)
      • 지역정보 (1)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바