• 홈
  • 폼요소

input

* 전송 값: name="emailSplit" = 아이디@도메인 (아이디·도메인 필드는 합산용)

텍스트 콘텐츠와 배경 간의 명도 대비는 4.5 대 1 이상이어야 한다.

명도대비 체크 사이트 : contrast

textarea

* 굵게·목록·링크 등 서식이 필요하면 에디터 (TinyMCE, CKEditor 5) 가이드를 참고하세요. 서식이 없으면 이 textarea가 접근성에 더 유리합니다.

select

radio

다음 중 웹 콘텐츠 접근성 지침에서 권장하는 대체 텍스트 작성 방법으로 가장 적절한 것은?

게시물 선택 라디오 예시 A
선택 제목 (테이블 A)
테이블 A - 게시물 1
테이블 A - 게시물 2
게시물 선택 라디오 예시 B
선택 제목 (테이블 B)
테이블 B - 게시물 1
테이블 B - 게시물 2

checkbox

게시물 선택 체크박스 예시 A
제목 (테이블 A)
테이블 A - 게시물 1
테이블 A - 게시물 2
게시물 선택 체크박스 예시 B
제목 (테이블 B)
테이블 B - 게시물 1
테이블 B - 게시물 2

toggle (checkbox)

라벨 왼쪽 · 가로 나열

라벨 숨김 (스위치만 · blank)

calendar

* readonly — 값은 제출됨 · 수정 불가 · 달력 아이콘 표시 유지

* 네이티브 type="date"는 OS/브라우저 UI에 의존합니다. 키보드·스크린리더 품질이 환경마다 달라질 수 있습니다.

* UI를 통일하고 접근성을 강화하려면 아래 Duet Date Picker를 사용하세요.

calendar (외부 · Duet Date Picker)

날짜 선택 라이브러리 비교 (접근성)
라이브러리 특징 이 킷
Duet Date Picker WCAG 2.1·키보드·스크린리더를 목표로 제작. W3C Date Picker Dialog 패턴에 가깝음. 경량 Web Component. 채택
Flatpickr 국내·해외에서 가장 흔함. 기능 풍부하지만 ARIA·포커스는 프로젝트에서 보완하는 경우가 많음. 참고
네이티브 date 의존성 없음. 브라우저마다 UI·접근성 편차. 위 섹션

* 신규: value 비움(또는 생략)
* identifier = 내부 날짜 입력의 id · label for와 동일 값
* 커스텀 요소에 id를 달아도 라벨과 연결되지 않음 → identifier 사용
* JS: document.querySelector('duet-date-picker[identifier="duetDate"]')

* 수정 화면: 이미 저장된 날짜를 value="YYYY-MM-DD"에 넣음
* 사용자가 입력란·달력으로 다시 선택하면 값이 바뀜
* JS: el.value = '2026-07-17'

* min / max는 ISO YYYY-MM-DD

* 비활성 지정: <duet-date-picker … disabled>
* JS: element.disabled = true / false
* 입력·달력 버튼 비활성 · 달력 아이콘은 표시 유지

* Duet는 readonly 미지원 → 네이티브 type="date" + readonly 사용
* 값은 폼에 제출됨 · 직접 수정·피커 조작은 불가 · 달력 아이콘은 표시 유지
* Duet로 막으려면 disabled 사용 (단, disabled 값은 보통 미제출)

* Duet는 일자(YYYY-MM-DD) 전용입니다. 년도만·월까지·시간 포함은 아래 패턴을 사용하세요.

* 값: YYYY · 네이티브 select (키보드·스크린리더에 유리)

* 값: YYYY-MM · 네이티브 type="month"

발간 연월 (월까지 · select)

* 숨은 필드 값: YYYY-MM (연·월 모두 선택 시)

행사 일시 (날짜 + 시간)

* Duet(날짜) + 네이티브 type="time" · 합산 값: YYYY-MM-DDTHH:mm

행사 일시 (날짜 + 시간 · 비활성)

* 날짜·시간 각각 disabled (또는 fieldset disabled)
* 달력·시계 아이콘은 보이게 유지

* 비활성 지정: <input type="time" … disabled>
* 시계 아이콘은 표시 유지

* label for ↔ identifier (네이티브 id 역할)

* 일자 표시·전송: YYYY-MM-DD

* 키보드: Esc 닫기 · 화살표로 날짜 이동 · Enter/Space로 선택 (W3C 패턴)

* CSS: datepicker.css · JS: datepicker-a11y.js (module) · CDN theme

file

파일을 선택하세요.

파일을 이 영역에 끌어다 놓으세요

PDF, JPG, PNG · 최대 5MB

파일을 선택하세요.

* 키보드·스크린리더: 파일선택 버튼 사용 (드롭은 마우스 보조)

* 선택·드롭 후 이름칸의 X로 삭제 · 다중은 목록 각 항목 X + 이름칸 X(전체 삭제)

파일을 선택하세요. (여러 개 가능)

이미지를 끌어다 놓으세요 (여러 개 가능)

JPG, PNG, GIF · 파일당 최대 10MB

파일을 선택하세요. (여러 개 가능)
파일을 선택하세요.

* 종류: input[accept] · 용량: data-max-size="5MB" (또는 바이트 숫자)

* 드롭 사용: 클래스 file-drop + .file-drop-area + .file-msg

* 삭제: .file-remove + img/icon-x.svg · 다중은 .file-list

* 개인정보: 업로드·게시 전 파일 내용 확인 · 주민등록번호 등 마스킹 · 설문 폼은 다른 응답자 정보가 노출되지 않게 결과 공개·접근권한 설정

address

주소