Acorda pra Web!

Tecnologia que vai mudar nossas vidas, depois do café.

Quel tal não criar mais HTML?

Quantas vezes você não escreveu algo como <div class="header"> ou <div class="footer">?

O HTML nos fornece uma linguagem para definir aspectos bem raíz da formatação, mas ainda falta padronização na forma com a qual descrevemos elementos comuns do dia-a-dia.

Se cada um “inventasse” seu próprio HTML, talvez eu usasse <forte> ao invés de <strong> e <destaque> ao invés de <em>. É basicamente isso que estamos fazendo ao criar um <div class="conteudo"> ou <div class="post">.

Origami ModularCoisas como logotipo, nome do site, navegação, busca interna e conteúdo são elementos comuns entre muitas páginas da internet, embora cada autor diferente use uma maneira diferente de declarar esses elementos.

Quando digo que não devemos criar mais HTML, na verdade estou dizendo que já passou da hora de definirmos um padrão pra essas coisas tão comuns. Pra variar, teremos que radicalizar.

É muito comum ver sites com um <div id="sidebar"> pra agrupar um determinado conteúdo. Isso é errado, aquele conteúdo nem sempre poderá ser uma barra ao lado. Assim como headers nem sempre ficarão como cabeçalho e o mesmo para footers. Eu poderia definir um logotipo dentro do header e no dia seguinte querer colocar o mesmo no fim da página. E aí como fica?

Eu particularmente gosto da estrutura proposta pelo Andy Clarke e acho que devíamos criar módulos para o HTML. Isso além de nos fazer escrever menos iria padronizar a forma com a qual usamos o CSS, tornando os estilos modulares também. CSS modular não é uma novidade e já exige estruturação padronizada.

Devemos continuar escrevendo HTML, mas parar de inventar HTML novo. É uma idéia bem parecida com a dos microformatos, só que pra resolver um problemão genérico e não pequenos problemas específicos, quase um Megaformato.

Uma sugestão (baseada na proposta de Andy Clarke):

#container
Container da página
#branding
Usado para um cabeçalho ou banner com a “marca” da página.
#branding-logo
Logotipo
#branding-tagline
Uma pequena frase que define o site.
#nav or #navigation
Navegação
#nav-main
Navegação principal
#nav-section
Navegação dentro da seção atual
#nav-external
Páginas externas ao site.
#nav-supplementary or #nav-supp
Uma lista complementar de links que pode substituir o comum porém presentacional footer.
#nav-(qualquer coisa)
Uma lista de links qualquer, com nome qualquer.
#search
Relacionado à busca e resultados de busca
#search-input
Um formulário de busca
#search-output
Resultados de busca
#content
Usada para o conteúdo da página
#content-main
Área principal do conteúdo
#content-news
Notícias Relacionadas
#content-(qualquer coisa)
Outro tipo de conteúdo, pode ser #content-related para relacionado ou #content-quote para citações.
#siteinfo
Usado para informações relacionadas
#siteinfo-legal
Informação sobre copyright, etc.
#siteinfo-credits
Créditos

8 Respostas para “Quel tal não criar mais HTML?”

  1. Manoel Netto diz:

    Com o uso de microformats, esse tipo de regras impostas são desnecessárias e caem no vazio.

  2. Alexandre diz:

    Microformatos são pra resolver problemas específicos de semântica, como datas e informação pessoal. Uma página pode conter vários microformatos, no entanto terá sempre uma estrutura que engloba tudo.

    Acima de tudo, padronizar a forma com a qual estruturamos o HTML evita erros grosseiros como o exemplo do <div id="sidebar">, que mistura apresentação com conteúdo.

    Sugiro que, se souber inglês, leia essa excelente discussão iniciada por Eric Meyer sobre o assunto.

  3. Rafael Slonik diz:

    Hey! Porque fechou comentários naquele outro post? Sacanagem!

    E quanto ao assunto do post. Acredito que a padronização deve existir, mas quem deve produzí-la são as máquinas. Caso contrário, erros pequenos como de digitação poderiam ferrar com sites inteiros neste caso.

    A web semântica tem que dar às máquinas a capacidade de organização e recuperação de informação por elas próprias. Caso contrário caímos numa entropia, como no caso dos metadados.

  4. Camilo diz:

    Não concordo com a idéia.
    Acho que padronizar até o nome das divs é desnecessário.
    Até porque o povo não faz busca pelo código.

    Se eu coloco uma div chamada “sidebar”, esse nome tem algum significado pra mim, vou saber quando olhar de novo pro código.

    Se outro desenvolvedor for mexer no site ele vai saber olhar o HTML e entender onde fica cada coisa, mesmo com os nomes ‘pessoalmente’ escolhidos.

  5. Alexandre diz:

    Eu acho que padronizando fica ainda mais fácil pra um desenvolvedor conhecer o código do outro. Aliás, esse é um dos objetivos de qualquer tipo de padronização.

    Pensando de uma maneira ampla, se você colocar <div id="content-aux"> qualquer desenvolvedor que estiver acostumado com o padrão, vai reconhecer quando olhar para o código.

    Do ponto de vista do CSS somente, é meio inútil, mas a carga semântica para o HTML por exemplo é ótima.

    Se você olhar para o Web Applications 1.0 vai ver que já existem elementos sendo planejados com esse objetivo. O elemento nav, elemento aside e article.

    Como todo padrão, vai gerar dificuldades para alguns e facilidade para a maioria das pessoas.

  6. Carlos André Ferrari diz:

    em vez de <div id="sidebar"> eu costumo usar <div id="opcoes"> ou <div id="menu"> simples… é soh preservar a ideia do conteudo separado da apresentação…

    para quem ainda naum assistiu:
    http://www.youtube.com/watch?v=6gmP4nk0EOE

  7. Aguinelo Pedroso diz:

    Creio eu que XML é uma bela saida pra isso

  8. Pedro Rogério diz:

    Concordo com tudo que você disse, mas imagine se cada um criasse o seu HTML, como os browsers iriam entender isso, você usa forte, outro usa fonte-bem-grossa, outro, fonte-bem-fininha, aí já viu né!!!

Deixar um Comentário

XHTML: Você pode usar essas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>