Curso de HTML / Estruturar uma página com elementos semânticos
Os elementos HTML semânticos descrevem a função de cada parte de uma página. Use nav para a navegação principal, main para o conteúdo principal da página e article para um conteúdo autônomo. Esses papéis permanecem significativos mesmo quando o layout visual muda.
O que significa cada elemento de região?
headerapresenta uma página ou uma seção. Pode conter o nome do site, um título ou uma navegação.navreúne os principais links de navegação. Um grupo não precisa denavsimplesmente porque contém links.maincontém o conteúdo principal único da página. Um documento normalmente tem uma única região visívelmain.articleé adequado para um artigo ou narrativa independente.sectiondivide o conteúdo por assunto e geralmente deve ter um título que identifique seu assunto.asidecontém informações complementares indiretamente relacionadas ao conteúdo principal.footercontém informações de conclusão para uma página ou seção.
Estes elementos por si só não determinam sua disposição na tela. Use aside porque o conteúdo é adicional, não porque você quer uma barra lateral; use CSS para determinar sua posição. Da mesma forma, a marcação semântica sozinha não garante acessibilidade nem melhores classificações nos mecanismos de busca. O conteúdo real, os títulos e a ordem de leitura devem corresponder aos papéis dos elementos.
Criar uma página completa com regiões semânticas
O exemplo a seguir é um documento HTML completo. Os links de navegação da página apontam para regiões no mesmo arquivo, então você pode salvar e executar o exemplo sem criar outra página. Escolha os níveis de títulos após dividir as regiões seguindo Títulos e Parágrafos.
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Plantas de primavera | Pequeno Jardim</title>
</head>
<body>
<header>
<p>Pequeno Jardim</p>
<nav aria-label="Nesta página">
<a href="#article">Ler o artigo</a>
<a href="#sunlight">Necessidades de luz solar</a>
</nav>
</header>
<main>
<article id="article">
<h1>Plantas para cultivar na primavera</h1>
<section id="sunlight">
<h2>Necessidades de luz solar</h2>
<p>As necessidades de luz variam de acordo com as plantas.</p>
</section>
</article>
<aside>
<p>Verifique a data das últimas geadas em sua região antes de plantar.</p>
</aside>
</main>
<footer>
<p>Guia Pequeno Jardim</p>
</footer>
</body>
</html>
Salve o código com o nome index.html e abra-o em um navegador. O nome do site, a navegação, o artigo, a nota complementar e o rodapé aparecem aproximadamente de cima para baixo. Selecionar “Necessidades de luz solar” permite ir para a seção porque href="#sunlight" corresponde a id="sunlight". Se você quiser que a nota fique ao lado do artigo, adicione um layout CSS em vez de mudar o significado do HTML. O h1 no código é o título do documento de exemplo, não outro título neste tutorial.
Quando você deve usar section ou article?
Um artigo de blog pode se sustentar por si próprio e constitui um bom candidato para article. Neste artigo, tópicos como « O que você precisa » e « Etapas » podem cada um formar um section. Um contêiner usado apenas para uma borda ou uma cor de fundo não precisa de um papel semântico; um div pode ser mais apropriado. Você também não precisa encapsular cada título e parágrafo em um section quando sua hierarquia já está clara. Para um contêiner que serve apenas para agrupar elementos para estilo, use os critérios de Quando usar div e span.
header e footer podem pertencer a um article individual assim como à página inteira. Uma lista de artigos de notícias que podem ser compreendidos independentemente pode conter um article por artigo. Decida com base no papel do conteúdo, e não no nome do elemento ou em sua aparência padrão. Consulte a referência de elementos HTML no MDN para as definições dos elementos.
Escolher elementos para o mesmo conteúdo
| Conteúdo | Elemento candidato | Razão |
|---|---|---|
| Um artigo sobre uma planta que faz sentido independentemente | article |
Conteúdo autônomo com seu próprio título e explicação |
| Sol e rega neste artigo | section |
Os tópicos organizam o artigo e têm títulos identificadores |
| Um contêiner em torno de dois cartões para estilo | div |
É um alvo de estilo em vez de um novo tópico ou um artigo autônomo |
Quando uma página contém tanto a navegação do site quanto a navegação dentro de um artigo, diferencie as duas áreas de navegação com nomes significativos. Este fragmento identifica seus diferentes objetivos.
<nav aria-label="Navegação do site">
<a href="index.html">Início</a>
<a href="about.html">Apresentação</a>
</nav>
<nav aria-label="Seções deste artigo">
<a href="#sunlight">Luz</a>
<a href="#watering">Rega</a>
</nav>
Verifique se os nomes dos arquivos e os identificadores dos fragmentos correspondem aos destinos reais. aria-label fornece um nome acessível para a área de navegação; ele não cria automaticamente um cabeçalho de menu visível.
As diretrizes WAI do W3C sobre rotulagem de regiões explicam como os nomes distinguem regiões com funções semelhantes.
Verifique a estrutura do documento
Leia os títulos, o menu e o conteúdo principal na ordem do documento, mesmo que sua posição na tela pareça correta. Evite múltiplos main visíveis, contêineres section sem título e sem assunto real, e aside usados apenas para forçar uma posição lateral. Uma estrutura significativa deve sempre fazer sentido antes de adicionar CSS.




