견고성
Robust
개념
브라우저와 보조 기술이 달라져도 화면의 내용이 같게 전달되어야 한다는 WCAG 의 네 번째 원칙입니다.
등장 배경
접근성 점검에서 가장 자주 나오는 것은 눈으로는 멀쩡한데 기계에는 전달되지 않는 화면입니다. 앞의 세 원칙은 사람 쪽을 봅니다. 인식의 용이성은 정보가 감각 하나에 매이지 않게, 운용의 용이성은 마우스 없이 조작되게, 이해의 용이성은 벌어지는 일이 예측되게 만듭니다. 셋을 다 지켜도 기계에 잘못 전달되면 사용자에게 닿는 것은 없습니다.
페이지덱에서 그런 일이 있었습니다. 태오가 직접 만든 선택 목록은 마우스와 키보드로 잘 작동했고 색 대비도 통과했습니다. 그런데 화면을 소리로 읽어 주는 스크린 리더로 열어 보니 목록으로 읽히지 않고 그냥 글자로 읽혔습니다. 항목이 몇 개인지도 나오지 않아 사용자는 목록이 있다는 사실조차 몰랐습니다.
보조 기술의 종류와 판이 여럿이라 하나에서 되는 것만 확인하면 나머지에서 다르게 읽힙니다. 견고성은 이 전달 경로를 다루는 원칙입니다.
작동 방식
요구는 한 줄입니다. 모든 요소의 이름과 역할과 상태가 프로그램으로 읽혀야 합니다.
- 이름. 그 요소가 무엇인지 기계가 읽을 이름이 있어야 합니다. 그림 하나만 들어 있는 버튼은 눈으로는 통하지만 이름이 없어 버튼이라고만 읽히므로, 삭제나 공유 같은 이름을 따로 붙입니다.
- 역할. 버튼인지 링크인지 체크박스인지가 적혀 있어야 합니다. 모양만 버튼처럼 꾸민 상자는 기계에 역할 없는 상자로 전달됩니다. 표준 요소를 쓰면 역할이 따라옵니다.
- 상태. 열려 있는지, 골라져 있는지, 지금은 쓸 수 없는지가 전달되어야 합니다. 화살표 방향과 색만 바꾸면 눈에만 보입니다. 열림과 닫힘이 코드에 적혀 있어야 소리로 옮겨집니다.
- 바뀐 것 알리기. 저장에 실패해 빨간 문구가 떴는데 알려지지 않으면 낭독기를 쓰는 사람은 아무 일도 없었다고 넘어갑니다.
직접 만든 부품이 가장 자주 걸립니다. 표준 요소에는 셋이 이미 들어 있고 직접 만들면 손으로 다 채워야 하므로, 같은 일을 하는 표준 요소가 있으면 그것을 쓰는 편이 가장 쌉니다.
실무 용례
"이거 상자로 만든 버튼이죠? 견고성에서 걸립니다."
모양은 버튼이지만 기계에는 버튼으로 전달되지 않는다는 뜻입니다.
"역할은 붙었는데 상태가 안 바뀌어요. 열려 있는데 닫힘으로 읽힙니다."
셋 중 하나만 빠져도 미달이라는 지적입니다.
"직접 만들지 말고 기본 요소로 가죠. 그게 제일 빠릅니다."
표준 요소를 쓰면 이름과 역할과 상태가 따라온다는 말입니다.
페이지덱에서는 새 부품을 만들 때 낭독기로 한 번 읽어 보는 절차를 둡니다. 눈을 감고 키보드만으로 써 보는 것이 점검 방법입니다. 태오는 앞의 선택 목록을 표준 요소로 바꿨고, 그 뒤로는 새 부품을 만들기 전에 표준 요소가 있는지 먼저 찾습니다.
같이 보면 좋은 페이지
마지막 업데이트 2026-09-16