All Articles

Semantic HTML(시맨틱 HTML) 이란?

Semantic HTML 에서 semantic(시맨틱)이란 “의미적으로 연관이 있는” 것을 의미합니다. 즉 semantic HTML 은 각 HTML 태그가 포함하는 내용에 대한 정보를 제공한다는 것을 의미합니다.

예를 들어 div 태그와 span 태그는 포함되는 내용에 대한 어떠한 정보도 제공하지 못 하기 때문에 시맨틱 태그가 아닙니다. 그러나 header 태그와 footer 태그는 그 안에 포함될 내용을 어느정도 예측할 수 있기 때문에 시맨틱 태그에 해당됩니다. 이렇게 시맨틱 태그를 사용하여 웹을 구성하는 것은 다음과 같은 장점이 있습니다.

  • Accessibility: Semantic HTML 은 모바일 사용자나 장애가 있는 사용자의 접근성을 더 향상시켜 줍니다. 브라우저나 스크린 리더가 코드를 더 쉽게 interpret 할 수 있기 때문입니다.
  • SEO: Semantic HTML 은 SEO(Search Engine Optimization)을 향상시킴으로써 웹 페이지의 방문자 수를 늘릴 수 있습니다. SEO 가 좋을 수록 검색 엔진이 웹 사이트를 빠르게 식별할 수 있고 중요한 정보에 적절한 가중치를 부여할 수 있습니다.
  • Easy to Understand: Semantic HTML 은 또한 웹 사이트 소스코드의 가독성을 향상시켜 줍니다.

아래 그림은 Non-Semantic 태그와 Semantic 태그를 사용하여 구성된 페이지를 비교하고 있습니다.

Non-Semantic 태그와 Semantic 태그 비교

Semantic Tags

Semantic HTML 태그로는 다음과 같은 것들이 있습니다.

Header and Nav

웹 페이지 상단 혹은 측면에 링크들이 한데 모여있는 곳을 구성하는 데 사용하는 태그로 headernav 가 있습니다.

<header>
  <nav>
    <ul>
      <li><a href="#home">Home</a></li>
      <li><a href="#about">About</a></li>
    </ul>
  </nav>
</header>

header 태그와 nav 태그를 사용함으로써 가독성을 향상시킬 수 있습니다. nav 태그는 header 태그 안에서 사용될 수도 있고 홀로 사용될 수도 있습니다.

main 태그는 header , footer 태그와 분리되어 웹 페이지의 가장 핵심적인 내용을 포함합니다. div 대신 main 을 사용함으로써 브라우저가 중요한 부분을 빠르게 파악하도록 만듭니다.

footer 태그는 웹 페이지 하단에 contact, corpyright, terms of use 등의 정보를 포함합니다.

<main>
  <article>
    <h3>Baseball</h3>
    <p>
      The first game of baseball was played in Cooperstown, New York in the summer of 1839.
    </p>
  </article>
</main>
<footer>
  <p>Email me at example@gmail.com</p>
</footer>

Article and Section

section 태그는 소설의 챕터와 같이 서로 관계 있는 문서를 분리하거나 동일한 테마를 적용할 수 있는 내용을 포함합니다. article 태그는 독립적으로 설 수 있는 내용을 포함합니다. section 안에 article 이 포함되는 것이 일반적이지만 맥락에 따라 article 안에 section 이 포함될 수도 있습니다.

<section>
  <h2>Fun Facts About Cricket</h2>
  <article>
    <p>A single match of cricket can last up to 15 days.</p>
  </article>
</section>

Aside

aside 태그는 내용을 이해하는데 꼭 필요하진 않지만 부가적인 정보를 전달할 떄 사용됩니다. aside 태그는 articlesection 태그와 함께 주로 사용됩니다. aside 태그는 참고 문헌, 미주, 인용문 등을 포함합니다.

<article>
  <p>The first World Series was played between Pittsburgh and Boston in 1903 and was a nine-game series.</p>
</article>
<aside>
  <p>
   Babe Ruth once stated, “Heroes get remembered, but legends never die.”
  </p>
</aside>

Figure and Figcaption

figure 태그는 이미지나 비디오, 코드 스니펫 등과 같은 미디어를 포함할 수 있습니다. 이 때 캡션을 달아주기 위해 figcaption 태그를 사용할 수 있습니다. 일반적으로 figcaption 태그는 figure 태그 안에 포함됩니다.

<figure>
  <img src="overwatch.jpg">
  <figcaption>This picture shows characters from Overwatch.</figcaption>
</figure>

Audio

audio 태그는 웹 페이지에 오디오 콘텐츠를 포함할 때 사용할 수 있습니다.

<audio controls autoplay>
  <source src="iAmAnAudioFile.mp3" type="audio/mp3" >
</audio>

audio 태그 안에 source 태그를 추가하여 srctype 을 명시해주었습니다. type 은 꼭 명시해주지 않아도 되지만 브라우저가 지원할 수 있는지 빠르게 인식할 수 있어서 권장되고 있습니다.

audio 태그에 controls, autoplay 속성이 부여되었는데, 각 속성은 다음과 같은 기능을 합니다.

  • controls : 오디오의 재생, 중지, 볼륨 조절 등의 기능이 포함된 컨트롤러를 화면에 제공합니다.
  • autoplay : 자동적으로 재생합니다.

더 많은 속성들은 Mozila Web Document 에서 확인하실 수 있습니다.

Video and Embed

video 태그를 사용하면 웹 페이지에 비디오를 첨부할 수 있습니다.

<video src="coding.mp4" controls>
	Video not supported
</video>

video 태그에 텍스트를 포함 함으로써 브라우저가 동영상을 재생할 수 없을 경우를 처리할 수 있습니다.

embed 태그는 비디오, 오디오, GIF 등 어떤 미디어 콘텐츠도 포함할 수 있습니다. embed 태그는 스스로 닫느 태그(self-closing tag)입니다.

<embed src="download.gif"/>

Review

지금까지 semantic HTML 이 무엇이고 어떤 태그들이 있는지 간단히 살펴보았습니다. Semantic HTML 을 사용함으로써 코드의 가독성을 향상시키고 사용자 접근성 또한 높일 수 있습니다.

References