HTML · 22 template과 반복 콘텐츠
단계: 접근성 검토와 카드 통합 · 편집 가능한 예제 · 저장 ID: html-step-22
목표와 학습 후 역량
- 카드 3개가 표시되고 중복 id가 없다.
- 각 label 클릭이 해당 카드 입력에 포커스를 준다.
선수 지식
21단위 「iframe과 포함 콘텐츠 경계」의 결과물과 실험 기록
핵심 개념과 설명
비활성 템플릿
template 안의 내용은 바로 표시되지 않습니다. content를 복제해 문서에 삽입할 수 있습니다.
식별자 중복
복제한 노드에 같은 id가 남으면 연결이 모호해집니다. label과 설명 id도 함께 갱신해야 합니다.
실습 준비
예제 화면의 실행 범위 안내를 먼저 확인하세요. 다음은 과제를 별도 프로젝트로 확장할 때의 준비 환경입니다. 별도 로컬 프로젝트에서 직접 구현하고 브라우저 개발자 도구로 확인하세요. 별도 폴더에 HTML과 필요한 이미지·미디어 파일을 직접 준비하고 로컬 HTTP 서버로 여세요. Elements·접근성 패널과 실제 키보드 조작으로 확인합니다.
연결된 예제는 출발점입니다. 아래 과제 전체가 완성된 코드는 아니며, 예제의 지원 범위를 넘는 작업은 별도 프로젝트에서 수행하세요.
실습 과제
- template.html 파일에 카드 3개와 각 카드의 입력 label 조건을 준비하세요.
- 학습 카드 template를 만들고 최소 JS로 3개 복제하며 id와 연결 속성을 갱신하세요.
- 카드 3개와 각 카드의 입력 label 조건으로 실행하세요. 확인할 결과: 카드 3개가 표시되고 중복 id가 없다. 각 label 클릭이 해당 카드 입력에 포커스를 준다. 예상과 실제 결과는 구분해 기록하세요.
관찰할 변수
| 변수 | 기준 조건 | 바꿀 조건 | 예상할 변화·검증 가설 |
|---|---|---|---|
| 복제 id | 동일 id 유지 | 고유 접미사 | 실행 전 가설: 각 label이 자기 입력을 가리킬 것이다. 다른 조건은 고정하고 실행 후 실제 결과를 따로 기록합니다. |
표의 예상은 측정 결과가 아닙니다. 한 번에 한 조건만 바꾸고 실제 결과가 다르면 원인을 기록하세요.
완료 조건
- 카드 3개가 표시되고 중복 id가 없다.
- 각 label 클릭이 해당 카드 입력에 포커스를 준다.
자가 점검
- template 내용은 처음부터 접근성 트리에 있나요?
- 복제 시 어떤 참조 속성도 바꿔야 하나요?
공식 참고
연결된 예제와 실행 범위
보조 코드가 template을 3회 복제하고 for/id를 고유 접미사로 연결합니다. 소스의 template 내용을 바꿔보세요. Shadow DOM에서 문서 body/html 선택자를 범위화합니다. @media는 외부 미리보기 viewport에 반응하며 폭 슬라이더는 컨테이너만 변경합니다. 네트워크·폼 이동·iframe 실행은 제한됩니다.
원본 코드·기록은 자동으로 덮어쓰지 않습니다. 기존 예제를 초기화할 때도 필기는 유지됩니다.
다음 학습
이전: iframe과 포함 콘텐츠 경계 · 다음: 스크립트 로딩과 문서 파싱