패스트캠퍼스 강의를 정리한 내용입니다.
"The RED : 견고한 UI 설계를 위한 마크업 가이드 by 정찬명"
<title>
<h*>
*명세에는 구현되어 있으나, 브라우저 제조사가 오랜시간 HTML5 아웃라인 알고리즘을 구현하지 않았기 때문에 실무에 사용하는 것을 권장하지 않음
<body>
<blockquote>
<details>
<dialog>
<figure>
<fieldset>
<td>
<h1>A</h1>
<h2>B</h2>
<blockquote>
<h3>C</h3>
* HTML5 명세 의도
Depth가 A > B 로 출력 (blockquote 내부 접근 불가)
*브라우저/화면낭독기
Depth가 A > B > C 로 출력
개요의 범위를 명시적으로 지정하는 역할
Sectioning Tag 종류
<article>
: 기사, 본문, 맥락. 독릭접으로 배포 가능<aside>
: 페이지의 주요 내용이 아닌 부수적인 내용 (ex.배너, 연관 콘텐츠)<nav>
: 사이트의 주된 탐색 메뉴<section>
: 주제별로 나누거나 묶는 역할 HTML5에서 새롭게 추가된 명세
명시적 개요를 생성하는 개요 컨테이너
Sectioning Tag가 없으면 암시적 개요 형성
적절한 수준의 헤딩을 자식 요소로 사용해야 함
Sectioning Tag
<article>
vs<section>
주제별로 묶인 콘텐츠라는 점에서는 동일하지만, article 태그는 독립적으로 사용하더라도 하나의 완결된 형태의 콘텐츠로 간주할 수 있을 때 사용
<h1>A</h1>
<article>
<h1>B</h1>
<section>
<h1>C</h1>
</section>
</article>
* HTML5 명세 의도
Depth가 A > B > C 로 출력 (blockquote 내부 접근 불가)
*브라우저/화면낭독기
Depth가 A, B, C 로 출력
Check Point
"섹셔닝 요소를 적극 사용하되 아웃라인 알고리즘(섹셔닝 루트, 헤딩 수준 자동 보정) 명세에는 의존하지 말 것"
예제)
<h1>A</h1>
<article>
<h2>B</h2>
<section>
<h3>C</h3>
</section>
</article>
예제)
<h1>A</h1>
<h2>B</h2>
<h3>C</h3>
예제)
<body>
<p>A</p>
<article>
<h2>B</h2>
</article>
</body>
*h1 요소가 없이 h2 요소 바로 작성
예제)
<article>
<p>A</p>
<section>
<p>B</p>
</section>
</article>