작성 예시 바로가기: 열기 버튼이 사라진 뒤의 복귀 경로를 정하는 예시
창이 닫힌 뒤에도 사용자의 과업은 이어집니다
옵션 안내를 읽거나 구성을 선택하기 위해 대화상자를 열 수 있습니다. 화면에서는 상자를 닫으면 원래 페이지가 다시 보이지만 키보드 초점은 다른 곳에 남아 있을 수 있습니다. 사용자는 방금 눌렀던 버튼이나 다음 입력란을 다시 찾아야 합니다. 대화상자 검수는 상자가 나타나는 모습뿐 아니라 들어가는 위치, 상자 안의 이동, 닫는 방법, 닫힌 뒤의 연결까지 포함해야 합니다.
이 글에서는 가상의 상품 구성 안내 창을 예로 사용합니다. 실제 쇼핑몰의 구현이나 접근성 시험 결과가 아니며, 안내를 열고 내용을 읽거나 선택한 뒤 페이지로 돌아가는 흐름을 설명합니다. 대화상자 역할을 선언하거나 닫기 버튼을 넣었다는 사실을 전체 사용성 검증으로 취급하지 않습니다. 사용하는 브라우저와 입력 방식, 실제 콘텐츠에서 다시 확인해야 합니다.
모달인지부터 구분합니다
모달 대화상자는 열린 동안 배경의 과업과 상호작용을 제한하는 형태입니다. 단순히 배경을 어둡게 보였다는 이유만으로 실제 상호작용까지 제한됐다고 보지 않습니다. 키보드 초점이 상자 밖으로 이동하거나 배경 버튼이 계속 실행된다면 시각적 설명과 실제 동작이 달라질 수 있습니다. W3C APG의 모달 대화상자 안내는 열린 창의 동작과 역할·상태를 함께 설명합니다.
닫지 않고 배경을 사용할 수 있는 패널이라면 모달과 다른 흐름을 검토해야 합니다. 어떤 형태를 선택할지는 정보의 길이와 과업, 페이지의 맥락에 따라 정합니다. 모든 작은 도움말을 모달로 바꾸면 읽기 흐름이 반복해서 끊길 수 있습니다. 먼저 독자가 지금 답해야 하는 질문과 해당 내용을 본문에서 제공할 수 있는지를 살펴봅니다.
열렸을 때 어디에서 시작할지 정합니다
대화상자가 열리면 초점이 내부의 적절한 요소로 이동하는지 확인합니다. 처음부터 마지막 확인 버튼으로 초점을 보냈는데 위에 중요한 구성 조건이 길게 있다면 사용자는 내용을 놓칠 수 있습니다. 반대로 짧은 안내 창에서 불필요하게 여러 요소를 지나야 한다면 과업이 복잡해질 수 있습니다. 콘텐츠의 성격과 길이에 맞춰 시작 위치를 검토합니다.
긴 목록이나 표, 여러 문단이 들어 있는 안내에는 내용의 시작을 알 수 있는 제목이나 정적인 요소가 적합한 출발점일 수 있습니다. 시작 요소에 초점이 있다는 사실과 전체 내용을 읽을 수 있다는 사실을 구분해야 합니다. 실제로 제목과 내용의 관계가 이해되는지, 초점 이동 때문에 상단 안내가 화면 밖으로 나가지 않는지 확인합니다.
| 설명용 창 | 시작 위치 검토 | 확인할 질문 |
|---|---|---|
| 짧은 추가 안내 | 과업에 맞는 내부 요소 | 내용과 닫기 방법을 알 수 있는가 |
| 긴 구성 목록 | 내용의 시작이나 제목 | 상단 조건이 가려지지 않는가 |
| 여러 입력 항목 | 현재 입력할 적절한 요소 | 제목·도움말·입력 관계가 남는가 |
| 되돌리기 어려운 행동 | 행동의 위험과 선택을 고려 | 의도하지 않은 실행을 유도하지 않는가 |
표는 특정 구현의 합격 결과가 아니라 검수 질문의 예시입니다. 모든 창의 시작을 동일한 버튼으로 고정하지 않습니다. 실제 내용이 바뀌거나 입력 항목이 추가되면 처음 정한 초점 위치가 여전히 적절한지 다시 확인해야 합니다.
닫기·취소·확인을 같은 행동으로 처리하지 않습니다
안내만 읽는 창에서는 닫기가 원래 페이지로 돌아가는 행동일 수 있습니다. 선택을 바꾸는 창에서는 취소와 확인이 다른 결과를 가질 수 있습니다. 가상의 구성 A를 임시로 선택했다가 취소한 경우와 확인해 적용한 경우를 나누어 기록하면 상태 변화와 초점 복귀를 함께 검토하기 쉽습니다. 실제 옵션이 어떻게 적용되는지는 구현과 정책에서 정해야 합니다.
| 닫는 경로 | 상태 검수 | 복귀 검수 |
|---|---|---|
| 닫기 버튼 | 안내 창의 상태를 끝내는가 | 원래 문맥을 찾을 수 있는가 |
| 취소 | 임시 변경과 적용 상태를 구분하는가 | 다시 선택할 위치가 명확한가 |
| 확인 | 정한 조건대로 선택이 적용되는가 | 적용 결과와 다음 과업이 연결되는가 |
| Escape | 해당 창의 닫기 정책과 같은가 | 닫힌 뒤 초점이 사라지지 않는가 |
APG의 모달 패턴은 Escape로 닫는 키보드 동작과 눈에 보이는 닫기 컨트롤을 안내합니다. 실제 서비스에서는 닫기 경로별로 어떤 값이 유지되고 어떤 값이 취소되는지 별도 검토해야 합니다. 배경을 눌러 닫는 기능을 제공한다면 실수로 선택 상태가 바뀌지 않는지도 확인합니다. 어떤 경로를 사용했는지 기록 없이 상자가 사라졌다는 사실만으로 검수를 끝내지 않습니다.
닫힌 뒤의 초점은 과업의 관계로 정합니다
대체로 창을 열었던 요소로 돌아가는 흐름을 생각할 수 있지만 항상 같은 요소가 남아 있는 것은 아닙니다. 선택이 적용되면서 원래 버튼이 제거되거나 다음 단계가 더 논리적인 위치일 수 있습니다. APG는 열었던 요소가 사라진 경우와 과업 흐름에 맞는 대체 위치를 설명합니다. 복귀 위치를 페이지 맨 위로 임의로 정하는 대신 실제 과업의 연결을 검토합니다.
가상의 구성 안내 버튼이 선택 뒤에도 남아 있다면 그 버튼으로 돌아가 적용된 구성과 다음 행동을 확인할 수 있는지 봅니다. 선택 뒤 버튼이 다른 요약 요소로 바뀐다면 그 요약과 다음 과업을 알 수 있는 위치가 무엇인지 확인합니다. 이 예제는 특정 서비스의 테스트 결과가 아니라 복귀 대상을 정할 때의 질문입니다.
복귀 대상이 프로그램적으로 존재한다는 사실만으로 충분하지 않습니다. 화면 밖으로 이동했거나 고정 헤더에 가려졌거나 보이지 않는 상태라면 사용자가 위치를 이해하기 어려울 수 있습니다. 초점 표시와 실제 가시성, 페이지의 이동 상태를 함께 기록합니다. 반복해서 창을 열고 닫을 때도 같은 관계가 유지되는지 확인합니다.
창의 이름과 긴 설명을 나눕니다
대화상자에는 무엇을 하는 창인지 알 수 있는 이름이 필요합니다. 제목과 연결된 이름을 제공하고 버튼 이름도 닫기·취소·확인의 결과를 설명하게 합니다. 모양만 있는 닫기 아이콘을 넣었다면 접근 가능한 이름과 실제 동작이 같은지 확인합니다. 제목이 시각적으로 보인다는 사실과 프로그램적으로 관계가 남는다는 사실을 구분합니다.
긴 표나 여러 문단을 한 덩어리의 설명으로 묶으면 읽기 구조를 이해하기 어려울 수 있습니다. 간단한 안내와 긴 구조화된 콘텐츠를 같은 방식으로 설명하지 않습니다. 제목, 문단, 목록, 표의 역할을 남기고 실제 보조기술에서 어떻게 시작하고 이동하는지 확인해야 합니다. 역할과 상태 속성을 여러 개 넣는 작업이 실제 동작을 대신하지 않습니다.
aria-modal을 선언했다면 실제로도 모달처럼 동작하는지 확인해야 합니다. 배경이 계속 사용 가능한데 모달 상태만 표시하면 접근 경로별로 다른 경험을 줄 수 있습니다. 반대로 배경을 숨기는 처리에서 대화상자 자체까지 숨겨지지 않는지도 확인합니다. 구현과 의미가 일치하는지를 검사하고 단순한 속성 존재 검사로 인증처럼 보고하지 않습니다.
기본 요소를 사용해도 실제 표시 상태는 검수합니다
HTML dialog 요소에는 대화상자를 위한 기본 기능이 있습니다. 모달로 여는 방식과 일반 표시 방식의 차이, 콘텐츠와 닫기 동작을 구현할 때의 고려사항은 MDN dialog 문서에서 확인할 수 있습니다. 기본 요소를 사용했다는 사실이 실제 페이지의 내용·스타일·상태 처리까지 검증됐다는 뜻은 아닙니다.
기존 사이트의 창을 기본 요소로 바꿀 때는 열기와 닫기 함수뿐 아니라 이름, 시작 초점, 선택 상태, 배경 처리, 복귀 대상을 함께 확인합니다. 다른 구현과 섞여 닫기 이벤트가 중복 실행되거나, 창 안의 콘텐츠가 나중에 바뀌며 초점 위치가 사라지는지도 봅니다. 문제가 생기면 한 가지 속성을 추가해 숨기기보다 실제 흐름을 구분해 다시 검수합니다.
작은 화면과 확대에서는 닫기 방법이 남아야 합니다
대화상자가 화면보다 커지면 상단 제목이나 하단 확인 버튼이 처음에 안 보일 수 있습니다. 내용의 시작을 알 수 있는지, 내부를 이동해 끝까지 읽을 수 있는지, 닫기 방법을 찾을 수 있는지 확인합니다. 창의 높이를 무조건 작게 고정하거나 내용을 잘라내는 방식으로 해결하지 않습니다.
확대 상태에서는 줄 수와 버튼 배치가 달라질 수 있습니다. 닫기 아이콘이 다른 컨트롤과 겹치지 않는지, 초점 표시가 잘리지 않는지, 선택 결과를 읽을 수 있는지 봅니다. 모바일 화면을 한 번 확인했다는 사실과 확대나 다른 입력 환경을 검수했다는 사실을 구분해야 합니다. 검사한 조건을 기록하고 확인하지 않은 조건까지 완료로 표시하지 않습니다.
열기부터 복귀까지 한 기록으로 검수합니다
| 단계 | 기록할 내용 | 핵심 질문 |
|---|---|---|
| 열기 | 시작 버튼·초기 상태 | 적절한 내부 위치로 들어가는가 |
| 내부 이동 | Tab·Shift+Tab·내용 변화 | 필요한 요소와 내용에 접근하는가 |
| 닫기 | 버튼·취소·확인·Escape | 정한 상태 변화와 같은가 |
| 복귀 | 초점 대상·위치·다음 과업 | 실제 문맥이 이어지는가 |
| 환경 변경 | 화면 폭·확대·입력 방식 | 이름·내용·닫기 방법이 남는가 |
실제 테스트를 했다면 페이지 주소와 브라우저, 입력 방식, 보조기술, 창의 상태와 결과를 별도로 남깁니다. 마우스로 한 번 닫을 수 있었다는 결과를 키보드나 보조기술 검증으로 확대하지 않습니다. 닫는 경로에 따라 결과가 달랐다면 각 경로를 같은 기록 안에서 비교합니다.
운영 중에는 창의 내용이 바뀔 때 이 기록을 다시 확인합니다. 옵션 항목, 안내 문단, 버튼 문구, 상태 적용 방식이 달라지면 예전에 정한 시작과 복귀 위치가 더 이상 적절하지 않을 수 있습니다. 파일과 코드만 바뀌는 작업이 아니라 과업 관계가 바뀌는 작업으로 검토해야 합니다.
상자를 없애는 것과 과업을 돌려주는 것은 다릅니다
좋은 닫기 동작은 화면의 상자만 지우는 기능이 아닙니다. 사용자가 들어오기 전의 문맥과 필요한 선택 결과, 이어서 할 행동을 이해하게 해야 합니다. 열었던 요소가 남는지, 상태가 바뀌었는지, 다른 위치가 더 적절한지 실제 흐름을 살펴봅니다. 초점 복귀를 구현했다는 사실과 사용자가 그 위치를 찾고 사용할 수 있다는 사실을 함께 검수해야 합니다.
대화상자는 본문 설명을 모두 숨겨놓는 수단으로 쓰지 않습니다. 자주 참고할 조건이나 비교 자료라면 페이지 안에서 읽을 수 있는 방식이 더 적절할 수도 있습니다. 필요한 창만 과업에 맞게 사용하고 열기·읽기·닫기·복귀를 한 과정으로 관리하는 것이 이 검수의 목적입니다.
참고 자료와 예제의 범위
- W3C APG: 모달 대화상자 패턴 — 내부 이동·닫기·초점 복귀와 역할·상태.
- MDN: dialog 요소 — 기본 대화상자 요소와 구현 맥락.
자료 대조일: 2026-09-13. 구성 안내 창과 표는 설명용 예제이며 실제 서비스의 사용성 시험이나 접근성 인증 결과가 아닙니다. 작성·운영: 오경연 / detailry. 정정·문의로 보완 자료를 전달할 수 있습니다.
함께 읽기: 오류 안내와 입력란 연결 · 옵션 선택 구조.
열기 버튼이 사라진 뒤의 복귀 경로를 정하는 예시
이 표는 가상의 옵션 편집 화면 설계 기록입니다. 본문 코드가 모든 경우를 구현하거나 실행 시험을 마쳤다는 뜻은 아닙니다.
| 닫힘 상황 | 현재 문서 상태 | 복귀 후보와 확인 |
|---|---|---|
| 취소·열기 버튼 option-A 유지 | 기존 선택은 그대로 남음 | option-A로 복귀하고 다음 Tab 경로 확인 |
| 확인·새 선택행이 추가됨 | 다음 과업은 추가된 행 검토 | 새 행의 필요한 조작 요소로 이어지는지 검토 |
| 작업 중 option-A가 삭제됨 | 원래 요소로 초점을 줄 수 없음 | 관련 목록의 유효한 다음 요소를 지정하고 가시성 확인 |
항상 원래 버튼으로 돌려준다는 규칙은 그 버튼이 문서에서 사라진 경우를 설명하지 못합니다. 닫기 사유와 반영된 선택, 다음 과업, 실제 존재하는 초점 대상의 관계를 먼저 정합니다. 없는 요소를 참조해 초점이 body로 유실되거나, 취소했는데 저장된 것처럼 목록이 바뀌지 않는지 각각 확인합니다. 초점을 이동시킨 사실만으로 선택 저장과 취소의 데이터 처리가 맞았다고 결론내리지 않습니다.
대화상자 초점 이동과 복귀 운영 점검 결과
공개 상태에서 재현할 수 있는 것만 남기기 위해 2026년 9월 23일 서버 응답과 문서 구조를 대조했습니다. 열기 버튼, 대화상자 제목, 닫기, 원래 위치로의 복귀를 한 순서로 재현합니다. 배경이 닫힌 듯 보이는 것과 조작이 실제로 차단된 것을 구분합니다.
| 확인 항목 | 2026.09.23 공개 응답 | 판단 범위 |
|---|---|---|
| 접속과 주소 | HTTP 200, H1 1개, canonical https://detailry.com/articles/web-dialog-focus-return/ | 공개 URL과 대표 주소 일치만 확인 |
| 본문 구조 | 공백 제외 4,950자, H2 13개, 이미지 1개 | 길이가 아니라 주제별 판단 과정과 한계를 재검수 |
| 링크 경로 | 내부 3개, 외부 3개, developer.mozilla.org, w3.org | 출처 존재와 실제 접속 상태를 별도로 확인 |
이 기록은 해당 날짜의 공개 상태를 보여주며 사용자 성과, 고객 전환, 제품 성능을 증명하지 않습니다. 이후 본문·이미지·출처가 바뀌면 같은 URL을 다시 확인해야 합니다.
