모든 개발자들은 <input> 요소를 잘 알고 있으며, 이는 웹의 핵심 입력 수단임 하지만 <output> 요소는 대부분 사용해본 적이 없으며, 존재조차 모르는 경우가 많음 이는 아쉬운 점으로, 그 이유는 그동안 <div>와 ARIA로 임시방편을 사용해온 동적 결과 표현과 접근성을 <output>이 기본적으로 해결해주기 때문임 이 태그는 HTML 명세에 오래전부터 존재해왔지만, 여전히 널리 알려지지 않은 상태임 HTML5 명세에 따르면 <output> 요소는 애플리케이션에서 계산된 결과나 사용자 행동의 결과를 나타냄 접근성 트리 상에서는 role="status" 로 매핑되어, 값이 변경될 때마다 자동으로 전체 내용을 스크린 리더가 사용자에게 안내함 이러한 동작은 사용자의 흐름을 방해하지 않으면서, 전체 내용을 천천히 읽어주는 특징을 가짐 간단하게 아래와 같이 사용할 수 있음 이렇게만 사용해도 내장된 보조기술 지원을 받을 수 있으며, 별도의 속성이나 외우기 어려운 API가 필요 없고, 순수 HTML만으로도 접근성을 달성 가능함 작성자는 접근성 프로젝트에서 다단계 폼의 점수 표시 과정 중 <output>의 가치를 발견하게 되었음 폼의 점수 변화가 화면상으로는 보였으나, 스크린 리더 사용자는 변화를 알 수 없는 상황이었음 사양을 살펴보던 중 폼과 별개로 사용 가능하며 자동으로 결과를 안내해주는 <output> 을 발견했으며, 가장 단순한 해결책이 이미 명세에 포함되어 있었음을 깨달았음 잊혀진 태그로, 대부분의 튜토리얼이나 컴포넌트 라이브러리에서 다루지 않으며, Github 공개 저장소에서도 거의 사용례가 없음 이로 인해 지식의 누락이 반복되고, 많이 쓰이지 않는 악순환이 계속됨 중요: 간단한 계산기를 만들 때, 결과 표시를 <output>으로 하면 추가 ARIA 역할 없이 결과값이 자동 안내되는 이점이 있음 슬라이더로 내부 값(예: 10000)을 조정하며, <output>에 보기 편한 형태(10,000 miles/year)로 노출 비밀번호 강도 등 실시간 검증 메시지도 <output>을 통해 보조기술 사용자에게 즉각 안내 가능 Shipping 비용, 세금, 서버 API로 얻은 추천값 등 서버에서 계산한 값에도 <output>이 적합 아래 React 예제처럼 서버에서 금액을 받아와 <output>에 즉시 표시 가능 명세에서 의도한대로 순수 HTML 요소를 올바르게 사용함으로써, 아직도 HTML 속에는 숨겨진 보석 같은 요소가 많음을 시사함 최신 업데이트: Bob Rudis가 이 글에 맞는 작동 예제 페이지를 공개함
HTML에서 감춰진 보석: <output> 태그
HTML5 명세에서의 정의
이는 마치 기본적으로 aria-live="polite" aria-atomic="true"가 적용된 것과 같음
필요시 개발자가 별도로 ARIA 속성을 지정해 동작을 변경할 수 있음<output> 사용 방법
발견의 순간
ARIA live region으로 해결되긴 했지만, 명확한 의미의 HTML을 쓰는 것이 더 바람직하다고 생각함잘 사용하지 않는 이유
알아두면 좋은 점
<output>은 사용자 입력과 명확히 연결되는 계산 결과 또는 액션 결과에 적합하며,
전역 알림(예: 토스트 메시지)에는 사용하지 않고, 시스템 피드백에는 role="status"나 role="alert"로 처리해야 함실제 사용 예시
계산기 애플리케이션
슬라이더 값 포맷팅 (Volvo Cars 사례)
컨테이너에 role="group" 및 공유 라벨을 부여해, 접근성 및 React 컴포넌트 합성에 활용폼 검증 피드백
서버 계산 결과 표시
네이티브 요소 사용의 만족감
접근성을 높이고 코드를 단순화하며,
드물게 알려진 <output> 태그의 가치와 활용법을 새롭게 발견함

4 weeks ago
9









![닷컴 버블의 교훈[김학균의 투자레슨]](https://www.edaily.co.kr/profile_edaily_512.png)
English (US) ·