역할 · 문서 구조
role="article"
기사, 게시글, 댓글처럼 그것만 따로 떼어도 완결되는 콘텐츠 묶음을 나타냅니다.
중급HTML 요소 우선
한눈에 보기
- 분류
- 문서 구조
- 대응 HTML
<article>- 이름 정하는 방법
- 작성자 (author)
- 이름 필수
- 아니요
- 필수 상위 요소
- 없음
- 필수 하위 요소
- 없음
설명
article은 문서·페이지·사이트 안에서 독립적으로 배포하거나 재사용할 수 있는 구성 단위입니다. 뉴스 기사, 블로그 글, 포럼 게시물, 사용자 댓글, 상품 카드 등이 해당합니다. 랜드마크는 아니지만 여러 화면낭독기가 article 단위 이동이나 안내를 제공합니다.
HTML과의 관계
<article>가 대응합니다. 댓글처럼 원글과 관련된 글은 원글 <article> 안에 다시 <article>을 넣어 중첩할 수 있습니다.
feed 안의 article
feed 안에서는 각 article이 포커스를 받을 수 있게(tabindex="0" 또는 -1) 만들고, 전체 개수를 알면 aria-setsize·aria-posinset으로 위치를 알립니다. 이 두 속성은 feed 안의 article에서만 의미가 있습니다.
주의할 점
- article 안에 제목(
<h2>등)을 두어 내용을 알 수 있게 하고, 필요하면aria-labelledby로 그 제목을 이름으로 연결합니다. - 단순한 레이아웃 박스에는 article을 쓰지 않습니다.
함께 쓰는 속성
지원 속성
전역 속성(이름·설명 등)은 모든 역할에 쓸 수 있어 생략했습니다.
사용 예
게시글과 댓글
<article aria-labelledby="post-h">
<h2 id="post-h">여름 독서 프로그램 안내</h2>
<p>…</p>
<section aria-label="댓글">
<article>
<p><b>김하늘</b>: 신청 방법이 궁금해요.</p>
</article>
</section>
</article>피드 안의 article
<div role="feed" aria-busy="false" aria-label="새 소식">
<article tabindex="0" aria-posinset="1" aria-setsize="20" aria-labelledby="n1">
<h3 id="n1">도서관 휴관 안내</h3>…
</article>
</div>화면낭독기에서는
| 상황 | 들리는 안내 (예) |
|---|---|
| 글 영역으로 이동 | 여름 독서 프로그램 안내, 아티클 |
사용 지침
이렇게 쓰세요
- 독립적으로 의미가 통하는 콘텐츠 단위에
<article>을 씁니다. - article 안에 제목을 둡니다.
이렇게 쓰지 마세요
- 장식용 박스나 레이아웃 칸에 article을 쓰지 않습니다.
- feed 밖의 article에
aria-posinset/aria-setsize를 쓰지 않습니다.