앞서 'HTML을 Semantic하게 작성해야 하는 이유'와 '검색최적화의 연관성'에 대해 알아보았다. 그럼 HTML과 CSS라는 서로 다른 언어에서 비주얼적으로 동일한 동작을 구현하는 경우 어떤걸 써야할까?
<img>
vs CSS background-image
<img>
로 직접 마크업 한다.<img>
태그를 쓰는 경우<img>
태그를 써서 HTML이 찾을 수 있도록 하면 HTML 문서에 있는 정보는 유저가 바로 읽을 수 있다. 결론, HTML img 태그는 이미지 컨텐츠가 정보를 담고 있고, 처리 속도나 퍼포먼스 측면이 좋아야 할 때 쓰고, 정보성이 없고 스타일링을 위한 요소라면 background-image를 쓴다.
"이 이미지가 사용자가 컨텐츠를 이해하는데 도움이 되는 요소인가?"를 질문해보자. '그렇다!'면 HTML의 img 태그를, 그렇지 않다면 CSS의 background-image로 처리한다.
'어떤 태그를 쓸 것인가'의 질문은 Semantic Tag를 쓰고, Semantic Web을 구현하는 것과도 관련이 있다.
Semantic은 '의미론적인'이라는 뜻으로 웹과 태그를 구성한다는 것은 의미론적인 태그를 써서 의미론적인 웹을 구성한다는 것이다.
예를 들어, HTML에서 구획을 나누고 그룹핑하는<div>
와 <span>
의 경우 무의미한 태그라고 볼 수 있다. 이렇게 무의미한 태그만 남발하다보니 웹이 거대해지고 복잡해지면 컴퓨터의 효율적인 일처리가 어려워진다.
그래서 Semantic Tag, 즉 의미가 있는 태그 <header>, <nav>, <footer>
로 한 번에 봐도 어떤 성격의 컨텐츠를 담고 있는지 알 수 있는 태그를 써주면 태그를 써주었을 뿐인데 컴퓨터가 알아서 섹션을 나누고 이해해버리는 원샷원킬의 놀라운 일이 생긴다.
그렇기 때문에 코드를 짜는 개발자는 무의미한 코드로 화면에 구현해내는 것만을 목표로 하는 것이 아니라, 사용자 경험을 고려해 '시멘틱 웹을 구현하기 위해 어떤 태그를 쓸 것이며, 내 사이트의 사용자가 조금 더 편리한 경험을 하게 하려면 어떻게 해야 할까?'를 염두해 두어야 한다. 생각하며 개발하자!
관련 포스팅
출처: https://blog.px-lab.com/html-img-tag-vs-css-background-image/