속성 · 값·범위
aria-valuetext
현재 값을 숫자 대신 사람이 이해하기 쉬운 문장으로 알립니다. (예: "보통", "오후 3시", "70,000원")
한눈에 보기
- 구분
- 속성 (Property)
- 분류
- 값·범위
- 값 형식
- 문자열 (string)
- 기본값
없음- 적용 범위
- 특정 역할에만 사용
- HTML 대체
- 없음 (네이티브
<input type="range">에도 같은 목적으로aria-valuetext를 씁니다)
설명
aria-valuetext는 aria-valuenow의 숫자를 사람이 읽기 좋은 텍스트로 바꿔 알려 줍니다. 이 속성이 있으면 보조기술은 숫자 대신 이 텍스트를 읽습니다. 예를 들어 글자 크기 슬라이더의 값이 1~5라면 aria-valuenow="3"과 함께 aria-valuetext="보통"을 넣어 "3" 대신 "보통"이 들리게 합니다.
명세는 숫자만으로 값을 의미 있게 표현할 수 없을 때만 쓰라고 권고합니다. 단계 이름(작게·보통·크게), 요일·시간, 통화·단위가 중요한 값(70,000원, 영하 18도), "12개 중 6개 완료"처럼 문맥이 필요한 진행률이 대표적입니다. 단순한 0~100 숫자라면 굳이 넣지 않아도 됩니다.
aria-valuetext를 쓰더라도 aria-valuenow는 함께 유지합니다. 일부 보조기술은 숫자 값으로 위치를 계산하기 때문입니다(값을 알 수 없는 불확정 진행 표시줄만 예외). 두 속성은 늘 같은 값을 가리켜야 하므로, 값이 바뀔 때 함께 갱신합니다.
텍스트는 짧고 값 자체에 집중해야 합니다. 값이 바뀔 때마다 읽히기 때문에 "현재 선택된 글자 크기는 보통입니다"처럼 길면 조작할 때마다 같은 말이 반복됩니다. 이름(“글자 크기”)은 접근 가능한 이름에, 값(“보통”)만 이 속성에 넣습니다. 네이티브 <input type="range">에도 aria-valuetext를 붙일 수 있습니다.
검수할 때는 값을 바꿀 때마다 텍스트가 같이 바뀌는지(처음 값에 멈춰 있지 않은지), 숫자 값과 텍스트가 같은 상태를 가리키는지, 텍스트에 이름이 중복되지 않았는지 확인합니다.
값
| 값 | 의미 |
|---|---|
<문자열> | 현재 값을 사람이 읽기 좋게 표현한 텍스트입니다. (예: 보통, 오후 3시, 70,000원) |
사용 예
단계 이름을 읽어 주는 슬라이더
<span id="fs-label">글자 크기</span>
<div role="slider" tabindex="0" aria-labelledby="fs-label"
aria-valuemin="1" aria-valuemax="5"
aria-valuenow="3" aria-valuetext="보통"></div>값과 텍스트를 함께 갱신하기
const LABELS = ['아주 작게', '작게', '보통', '크게', '아주 크게'];
function setSize(slider, v) {
slider.setAttribute('aria-valuenow', String(v));
slider.setAttribute('aria-valuetext', LABELS[v - 1]);
}숫자만 있을 때와 문장이 필요한 때
<!-- 비권장: 이름이 반복되고 문장이 길어 조작할 때마다 다 읽힘 -->
<div role="slider" aria-label="온도" aria-valuenow="22"
aria-valuetext="현재 온도 설정 값은 섭씨 22도입니다"
aria-valuemin="16" aria-valuemax="30" tabindex="0"></div>
<!-- 권장: 값만 짧게 -->
<div role="slider" aria-label="온도" aria-valuenow="22"
aria-valuetext="섭씨 22도"
aria-valuemin="16" aria-valuemax="30" tabindex="0"></div>네이티브 range 입력에 붙이기
<label for="day">요일</label>
<input type="range" id="day" min="1" max="7" value="3" aria-valuetext="수요일">직접 해 보기
글자 크기 슬라이더입니다. 값을 바꾸면 aria-valuenow와 aria-valuetext가 함께 바뀝니다. 화면낭독기는 숫자 대신 "보통", "크게"처럼 텍스트를 읽습니다.
방향키로 1씩, Page Up / Page Down으로 1씩, Home / End로 최솟값·최댓값으로 이동합니다. 마우스로 트랙을 눌러도 됩니다.
실시간 코드 — 조작하면 속성 값이 바뀌는 모습을 볼 수 있습니다
화면낭독기에서는
| 상황 | 들리는 안내 (예) |
|---|---|
| 슬라이더에 포커스 | 글자 크기, 슬라이더, 보통 |
| 오른쪽 방향키를 누름 | 크게 |
| aria-valuetext가 없을 때 같은 조작 | 4 |
사용 지침
이렇게 쓰세요
- 숫자만으로 의미가 전달되지 않을 때(단계 이름, 시간, 통화·단위)만 씁니다.
aria-valuenow와 항상 같은 값을 가리키도록 함께 갱신합니다.- 짧게 값만 적습니다. 이름은
aria-label이나aria-labelledby로 따로 줍니다. - 화면에 보이는 값 표기와 같은 표현을 씁니다.
이렇게 쓰지 마세요
- 값이 바뀌어도 처음 텍스트를 그대로 두지 않습니다.
aria-valuenow없이aria-valuetext만 쓰지 않습니다(불확정 진행 표시줄 제외).- 조작 방법 안내("방향키로 조절하세요")를 넣지 않습니다. 필요한 안내는
aria-describedby로 연결합니다.
사용할 수 있는 역할
관련 속성·패턴
이 속성을 쓰는 패턴