HTML Semântico - Entendendo os elementos e suas funções
Introdução
Nos dias atuais, o HTML não apenas estrutura documentos para sites, mas também descreve o significado de todo o conteúdo presente nesses documentos por meio de tags semânticas, tornando-o mais claro tanto para desenvolvedores quanto para browsers. É como se estivesse falando para o navegador a sua função no código. Assim como, influencia diretamente ao SEO (Search Engine Optimization) e também colabora para a acessibilidade.
Antes de apresentar as principais tags semânticas incorporadas à linguagem HTML, devemos entender como era antes delas “existirem”.
O que é div?
Antes, utilizava-se somente <div>
para dividir todos os conteúdos, com id
como identificador e classes para estilizar. Isso era/é muito ruim para o site desenvolvido, pois o elemento <div>
não possui nenhum valor semântico, ele não representa nada para os navegadores e nem mecanismos de buscas, impactando de forma negativa o SEO, assim como, em alguns casos, acessibilidade.
Antes, a estrutura de um site era próximo disso:
<html>
<head>
<title>Tech Blog</title>
<meta name="description" content="" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="estilo.css" />
</head>
<body>
<div id="header"></div>
<div id="main">
<div id="section"></div>
</div>
<div id="footer">
<p>Tech Blog</p>
</div>
</body>
</html>
Certo, então quando utilizá-la?
A tag <div>
pode ser utilizada para agrupar elementos genéricos e/ou para fins de estilos, como algum objeto com uma cor específica. Assim como, deve ser utilizado somente quando não tiver outro elemento semântico, como os que serão apresentados a seguir.
Lembre-se: Usar a tag
<div>
, em casos como citado acima, não é algo ruim ou errado, pelo contrário, são importantíssimas e você sempre vai usar. Porém, se passar a usar de forma desnecessária, o site ficará cada vez mais complicado e menos semântico.
As tags do HTML Semântico
Elementos como <header>
, <main>
, <nav>
, <section>
, <article>
e <footer>
funcionam mais ou menos como elementos <div>
, porém, como citado anteriormente, eles são semânticos e “conversam” com o navegador. Eles fazem parte do “corpo” da página, onde cada um tem sua devida importância.
header
O <header>
representa o cabeçalho de uma página ou, até mesmo, de uma <section>
declarada no HTML. Podemos inserir elementos para representar imagens, logotipos, nome da página em destaque, título de artigo, parágrafos ou listas de navegação.
Observação: Podemos utilizar a tag
<header>
dentro de uma tag<main>
ou<section>
. Não podemos confundir a tag<header>
com a tag<head>
, que é a tag onde inserimos as características da página.
<header>
<h1>Título da página</h1>
<nav>
<ul>
<li>Lista de navegação</li>
</ul>
</nav>
</header>
main
A tag <main>
é onde colocamos o conteúdo principal da página, o conteúdo de maior relevância, sendo textos, imagens, links, seções, etc.
Essa tag facilitou muito a compreensão para leitores de tela, já que enfatiza o texto dentro da tag, deixando clara sua importância.
Observação: Para melhor perfomance e construção da página, só devemos ter uma tag
<main>
em cada página, pois a mesma deve apresentar apenas o conteúdo principal. Assim como, a mesma não pode ser filho dos elementos<article>
,<aside>
,<footer>
,<header>
, ou<nav>
.
<main>
<h1>Titulo</h1>
<p>Duis aute irure dolor in reprehenderit in voluptate...</p>
<section>
<h2>Subtítulo</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed...</p>
</section>
</main>
footer
Temos também a tag <footer>
que, como o próprio nome diz, representa um rodapé, como a área presente no final da página ou até mesmo rodapé para artigos.
Normalmente é utilizada para inserir a autoria da página, assim como, contatos em geral e data de criação de conteúdos.
<footer>
<p>Escrito por Kevin Tavares, Software Engineer no Elo7</p>
<p>Início do artigo em 31/10/2022</p>
</footer>
nav
A tag <nav>
faz referência à navegação do site. Usamos para menus interativos, como por exemplo menus que encaminham à página de “sobre” ou “produtos”. O <nav>
pode ser usado em qualquer momento na página, onde tenhamos agrupamento de links.
<nav>
<ul>
<li><a href="”#”">header</a></li>
<li><a href="”#”">main</a></li>
<li><a href="”#”">footer</a></li>
<li><a href="”#”">article</a></li>
</ul>
</nav>
section
A tag <section>
representa uma seção dentro de um documento, seja dentro de um texto ou conteúdo principal. Geralmente contém um título, o qual é definido por meio de um dos elementos entre <h1>
e <h6>
, dando ênfase ao seu conteúdo. Podemos utilizar o <section>
, por exemplo, para dividir os componentes de uma página. Assim como, podemos ter <section>
dentro de outra <section>
, dependendo da forma como é dividido o conteúdo.
Curiosidade: “Qual seria a diferença de uma <section>
para uma <div>
?”.
As <section>
conseguem separar os conteúdos de forma diferente das <div>
, pois ao utilizar um título <h1 a h6>
em uma <div>
não é permitido repetir o mesmo título para várias <div>
, pois os mecanismos de buscas ficariam “confusos” referente a qual seção eles pertecem, já que não há uma separação semântica. Já com a <section>
podemos utilizar o mesmo título, pois as mesmas separam seus conteúdos por seções e cada seção é independente. Portanto, quando pesquisado em mecanismos de busca, não se perdem informações.
<section>
<h2>HTML Semântico</h2>
<p>Aqui falaremos sobre a tag section.</p>
</section>
<section>
<h2>HTML Semântico</h2>
<p>
Na próxima falaremos sobre article, porém a seção com o mesmo título da
anterior, sem impactar no SEO :D.
</p>
</section>
article
A tag <article>
é usada para representar um artigo (posts de blogs, comentários de clientes, cards interativos). O conteúdo desta tag é independente de outro conteúdo da página, ou seja, é um conteúdo que faça sentido sozinho, por ele mesmo. Geralmente também é usado um título para essa tag.
<article>
<h3>Título do artigo 1</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ...
</p>
</article>
section e article, qual a diferença?
Os elementos <section>
e <article>
são conceitualmente similares e intercambiáveis. Com o que já foi abordado nesse artigo, observe:
- Um
<article>
tem como objetivo ser independentemente distribuível ou reutilizável. - Uma
<section>
é usada para um agrupamento de conteúdos.
Um exemplo no código:
<section>
<h2>Histórias novas</h2>
<section>
<h3>Tecnologia</h3>
<article>História 1</article>
<article>História 2</article>
<article>História 3</article>
</section>
<section>
<h3>Games</h3>
<article>História 1</article>
<article>História 2</article>
<article>História 3</article>
</section>
</section>
Conclusão
Nesse artigo tentamos abordar os assuntos básicos do HTML, explicando algumas vantagens do uso da semântica, as principais tags de uma página, suas respectivas funções e diferenças.
Agora que você já sabe a importância do que é HTML semântico, você pode começar a aprender mais sobre as tags (apresentamos 6, faltam 136 :D ) na documentação da MDN. É muito importante que você adote essa prática.
Com certeza vai proporcionar mais visitas ao seu site/projeto, melhorar o seu ranqueamento junto aos motores de busca e facilitar o entendimento e manutenção no seu próprio código.
E você, já conhecia sobre HTML semântico e suas tags? Tem utilizado no desenvolvimento do seu site? Conte para nós a sua experiência nos comentários!
Até a próxima!