ARIA 접근성 가이드

역할 · 문서 구조

role="presentation"

요소의 원래 의미(역할)를 지웁니다. 내용은 그대로 읽힙니다. none과 같은 뜻이며 지원 범위가 더 넓습니다.

중급

한눈에 보기

분류
문서 구조
대응 HTML
<img alt=""> (빈 alt 이미지의 암묵적 역할)
이름 정하는 방법
금지 (prohibited)
이름 필수
아니요
필수 상위 요소
없음
필수 하위 요소
없음

설명

presentation은 요소가 화면 모양을 위해서만 쓰였을 때 그 요소의 암묵적 의미를 접근성 트리에서 제거합니다. none과 완전히 같은 동작이며, 명세는 none을 지원하지 않는 오래된 환경을 위해 role="presentation"을 단독으로 쓰거나 role="none presentation"처럼 대체 값으로 함께 쓰라고 안내합니다. 현재 주요 브라우저는 두 값을 모두 지원합니다.

presentation ≠ aria-hidden

presentation ≠ aria-hidden
구분role="presentation"aria-hidden="true"
요소의 역할제거제거
안의 텍스트·자식그대로 노출모두 숨김
포커스 가능 요소에무시됨(원래 역할 유지)쓰면 안 됨(오류)

대표 용도

  • 장식 이미지: <img alt="">는 자동으로 presentation이 됩니다.
  • 레이아웃용 <table>: 표 안내 없이 내용만 읽히게 합니다. 안의 <tr>, <td>도 함께 의미를 잃습니다.
  • role="img" 안에서 이미 이름을 받은 하위 이미지
  • CSS용 추가 마크업

무시되는 경우

포커스를 받을 수 있는 요소, 그리고 aria-describedby 같은 전역 ARIA 속성이 있는 요소에서는 브라우저가 presentation을 무시합니다. 이름 속성(aria-label, aria-labelledby)은 presentation에 금지되어 있습니다.

테스터 관점

role="presentation"을 내용을 숨기는 용도로 오해해 쓴 코드가 흔합니다. 숨겨야 할 내용이 그대로 읽히는지, 또는 의미가 필요한 데이터 표·목록에 붙어 있는지 확인합니다.

함께 쓰는 속성

전역 속성(이름·설명 등)은 모든 역할에 쓸 수 있어 생략했습니다.

사용 예

레이아웃 표

권장HTML
<table role="presentation">
  <tr>
    <td><img src="cover.jpg" alt="어린 왕자 표지"></td>
    <td>어린 왕자 / 생텍쥐페리</td>
  </tr>
</table>

구형 환경 대비 대체 값

HTML
<li role="none presentation">…</li>

내용 숨기기 용도 (비권장)

비권장HTML
<div role="presentation">화면낭독기에서 숨기고 싶은 안내</div>

텍스트는 그대로 읽힙니다. 숨기려면 aria-hidden="true"를 씁니다.

직접 해 보기

레이아웃 표에 role="presentation"을 켜고 끄며 예상 안내를 비교해 보세요.

직접 해 보기
표지 없음어린 왕자 / 생텍쥐페리

예상 안내:

화면낭독기에서는

화면낭독기 안내 예시 (표현은 화면낭독기·브라우저·버전에 따라 조금씩 다릅니다)
상황들리는 안내 (예)
presentation 표 읽기어린 왕자 표지, 그래픽, 어린 왕자 / 생텍쥐페리

사용 지침

이렇게 쓰세요

  • 레이아웃 표, 장식 요소의 의미를 지울 때 씁니다.
  • 이미지 장식은 alt=""로 처리합니다.

이렇게 쓰지 마세요

  • 내용을 숨기려고 쓰지 않습니다.
  • 포커스 가능한 요소에 쓰지 않습니다.
  • aria-label과 함께 쓰지 않습니다.

이 역할을 쓰는 패턴

참고 자료