시맨틱 태그 파헤쳐보기 (2)
현우
<!-- 블로그 포스트 목록 -->
<main>
<article> ← 이 포스트만 따로 읽어도 완결됨
<h2>시맨틱 HTML이란?</h2>
<p>...</p>
<section> ← 포스트 안의 특정 섹션 (댓글)
<h3>댓글</h3>
<article> ← 각 댓글도 독립적 콘텐츠
<p>좋은 글이에요</p>
</article>
</section>
</article>
</main><!-- 페이지 이동이 목적 → <a> -->
<a href="/posts/1">글 보러가기</a>
<!-- 동작 실행이 목적 → <button> -->
<button type="button" onclick="openModal()">상세보기</button>
<!-- 폼 제출 → <button type="submit"> -->
<button type="submit">저장</button><!-- datetime 속성으로 기계가 읽을 수 있는 형식을 제공 -->
<time datetime="2026-04-27">2026년 4월 27일</time>
<time datetime="2026-04-27T09:00">오전 9시</time>
<time datetime="PT2H30M">2시간 30분</time><!-- 좋은 예 — 계층이 논리적으로 내려간다 -->
<h1>제품 소개</h1>
<h2>주요 기능</h2>
<h3>빠른 처리 속도</h3>
<h3>높은 보안성</h3>
<h2>가격 안내</h2>
<!-- 나쁜 예 — 시각적 크기 조절 목적으로 계층을 건너뜀 -->
<h1>제품 소개</h1>
<h3>주요 기능</h3> ← h2를 건너뜀<!-- 불필요한 중복 — <nav>에 role="navigation"은 이미 내장되어 있다 -->
<nav role="navigation">...</nav>
<!-- 그냥 이렇게 쓰면 된다 -->
<nav>...</nav><article>
<header> ← generic role (banner 아님)
<h2>글 제목</h2>
<time datetime="2026-04-27">2026년 4월 27일</time>
</header>
<p>...</p>
<footer> ← generic role (contentinfo 아님)
<p>작성자: 김현우</p>
</footer>
</article>