<dialog>
: 대화 상자 요소
-
기본 제공:
<dialog>
요소는 모달 또는 비모달 대화 상자, 경고, 검사기, 서브윈도우 등의 상호작용 요소를 나타냄. 2022년 3월부터 대부분의 브라우저에서 사용 가능함.
속성
-
open
: 대화 상자가 활성화되어 상호작용 가능함을 나타냄. open
속성이 설정되지 않으면 사용자에게 보이지 않음. .show()
또는 .showModal()
메서드를 사용하는 것이 권장됨.
사용 노트
- HTML
<form>
요소는 method="dialog"
속성을 사용하여 대화 상자를 닫을 수 있음.
- CSS
::backdrop
의사 요소를 사용하여 모달 대화 상자의 배경을 스타일링할 수 있음.
-
autofocus
속성은 대화 상자가 열릴 때 즉시 상호작용할 요소에 추가해야 함.
-
<dialog>
요소에 tabindex
속성을 추가하지 않도록 주의해야 함.
접근성
- 대화 상자를 구현할 때 사용자 포커스를 적절히 설정하는 것이 중요함.
-
showModal()
메서드를 사용하여 대화 상자를 열 때, 포커스는 첫 번째 포커스 가능한 요소에 설정됨.
- 모든 사용자가 대화 상자를 닫을 수 있도록 명시적인 버튼을 포함하는 것이 가장 확실한 방법임.
예제
HTML 전용 대화 상자
- HTML만으로 비모달 대화 상자를 생성하는 예제.
open
속성으로 인해 페이지 로드 시 대화 상자가 열려 있음.
모달 대화 상자 생성
-
.showModal()
메서드를 사용하여 모달 대화 상자를 여는 예제. Esc
키 또는 대화 상자 내의 "Close" 버튼으로 닫을 수 있음.
대화 상자의 반환 값 처리
-
<dialog>
요소의 returnValue
를 사용하는 예제. 폼을 사용하여 모달 대화 상자를 닫을 수 있음.
필수 폼 입력이 있는 대화 상자 닫기
- 대화 상자 내부의 폼에 필수 입력이 있을 때,
formnovalidate
속성을 사용하여 닫을 수 있음.
대화 상자 애니메이션
-
<dialog>
요소의 display
속성을 애니메이션화하여 대화 상자를 애니메이션할 수 있음.
기술 요약
-
콘텐츠 카테고리: 흐름 콘텐츠, 섹션 루트
-
허용 콘텐츠: 흐름 콘텐츠
-
암시적 ARIA 역할: dialog
-
DOM 인터페이스:
HTMLDialogElement
사양
- HTML 표준 # the-dialog-element
브라우저 호환성
- 대부분의 주요 브라우저에서
<dialog>
요소와 open
속성을 완전히 지원함.
참고
-
HTMLDialogElement
인터페이스
-
HTMLDialogElement
의 close
및 cancel
이벤트
-
HTMLDialogElement
의 open
속성
- HTML 요소의
inert
글로벌 속성
- CSS
::backdrop
의사 요소