속성 · 관계 · 전역
aria-details
요소에 대한 구조를 가진 자세한 설명(표, 목록, 링크 등)이 있는 다른 요소를 ID로 연결합니다.
한눈에 보기
- 구분
- 속성 (Property)
- 분류
- 관계
- 값 형식
- ID 참조 (ID reference) — ARIA 1.2 기준 하나
- 기본값
없음- 적용 범위
- 모든 요소 (전역 속성)
- HTML 대체
- 없음 (차트·이미지는
<figure>+<figcaption>와 인접한 본문으로 설명하는 방법을 먼저 고려합니다)
설명
aria-details는 요소에 대한 자세한 설명이 담긴 영역을 가리킵니다. 복잡한 차트·도표의 데이터 표, 그림의 긴 해설, 문서 주석·댓글처럼 한 줄 문장으로 줄이기 어려운 내용을 연결할 때 씁니다.
aria-describedby와 가장 큰 차이는 내용을 문자열로 펼치지 않는다는 점입니다. aria-describedby로 연결한 내용은 접근 가능한 설명(accessible description)으로 계산되어 한 줄 텍스트로 읽히므로, 표나 목록, 링크가 들어 있으면 구조가 사라집니다. aria-details는 "자세한 내용이 있다"는 사실과 위치만 알려 주고, 사용자가 원할 때 그 영역으로 가서 표·목록·링크를 그대로 탐색하게 합니다.
명세는 참조 대상이 모든 사용자에게 보이도록 할 것을 권고합니다. 또한 aria-describedby와 함께 지정했을 때 접근성 API가 여러 설명 관계를 지원하지 못하면 aria-details가 우선합니다. ARIA 1.2에서 값은 ID 하나이며, ARIA 1.3 초안에서는 여러 ID를 쓸 수 있도록 바뀌고 있습니다.
보조기술 지원은 아직 제한적입니다. Chrome·Firefox는 관계를 노출하고, 최신 NVDA는 "세부 정보 있음"을 알린 뒤 NVDA+D 같은 명령으로 내용을 읽을 수 있으며, JAWS도 일부 지원합니다. 그러나 VoiceOver·TalkBack 등에서는 안내되지 않는 경우가 많습니다. 그래서 자세한 설명은 요소 바로 뒤에 보이게 배치하거나 "데이터 표 보기" 같은 링크를 함께 제공해, 속성을 지원하지 않는 환경에서도 찾을 수 있게 하는 것이 좋습니다.
검수할 때는 가리키는 ID가 존재하는지, 대상 영역이 화면에 보이는지(hidden이 아닌지), 짧은 설명으로 충분한데 굳이 aria-details를 쓰지 않았는지, 지원하지 않는 화면낭독기에서도 설명을 찾을 수 있는지 확인합니다.
값
| 값 | 의미 |
|---|---|
<ID> | 자세한 설명을 담은 요소의 ID입니다. 대상 요소는 화면에 보여야 합니다. |
사용 예
차트와 데이터 표 연결
<figure>
<img src="sales.png" alt="2024년 분기별 매출 막대그래프" aria-details="sales-data">
<figcaption>분기별 매출 (단위: 억 원)</figcaption>
</figure>
<details id="sales-data">
<summary>그래프 데이터 표 보기</summary>
<table>
<tr><th scope="col">분기</th><th scope="col">매출</th></tr>
<tr><td>1분기</td><td>12</td></tr>
<tr><td>2분기</td><td>18</td></tr>
</table>
</details>짧은 설명은 describedby, 구조가 있는 설명은 details
<button aria-describedby="pw-hint" aria-details="pw-rules">비밀번호 규칙</button>
<p id="pw-hint">8자 이상 입력합니다.</p>
<section id="pw-rules" aria-label="비밀번호 규칙 전체">
<ul>
<li>영문 대소문자, 숫자, 특수문자 중 3종류 이상</li>
<li>아이디와 같은 문자열 4자 이상 포함 금지</li>
</ul>
</section>구조가 있는 내용을 describedby로 연결
<!-- 비권장: 표가 한 줄 문자열로 펼쳐져 "분기 매출 1분기 12 2분기 18"처럼 읽힘 -->
<img src="sales.png" alt="분기별 매출" aria-describedby="sales-table">
<table id="sales-table">...</table>화면낭독기에서는
| 상황 | 들리는 안내 (예) |
|---|---|
| aria-details가 있는 이미지에 도달 (NVDA 최신 버전, Chrome) | 2024년 분기별 매출 막대그래프, 세부 정보 있음, 그래픽 |
| NVDA+D (세부 정보 요약 읽기) | 그래프 데이터 표 보기 |
| 지원하지 않는 환경 | 2024년 분기별 매출 막대그래프, 그래픽 (관계 안내 없음) |
사용 지침
이렇게 쓰세요
- 표·목록·링크처럼 구조가 있는 긴 설명을 연결할 때 씁니다.
- 설명 영역을 모든 사용자에게 보이게 두고, 요소 가까이에 배치합니다.
- 속성을 지원하지 않는 환경을 위해 "자세히 보기" 링크나 인접 배치로도 찾을 수 있게 합니다.
이렇게 쓰지 마세요
- 짧은 한두 문장 설명에 쓰지 않습니다. 그때는
aria-describedby를 씁니다. hidden이나display:none으로 숨긴 요소를 가리키지 않습니다.- ARIA 1.2 기준으로는 ID를 여러 개 나열하지 않습니다(1.3 초안에서 목록 허용 예정).
사용할 수 있는 역할
전역 속성이므로 모든 역할과 HTML 요소에 쓸 수 있습니다. 특히 다음 역할과 자주 함께 씁니다.