Sections: seções do HTML5 – Parte 1

A estrutura de um site é dividida em diversas seções. Cada seção representa uma fatia do layout e também representa um grupo de conteúdo. Cada um destes grupos tem seu assunto específico. Nas minhas aulas eu costumava apresentar estas seções como seções mestres ou seções principais. Normalmente para descrever em HTML estas seções, usávamos a

A estrutura de um site é dividida em diversas seções. Cada seção representa uma fatia do layout e também representa um grupo de conteúdo. Cada um destes grupos tem seu assunto específico. Nas minhas aulas eu costumava apresentar estas seções como seções mestres ou seções principais. Normalmente para descrever em HTML estas seções, usávamos a tag div. O elemento div é um elemento genérico que serve para criar DIVISÕES. Estas divisões não tinham significado semântico nenhum, não levavam nenhum tipo de informação “extra”, mas a nível de formatação resolvia nosso problema. Nós agrupávamos o conteúdo das seções e conseguíamos distinguir cada seção nomeando os divs com CLASSES e IDs e assim formatávamos o código com CSS.

A nível de semântica ou seja, para entregar informação útil para o usuário, sistemas ou aplicações, estas seções não eram eficazes. Não havia como distinguir um cabeçalho de um rodaé. Não era possível diferenciá-los pelo nome porque cada desenvolvedor dava seu próprio nome para o elemento: alguns chamavam de header, outro cabeçalhos, outros testeira (acredite se quiser) e assim por diante. Por estes motivos que no HTML5 as seções ganharam mais significado.

Cada coisa em seu lugar

As novas seções também fazem divisões, mas além disso elas servem significado para o código. Neste novo cenário o div perdeu um pouco o foco e será utilizado em detalhes. Ele ficou bem mais genérico que antes. Essa é uma das razões que o div é coisa do passado. Abaixo veja uma breve descrição dos novos elementos de seção do HTML5:

HEADER
Define um grupo de títulos ou o cabeçalho de uma determinada seção.
FOOTER
Define o rodapé das seções ou da página.
NAV
Define um grupo ou bloco de links de navegação.
ASIDE
Define um elemento lateral que pode conter blocos de navegação (NAVs), citações e outras informações que costumamos colocar em uma sidebar.
ARTICLE
Define a área onde há um artigo, texto, redação, conteúdo e etc…
SECTION
Define um bloco ou um grupo de um assunto específico. É importante entender que a section agrupa diversos elementos que tenham relação entre si. Por exemplo, se há uma área no site que há links, conteúdo, imagens e etc de um assunto em comum, você agrupará esses elementos com uma section. Nesse caso, ele entrou no lugar daquele div que fazíamos para dividir grandes blocos de assuntos em comum.

E o div? Exemplo.

E onde entra o div? O Div servirá para agruparmos elementos dentro destes sections ou fazer outros detalhes que não precisam de significado semântico, apenas visual.

Imagine que exista uma section chamada NOTÍCIAS:

Dentro dessa section há 3 colunas de assuntos diversos ou randomizados que dividem as chamadas.

Suponha que cada uma colunas seja de um assunto diferente, por exemplo: Esporte, Política e Educação. Aí nesse caso não usaríamos div mas sim outras sections:

Você poderia utilizar DIVs com os IDs? Sim, claro. Mas lembre-se que o DIV é genérico, para os sistemas de busca, leitores de tela, aplicações e etc, os DIVs não indicam seções de conteúdo, mas o elemento section sim.

Há uma polêmica ainda com algumas ordens nas estruturas. No exemplo acima colocamos sections em vez de divs. Poderíamos ter colocado article dentro da section principal. Não vou entrar no que é mais certo ou no que é mais semântico porque neste contexto, ainda é subjetivo. Há alguns conceitos que iremos amadurecer durante um tempo. Contudo, temos que começar por algum lugar e claro, devemos estudar as melhores formas tanto para o projeto quanto para a semântica do código.

Você já deve ter lido isso aqui, mas lembre-se: semântica é o nome do jogo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *