TL;DR
목록에 결과가 없을 때는 현재 조건이 무엇인지, 왜 아무것도 보이지 않는지, 다음에 무엇을 할 수 있는지를 안내해야 합니다. 원래 데이터가 없는 상태와 필터 조건 때문에 사라진 상태를 구분하면 잘못된 복구 버튼을 줄일 수 있습니다.
비어 있는 이유가 다른 두 화면
처음 개설해 아직 공개 글이 없는 블로그와 카테고리를 좁혀 결과가 없는 목록은 다릅니다. 전자는 콘텐츠 준비 상태와 다른 유용한 경로를 안내하면 됩니다. 후자는 현재 적용한 조건을 확인하고 해제할 수 있어야 합니다. 둘 다 아무것도 없습니다라고만 적으면 이용자는 기다려야 하는지 입력을 바꿔야 하는지 알기 어렵습니다.
Google은 독자가 콘텐츠를 읽은 뒤 자신의 목표를 달성할 만큼 충분한 정보를 얻는지를 평가하도록 안내합니다. 빈 상태도 사용자가 과제를 계속할 수 있는 정보를 제공해야 한다는 관점으로 볼 수 있습니다. 단, 이는 Google이 특정 빈 상태 문구나 버튼을 요구한다는 뜻은 아닙니다. 다음 설계는 사이트의 실제 기능에 맞춰 선택하는 실무 제안입니다.
적용된 조건을 먼저 보여주기
검색어, 선택 카테고리, 기간처럼 목록에 영향을 주는 조건을 화면에서 확인할 수 있게 합니다. 사용자가 어떤 값을 입력했는지 다시 이해할 수 있어야 조건을 고칠 수 있습니다. 조건 해제는 실제로 해당 조건만 지우는지 확인하고, 전체 초기화 버튼이 있다면 무엇이 초기화되는지 구별하세요. 이름만 초기화인 버튼이 엉뚱한 화면으로 이동하지 않아야 합니다.
검색 기능이 없는 단순 카테고리 목록이라면 검색어를 바꿔 보라는 문구를 쓰지 않습니다. 실제로 제공하는 선택지에 맞춰 전체 글로 돌아가기, 다른 분류 보기, 서비스 안내 확인 같은 경로를 고릅니다. 작동하지 않는 기능을 안내하는 문구는 빈 상태의 혼란을 더 키웁니다.
W3C는 메뉴의 구조를 목록으로 전달해 보조 기술이 항목 수와 탐색 기능을 알 수 있게 할 수 있다고 설명합니다. 카테고리 탐색을 제공한다면 비어 있는 상태에서도 그 경로를 잃지 않게 유지할 수 있습니다. 결과가 없다는 이유로 전체 탐색이 사라지면 사용자는 이전 조건을 되돌릴 길을 찾기 어렵습니다. 현재 선택된 분류도 함께 보여줍니다.
실패와 빈 결과를 같은 상태로 숨기지 않기
서버 문제로 목록을 불러오지 못한 상태는 정상적으로 조회했지만 결과가 없는 상태와 다릅니다. 실패를 결과 없음으로 표시하면 사용자는 조건을 바꿔도 해결되지 않는 문제를 반복하게 됩니다. 재시도 가능한지와 문의할 수 있는 경로를 실제 운영 방식에 맞춰 안내하고, 오류를 성공한 조회로 기록하지 않습니다.
Google은 링크 텍스트가 연결될 페이지의 내용을 설명하도록 권합니다. 빈 목록의 복구 링크도 뒤로 가기라는 모호한 말보다 전체 글 보기처럼 목적지를 드러낼 수 있습니다. 브라우저 이전 기록이 없는 직접 방문에서도 작동하는지 확인해야 합니다. 사용자에게 없는 경로를 가정하지 않는 것이 핵심입니다.
검수에 빈 데이터를 직접 넣어 보기
정상 목록이 보이는 화면만 검사하지 말고 공개 글이 없는 분류, 조건에 맞는 항목이 없는 경우, 일시 오류를 구분해 확인합니다. 비공개 글이 빈 화면을 채우는 데 사용되지 않는지도 봅니다. 관리자에게 보이는 자료와 공개 이용자에게 보이는 자료는 다른 목록이어야 합니다. 빈 상태의 문구가 내부 등록 현황이나 비공개 제목을 드러내서는 안 됩니다.
마무리
초기 상태와 복구 뒤의 상태를 나란히 비교하면 실제로 무엇이 바뀌었는지 확인할 수 있습니다. 조건을 지운 뒤에도 결과가 없을 수 있으므로 성공을 예고하는 문구는 피하세요. 조건 해제가 제대로 실행됐다는 사실과 새 결과가 있다는 사실을 구분해 안내해야 합니다. 비어 있는 카테고리를 선택한 상태도 주소로 공유할 수 있다면, 새 방문자가 그 주소로 직접 들어왔을 때 같은 안내와 복구 경로를 보는지 확인합니다.
빈 상태의 목표는 화면을 채우는 것이 아니라 사용자가 다음 선택을 할 수 있게 하는 것입니다. 데이터 없음, 조건 불일치, 조회 실패를 구분하고 실제로 작동하는 복구 경로를 제공하세요.