Technote

테마 · 플러그인 실무

연재 접근성은 품질이다 8부 중 5부

폼 라벨과 오류 메시지 — 플레이스홀더는 라벨이 아닙니다

입력하기 시작하면 사라지는 글자는 라벨이 될 수 없습니다. 라벨을 지운 폼과 색으로만 오류를 알리는 폼이 사람을 잃는 방식은 서로 닮았습니다.

라벨을 없애고 플레이스홀더만 남긴 폼은 깔끔해 보입니다. 입력란이 나란히 서고 글자 수가 줄어드니 시안에서는 분명히 나아 보입니다. 다만 이 정리는 사용자가 아직 아무것도 입력하지 않았을 때만 성립합니다.

플레이스홀더가 라벨이 될 수 없는 세 가지 이유

플레이스홀더로 라벨을 대신했을 때 사용자가 잃는 것

세 번째 줄은 첫 회차의 대비 문제와 그대로 이어집니다. 플레이스홀더를 진하게 그리면 이번엔 이미 입력된 값처럼 보여서 사용자가 그 칸을 건너뜁니다. 라벨 대신 쓰는 순간 어느 쪽으로도 빠져나갈 수 없는 구조가 됩니다.

플레이스홀더 자체가 나쁜 것은 아닙니다. 라벨이 따로 있고 그 아래에서 입력 예시를 보여 주는 용도라면 아주 유용합니다. 라벨을 대신하게 만드는 것이 문제입니다.

라벨은 항상 보이고, 입력란과 묶여 있어야 합니다

라벨은 입력란 위에 두는 것이 가장 안전합니다. 글자가 길어져도 줄바꿈이 자연스럽고, 모바일에서 확대해도 라벨과 입력란이 함께 보입니다.

여기에 하나가 더 필요합니다 — 라벨과 입력란이 서로를 아는 상태여야 합니다. 제대로 묶여 있으면 라벨을 누르는 것만으로 입력란에 초점이 가고, 낭독기도 “이 칸은 무엇을 묻는 칸” 이라고 함께 읽어 줍니다. 부수적으로 터치 목표가 라벨만큼 넓어져 모바일 입력이 쉬워집니다. 접근성 요건 하나가 사용성 개선으로 그대로 돌아오는 흔한 경우입니다.

라벨이 입력란 안으로 올라갔다 내려오는 방식(플로팅 라벨)을 쓴다면, 축소된 상태의 크기와 대비를 따로 확인합니다. 그 작은 글자가 실제 라벨이기 때문입니다.

오류는 색이 아니라 글로 설명합니다

입력란을 빨갛게 칠하는 것만으로는 부족합니다. 색각 이상이 있는 사용자에게는 아무 변화가 아닐 수 있고, 색이 보이더라도 무엇이 왜 틀렸는지는 여전히 알 수 없습니다.

오류 화면은 실패한 사용자가 아니라 거의 끝까지 온 사용자가 보는 화면이다

오류 문구는 다음에 무엇을 하면 되는지를 적습니다. “형식이 올바르지 않습니다” 는 상태 보고이고, “숫자만 입력해 주세요” 는 해결 방법입니다. 긴 폼이라면 화면 위에 오류 요약을 두고 각 항목으로 이동하는 링크를 붙이면 좋지만, 요약만 두고 개별 입력란 옆의 메시지를 빼지는 않습니다.

필수 항목 표시도 같은 원리입니다. 별표 하나만 찍어 두면 그것이 무슨 뜻인지는 관습에 기대는 것이므로, 폼 위에 한 줄로 설명하거나 대부분이 필수라면 반대로 선택 항목을 표시합니다.

우리 서비스 신청 폼도 같은 규칙으로 만들었습니다 — 라벨은 항상 보이고, 필수 항목은 글로 적혀 있습니다. 폼과 화면 구성에 관한 글은 테마 · 플러그인 아카이브에 더 있습니다.

다음 회차

다음 회차는 모션입니다. 애니메이션을 줄여 달라는 설정이 켜져 있을 때, 우리 화면이 차분해지는지 아니면 텅 비는지가 갈리는 지점을 다룹니다.

이 주제의 다른 글

노하우 목록으로

테마 · 플러그인 실무

편집 가능한 영역을 디자인 전에 정합니다

CMS 가 표현할 수 없는 디자인은 배포된 뒤에도 계속 협상 대상으로 남습니다. 어디까지 편집자가 바꿀 수 있는지를 먼저 정하면 그 협상 자체가 사라집니다.

디자이너 3분 읽기

테마 · 플러그인 입문

업데이트가 멈춘 플러그인을 판별하는 기준

마지막 업데이트 날짜 하나로는 방치를 판정할 수 없습니다. 판별 신호 다섯 개를 함께 보고, 대체 불가라면 격리 조건이라도 걸어야 합니다.

기획자 · 운영 · 관리자 2분 읽기

테마 · 플러그인 심화

JS 없이 만드는 상호작용과 그것을 안전하게 하는 규칙

details · :target · :focus-within · :has() · 스크롤 타임라인으로 상당수의 상호작용이 스타일시트 안에서 끝납니다. 안전하게 만드는 규칙은 하나입니다 — 기본값이 완성된 상태여야 합니다.

디자이너 6분 읽기

₩270,000 · 신청하기