Dotstore
Canais iMasters

Web Standards + CSS + HTML + Acessibilidade + Usabilidade + Desenvolvimento + Métricas + Arquitetura da Informação + SEO

HTML5 - Semântica, SEO e Organização

Olá, pessoal!

Fiquei feliz pela aceitação do artigo anterior e os bons debates que acabaram por surgir. Hoje darei início a uma coisa mais prática e menos teórica sobre o HTML5.

A primeira coisa que irei abordar são tags para organização e otimização em mecanismos de buscas (SEO), o que muda na estrutura de um site com os novos padrões de HTML.

Caso tenham alguma dúvida ou queiram conversar sobre o assunto, podem me encontrar no Twitter ou entrar em contato pelo meu site. Bem, vamos lá...

Estrutura Básica

Quando damos início à construção de um site em tableless, na estrutura básica, normalmente são utilizadas DIVs principais, como: topo/head, menu, conteudo/content/home/post, rodape/footer, coluna/sidebar/lateral e etc...

Exemplo que costumo usar:

<div class="topo">
</div>
<div class="menu">
</div>
<div class="conteudo">
</div>
<div class="rodape">
</div>

Costumo sempre usar a nomenclatura em português, para facilitar manutenções futuras por outros profissionais.

Com o HTML5, estas DIVs não serão mais necessárias. Teremos tags específicas para separarmos o nosso layout por partes. Que são elas: Header,  Article, Nav, Section, Footer e Aside.

As DIVs ficarão encarregadas apenas para posicionamento de conteúdo dentro de cada sessão e não mais para toda estrutura.

Exemplo de como ficará uma estrutura básica:

<header>
<h1>Logotipo da Empresa</h1>
</header>
<nav>
<ul>
<li>Página Inicial</li>
<li>Portfolio</li>
<li>Contato</li>
</ul>
</nav>
<article>
<section>
<h1>Nome da Notícia<h1> - Postado por <h2> Nome do Autor </h2>
<p><span> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean odio quam,dictum in sagittis a,cursus
sit amet enim. Nunc ante dolor, condimentum ut mattis eget, fringilla non urna. Nam ultricies
dolor ac felis scelerisque rhoncus. Nunc varius velit ac nulla aliquet at ullamcorper tellus vehicula.
Nulla tincidunt velit non tellus scelerisque vehicula. Praesent pellentesque aliquet arcu quis mattis.</span></p>
<div class="fotos">
<img class="fotoprincipal" src="imagem.jpg" />
<ul>
    <li><img src="thumb01" /></li>
    <li><img src="thumb02" /></li>
    <li><img src="thumb03" /></li>
</ul>
</div>
</section>
</article>
<aside>
<h1>Conheça a Empresa</h1>
<p><span> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean odio quam, dictum in.span></p>
<h1>Assine Nossa Newsletter</h1>
<p><span> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean odio quam, dictum in.span></p>
</aside>
<footer>
<h2>Copyright  - Todos os Direitos Reservados</h2>
<h1> Nome do Site </h1>
</footer>

Agora, vamos entender melhor o que fizemos:

  • Header: topo/cabeçalho do nosso site. Como padrão, hoje ele costuma ter o logotipo da empresa e informações normalmente fixas.
  • Nav: vem de navegação, seria para onde você pode ir/vir. Seria bacana se tivesse algum modo de vincular o link no elemento NAV com algum ARTICLE específico, fazendo no próprio HTML o comando de "menu ativo", não acham? Pelo que pesquisei e testei, não é possível. Mas vamos ver em futuras atualizações.
  • Article: seria o nosso conteúdo dinâmico, content/post. Dentro dele teríamos o conteúdo daquela página, dividido em sessões.
  • Section: as sessões dentro do Article, por exemplo, dentro da home temos sessões de: Notícias, Eventos, Galeria de fotos. É importante ressaltar que cada section pode ter um footer e um header próprio.
  • Aside: uma terceira coluna, com informações complementares ao conteúdo dentro do Article.
  • Footer: o rodapé do nosso site, onde normalmente vão os Copyrights, quem fez e menu secundário.

Veja nesta ilustração como seria dividido hoje um site com estas tags:

Observações importantes:

- Tags seqüenciais, como por exemplo de Títulos (h1, h2, h3, h4, h5 e h6) se adequarão automaticamente dentro de cada section, header, footer, nav e semelhantes. Sempre houve a preocupação com estas tags, agora você pode tratá-las a partir de cada sessão, e tanto o navegador como o mecanismo de busca irão se virar para fazer uma leitura correta do site, dando uma ordem de importância certa para os títulos.

- As DIVs não irão 'sumir', serão usadas mais para alinhamentos internos, como demonstrei no exemplo anterior, com a div "FOTOS". Servindo para posicionar os conteúdos dentro dos elementos principais.

Dúvidas, medos e preocupações

Na teoria são tudo mil maravilhas, mas e na prática? Serão novas TAGs para nos preocuparmos na hora de fazer um site crossbrowser.

Como será o comportamento destas tags? Elas aceitarão comandos de alinhamento, margens, bordas e etc? Alguns IEs mais antigos lêem de forma diferente alguns elementos, não aceitam HOVER, nem espaçamentos em alguns outros. Espero que isso não ocorra com estas tags e que sejam flexíveis em questão de estilização e posicionamento, em todos os browsers.

Já até imagino sites assim:

<div class="alinhamentoMenu">
    <nav>
    </nav>
</div>

Ou:

<nav>
    <div class="bordaMenu" style="width:100%; height:100%">
</div>
</nav>

Fazendo isso para corrigir problemas em alguns browsers. Espero realmente que isso não ocorra e que estas TAGs funcionem como devem funcionar.

Chega de milhares de DIVs para organização, dependendo de quem estruturou fica uma bagunça, ainda mais quando tem ajustes nos projetos, que o nome de cada DIV não condiz mais com sua função. Agora teremos o site devidamente separado!

Espero que tenham gostado do artigo, dentro de alguns dias falaremos sobre formulários em HTML5!

Vale a pena um agradecimento especial para a HostDime, que tem me dado um apoio gigantesco para produção destes artigos e apoiado o uso de novas tecnologias no mercado.


Comente também

16 Comentários

Daniel Henrique dos Santos
Daniel Henrique dos Santos

Gostei,tirei algumas duvidas

Flavio
Flavio

Valeu pelo artigo, e parabéns.

Vamos ver, quanto tempo demorará para colocarmos em prática esta nova estrutura.

Raviel Carvalho
Raviel Carvalho

Uma notícia triste!

Conforme previsões, o HTML5 vai ser 100% viável lá por 2022...

Ou seja, todos os sites já serão feitos nesta estrutura só neste ano, até lá vai ficar meio termo, tenso, não?

Leandro Senni
Leandro Senni

Abaixa o IE 6... com ele vai ter problemas!!!

Douglas
Douglas

Estou na Web desde 98. De lá pra cá, muita coisa mudou e é inegável que hoje temos uma internet muito mais concisa do ponto de vista do desenvolvedor graças a padronização. Hoje percebo que as coisas acontecem muito mais rapido que antes, mas a experiência indica que essa migração para HTML 5 vai ser demorada e um tanto frustrante, principalmente para aqueles que acreditam no discurso da Apple de que o HTML finalmente vai trazer recursos dinâmicos e mudar radicalmente a web que conhecemos.
O HTML 5 já é uma realidade, e temos aí figurões da Web o utilizando com algum sucesso, sendo para mim o maior expoente o YouTube. Mas com a dificuldade da Microsoft em se adaptar aos padrões, as diferenças entre os diferentes engines dos navegadores "queridos" ( para quem não sabe, está acontecendo uma guerra de formatos de vídeo agora mesmo), honestamente e principalmente otimista, creio no HTML 5 viável a partir de 2012 ou 2013.
Não vamos ser bobos como fomos em relação ao XHTML, pois acima disso tudo existe uma indústria que ora se use, ora diverge e essa conversa não tem fim.
Podem apostar, vai demorar... a menos que vocês tenham cacife e dinheiro para ficar montando versões de sites para diferentes visualizados. E o principal, tem a web móvel na parada (que também está a dez anos no papel, mas agora vai...). HTML5 compilando igual num Black Berry e no Internet Explorer.
Ah, mas vai demorar MUITO.... É depois do fim do mundo.

Ellen
Ellen

Gostei de sua apresentação quanto ao html5.

Rodrigo Dias
Rodrigo Dias

Muito boa a apresentação.
Realmente a idéia de vincular o link do NAV com um ARTICLE seria "mara"

Erick
Erick

Ótimo artigo....

Faltou um CSS junto pra gente ver (quem foi curioso como eu e copiou, colou, estudou e viu o "sitezinho" rodando) exatamente como ficaria a disposição dos elementos, como exemplo mesmo.

Aguardo o próximo com ansiedade......

Referente a aplicabilidade e padronização do HTML5, sinceramente ? Vivemos em um mundo capitalista. Na minha opinião, acho que deveria haver uma mega empresa (como a W3C) com recursos e PODER de obrigar as empresas desenvolvedoras de navegadores a utilizar um "motor" único, e que, como qualquer software, recebesse atualizações de tempos em tempos. Como o dinheiro manda, estas mesmas empresas que desenvolvem navegadores, putz, precisamos de uma tag nova com X finalidade, então encomendaremos a "WWWDefault" a criação destas tags no próximo update, e todos os outros navegadores terão de se atualizar automaticamente a esta nova tag, pois o "motor" será o mesmo.

Quanto ao tempo de uso para real aplicação deste novo standard, gente, relaxa, o mundo vai acabar em 2012 ! Rsrsrsrsrrsrrs ! Acho que até lá, não estará funcionando 100% !!!

Abraços.

Thiago Emanuel
Thiago Emanuel

Valeu pela explicação!

rodrigo
rodrigo

entao sem querer ser sacana
mas faltou fechar a tag <h1>nome da noticia </h1>

Thiago
Thiago

Então muito legal esse post,

Vamos ganhar muito relação a semântica por que a estrutura do HTML5 nos permite isso.

Vamus esperar os Browsers....rsr.....e o Tal do IE9

<a href="http:www.tkp.com.br">http:www.tkp.com.br</a>

Marcius
Marcius

Parabéns cara, gostei muito e esclareceu algumas coisas!!

Reinaldo Deprera
Reinaldo Deprera

Ta quase tudo errado nesse artigo.

Eu passei por aqui, pq tava googlando e estou com sono por isso vou ser breve:

- <section> JAMAIS deve ser usado dentro de <article>, é erro semântico. Ela define uma seção de conteúdo e não do site. Ou seja, numa página podemos ter várias <section> cada uma com nenhum ou vários <articles>
- <aside> NÂO é informações complementares NÂO. <aside> define conteúdo fora do escopo do site, tais como links patrocinados, banners e etc. Ou seja, é diferente. Nem todo conteúdo complementar está fora do escopo do site para merecer a propredade semântica que a tag <aside> representa
- <header> e <footer> também o autor tratou como se fossem meras tags estruturais e acabo cometendo o mesmo erro que as outras, ou seja, esqueceu da sua propriedade semântica. Elas não servem só para a estrutura de um cabeçalho ou rodapé de um layout de um site não. Elas devem ser usadas sempre que possível, uma vez (no caso do <footer> ou até várias vezes no caso do header, dentro dos elementos/tags <nav>,<section>, <article> e até no <aside>

De qualquer forma, o HTML 5 é novo e oa artigo do autor é de vanguarda. Portanto valeu a intenção e a dedicação. Apesar de erros de normas serem imperdoáveis, nesse caso não tem problema pq o HTML 5 é tão novo que tem coisa que ainda não ta nem definida.

Mas se puder corrige ai, afinal eu sem querer cai aqui e só de bate o olho na imagem do layout com as tags (mesmo nao lendo o artigo inteiro) já parei aqui para comentar. Imagina o que num vai ter de nego aprendendo ou buscando aprender apartir do seu artigo :)

Raviel Carvalho
Raviel Carvalho

Oi Amigo, tudo bem? Antes de mais nada, muito obrigado pelas observações.

Passo junto uma referência, direto do site da W3C, responsável pela padronização do HTML5.

http://www.w3.org/TR/html5-diff/

Junto com isso, já explico:

Article - Representa uma parte independente do conteúdo de um documento. Um artigo ou semelhante. Dentro de um mesmo artigo, podemos sim ter varias seções. Um artigo não é formado por uma única parte.

Aside - Representa um conteúdo ligeiramente relacionado com o resto da página.

Header - Trata-se do topo do site ou o topo de qualquer seção ou artigo. Ele da um conteúdo introdutório sobre o que esta presente.

Footer - Idem Header, porém informações complementares. Créditos e afins.

Espero que tenha ajudado e infelizmente não posso editar artigos já enviados.

Esta semântica de tags que mencionei esta válida de acordo com os padrões W3C. A importância das tags não são apenas estruturais, a parte de mecanismos de busca já reconhecem estas tags e lêem o conteúdo de forma correta.

Tenho uma experiência prática no assunto, pode ter certeza que funciona. Espero ter ajudado, grato!

Max Davis Lins
Max Davis Lins

Ótimo artigo! Bem explicativo, como você falou no artigo espero que essa nova semântica seja bem sucedida nos IEs da vida.

Junior
Junior

Concordo com Reinaldo Deprera em relação à 'section' e 'article' , isso esta errado.O artigo deve ser editado ou excluído .

Qual a sua opinião?

Comentários considerados ofensivos serão moderados.

Parceiros

IBM
PagSeguro
Internet Innovation
Dialhost
HostNet
Tecla
KingHost
DotStore
Dinamize