Tableless - Desenvolvimento inteligente com Padrões Web

13/07/2010
Artigos

HTML5 Diff

Um resumo do que mudou no HTML5 em comparação com o HTML4.

Por


O W3C mantém um documento que compara o HTML4 com as novidades do HTML5. São inúmeras mudanças em elementos mais conhecidos e também em outros elementos mais específicos, utilizados em aplicações e sistemas mais complexos. Sugiro que você leia este documento e o guarde como referência.

O HTML5 ainda é um rascunho. Ele está sendo discutido entre o WHATWG e o W3C. Diversos pontos podem ser modificados ainda, por isso é interessante que você entenda e fique por dentro das discussões para que você atualize seu código quando necessário.

Um dos grandes objetivos do HTML5 é que ele seja retrocompatível. Isso evita o retrabalho de código e faz com que a web retome o rumo da semântica e do código enxuto. Vamos às mudanças:

O elemento B passa a ter o mesmo nível semântico que um SPAN, mas ainda mantém o estilo de negrito no texto. Contudo, ele não dá nenhuma importância para o text marcado com ele.

O elemento I também passa a ser um SPAN. O texto continua sendo itálico e para usuários de leitores de tela, a voz utilizada é modificada para indicar ênfase. Isso pode ser útil para marcar frases em outros idiomas, termos técnicos e etc.

O interessante é que nestes dois casos houve apenas uma mudança semântica. Provavelmente você não precisará modificar códigos onde estes dois elementos são utilizados.

Voce utilizará o SMALL para fazer literalmente os “letras miúdas” de um documento legal, comentários gerais ou até mesmo aqueles pequenos comentários e dicas que colocamos em campos de formulários e etc.

O HR virou um parágrafo de quebra. Ou seja, ele passa a ter a mesma importância do parágrafo, mas em um nível temático para quebra de linha.

Os elementos abaixo foram descontinuados por que seus efeitos são apenas visuais:

  • basefont
  • big
  • center
  • font
  • s
  • strike
  • tt
  • u

Como já era conhecido por alguns, os inputs ganharam novos valores no atributo TYPE. Estes novos valores permitem que browsers e outros user-agents melhorem a experiência do usuário, mostrando calendários e permitindo integração com agenda de contatos e etc. Permite também que os dados possam ser submetidos para o servidor com um formato específico. Valores como TEL, URL e EMAIL já tem efeitos em smartphones como iPhone:

  • tel
  • search
  • url
  • email
  • datetime
  • date
  • month
  • week
  • time
  • datetime-local
  • number
  • range
  • color

Os elementos abaixo não foram incluídos na especificação porque não tiveram uso entre os desenvolvedores ou porque sua função foi substituída por outro elemento:

  • 1
    acronym

    não foi incluído porque criou um bocado de confusão entre os desenvolvedores que preferiram utilizar a tag

    1
    abbr

    .

  • 1
    applet

    ficou obsoleto em favor da tag

    1
    object

    .

  • 1
    isindex

    foi substituído pelo uso de form controls.

  • 1
    dir

    ficou obsoleto em favor da tag

    1
    ul

    .

Este atributos foram descontinuados porque modificam a formatação do elemento e suas funções são melhores controladas pelo CSS:

  • 1
    align

    como atributo da tag

    1
    caption

    ,

    1
    iframe

    ,

    1
    img

    ,

    1
    input

    ,

    1
    object

    ,

    1
    legend

    ,

    1
    table

    ,

    1
    hr

    ,

    1
    div

    ,

    1
    h1

    ,

    1
    h2

    ,

    1
    h3

    ,

    1
    h4

    ,

    1
    h5

    ,

    1
    h6

    ,

    1
    p

    ,

    1
    col

    ,

    1
    colgroup

    ,

    1
    tbody

    ,

    1
    td

    ,

    1
    tfoot

    ,

    1
    th

    ,

    1
    thead

    e

    1
    tr

    .

  • 1
    alink

    ,

    1
    link

    ,

    1
    text

    e

    1
    vlink

    como atributos da tag

    1
    body

    .

  • 1
    background

    como atributo da tag

    1
    body

    .

  • 1
    bgcolor

    como atributo da tag

    1
    table

    ,

    1
    tr

    ,

    1
    td

    ,

    1
    th

    e

    1
    body

    .

  • 1
    border

    como atributo da tag

    1
    table

    e

    1
    object

    .

  • 1
    cellpadding

    e

    1
    cellspacing

    como atributos da tag

    1
    table

    .

  • 1
    char

    e

    1
    charoff

    como atributos da tag

    1
    col

    ,

    1
    colgroup

    ,

    1
    tbody

    ,

    1
    td

    ,

    1
    tfoot

    ,

    1
    th

    ,

    1
    thead

    e

    1
    tr

    .

  • 1
    clear

    como atributo da tag

    1
    br

    .

  • 1
    compact

    como atributo da tag

    1
    dl

    ,

    1
    menu

    ,

    1
    ol

    e

    1
    ul

    .

  • 1
    frame

    como atributo da tag

    1
    table

    .

  • 1
    frameborder

    como atributo da tag

    1
    iframe

    .

  • 1
    height

    como atributo da tag

    1
    td

    e

    1
    th

    .

  • 1
    hspace

    e

    1
    vspace

    como atributos da tag

    1
    img

    e

    1
    object

    .

  • 1
    marginheight

    e

    1
    marginwidth

    como atributos da tag

    1
    iframe

    .

  • 1
    noshade

    como atributo da tag

    1
    hr

    .

  • 1
    nowrap

    como atributo da tag

    1
    td

    e

    1
    th

    .

  • 1
    rules

    como atributo da tag

    1
    table

    .

  • 1
    scrolling

    como atributo da tag

    1
    iframe

    .

  • 1
    size

    como atributo da tag

    1
    hr

    .

  • 1
    type

    como atributo da tag

    1
    li

    ,

    1
    ol

    e

    1
    ul

    .

  • 1
    valign

    como atributo da tag

    1
    col

    ,

    1
    colgroup

    ,

    1
    tbody

    ,

    1
    td

    ,

    1
    tfoot

    ,

    1
    th

    ,

    1
    thead

    e

    1
    tr

    .

  • 1
    width

    como atributo da tag

    1
    hr

    ,

    1
    table

    ,

    1
    td

    ,

    1
    th

    ,

    1
    col

    ,

    1
    colgroup

    e

    1
    pre

    .

Alguns atributos do HTML4 não são mais permitidos no HTML5. Se eles tiverem algum impacto negativo na compatibilidade de algum user-agent eles serão discutidos.

  • 1
    rev

    e

    1
    charset

    como atributos da tag

    1
    link

    e

    1
    a

    .

  • 1
    shape

    e

    1
    coords

    como atributos da tag

    1
    a

    .

  • 1
    longdesc

    como atributo da tag

    1
    img

    and

    1
    iframe

    .

  • 1
    target

    como atributo da tag

    1
    link

    .

  • 1
    nohref

    como atributo da tag

    1
    area

    .

  • 1
    profile

    como atributo da tag

    1
    head

    .

  • 1
    version

    como atributo da tag

    1
    html

    .

  • 1
    name

    como atributo da tag

    1
    img

    (use

    1
    id

    instead).

  • 1
    scheme

    como atributo da tag

    1
    meta

    .

  • 1
    archive

    ,

    1
    classid

    ,

    1
    codebase

    ,

    1
    codetype

    ,

    1
    declare

    e

    1
    standby

    como atributos da tag

    1
    object

    .

  • 1
    valuetype

    e

    1
    type

    como atributos da tag

    1
    param

    .

  • 1
    axis

    e

    1
    abbr

    como atributos da tag

    1
    td

    e

    1
    th

    .

  • 1
    scope

    como atributo da tag

    1
    td

    .

Há outras mudanças mais profundas, por isso sugiro que você leia esse documento inteiro: W3C HTML5 Diff.

Estes artigos também podem ajudar:

Por Diego Eis

Diego Eis criou o Tableless para disseminar os padrões web no Brasil. Como consultor já treinou equipes de empresas como Nokia, Globo.com, Yahoo! e iG. É palestrante e empreendedor.

http://twitter.com/diegoeis/

Veja os outros posts de

  • Pingback: Tweets that mention HTML5 Diff | Boas práticas de Desenvolvimento com Padrões Web -- Topsy.com

  • http://revolucao.etc.br/ Henrique C Pereira

    “O elemento B passa a ter o mesmo nível semântico que um SPAN, mas ainda mantém o estilo de negrito no texto. Contudo, ele não dá nenhuma importância para o text marcado com ele.”

    Em outro trecho:

    “Os elementos abaixo foram descontinuados por que seus efeitos são apenas visuais (…)”

    Não estou criticando o seu texto e sim o próprio HTML5. Não entendo a razão de voltarem com o <b> depois que todo mundo parou de usar isso. Acho essas contradições do HTML5 um pouco desanimador. O que acha disso?

  • http://twitter.com/diegoeis/ Diego Eis

    Grande Henrique!
    Todo mundo parou de usar? Acho que não. O que eu mais escuto dos desenvolvedores quando eles me veem utilizando STRONG no lugar de B é: O B não se usa mais? Porque?

    A ideia do HTML5 é que ele seja retrocompatível. Alguns elementos que foram descontinuados mas que ainda continuam sendo usados em sites antigos ou ainda por desenvolvedores tem agora sua função semântica reformulada, como no caso do elemento B.

    Antes o B não tinha nenhuma função semântica, apenas visual. No HTML5 ele ganha a mesma função semântica que o SPAN, mas com a vantagem de deixar o texto marcado em negrito.

  • Acelio

    Legal que o tableless tornou a se ativar. Ou eu que não recebia mais o RSS, sei lá…

    Estou vendo que a fonte do HTML5 vai ser aqui…

    Também vejo que vou ter que estudar novamente. Vinha usando o XHTML há muitos anos e não o HTML4.

    Agora vamos ter que setar mais tags via CSS e poluir mais o HTML com classes, para repor alguns comportamentos padrão, sejam eles visuais ou não, mas deixavam o HTML mais limpo e menos trabalho com CSS.
    Pode ser que padronize mais a renderização dos navegadores.

  • http://www.mendesites.com Thiago Mendes

    Muito bom artigo!

    qual os navegadores que suportam totalmente o html 5 ?

  • Heaven

    Por mim tirava a opção tel e adicionava a opcao mask, dando a referencia da mascara que quero que o input use, seria massa um text com suporte a mascara sem quer que apelar para javascript e css.

    Ou melhor que tivesse um atributo css somente para trabalhar com mascaras, isso sim seria útil.

  • Rafael TM

    Excelente artigo.

    Bom, tenho aqui o chrome 5 (acho), o FireFox 4 (lindo), o Opera 10.60 e Safari 5 que suportam o HTML5… não sei se totalmente, mas até agora tá indo bem.

    O IE9 ainda não saiu mais tenho plataform preview 3 aqui e od esempenho para as coisinha de midia do HTML5 me espantam, deixam o resto bem pra traz. O Chrome foi o que perdeu mais feio. O Dos outros o FF fica em segundo com bom desempenho e o opera tb tá muito bem, junto ao safari.

    Já em se tratandod e javascrip nos moldes antigos o PP3 ainda tá perdendo pro pessoal.

    Agora tenho uma dúvida, vc poderiam fazer um artigo sobre os editores web que suportam ou suportarão HTML5? Instalei o CS5 por causa da atualização do Dreamweaver pra HTML5, mas sinceramente, detestei. A adobe não melhorou em nada a interface dele desde a era macromedia e o modo design (uso só pra ver mesmo não pra trabalhar) tem muita discrepência do resultado em tela.

    Por hora fico com expression web.

  • Rafael TM

    Tiago.

    Vc pode ir de:

    safari 5
    chrome 5 ou 6
    FireFox 4 (to amando ele)
    Opera 10.6 (outro que curti)

    Internet explorer só o 9… tá demorando sair, mas pelo que tem sido mostrado nos plataform Previews ele vai ser muito robusto, mas muito mesmo.

  • Victor Brunner

    Thiago, só o IE que não suporta o html 5, os outros navegadores estão bem atualizados para as novas mudanças, variando pequenos detalhes de um para o outro.

    Mas já existe um hack que permite que o IE “fique compatívle” com o html 5.

    Também é preciso adicionar o atributo diplay block para alguma das novas tag.

    header,footer,article,section,hgroup,nav,figure{
    display:block;
    }

  • Rafael TM

    opppaaaaaaaaaaaaaaaaa

    Eu não entrava nesse site com o IE8 por ele não rodar ele com estilos e tudo mais, pelo fato do IE8 não dar suporte a quase nada (ou nada) do HTML5, já que esse site é feito em HTML5… porém hoje instalei um navegador chamado “the world” só pra testar e vi que ele roda… aí como ontem instalei uma nova versão do IE8, chamad versão pra redes sociais, pensei, vai que com essa atualização o IE8 roda… testei e rodou.

    uhuuuuu… agora vai ficar mais maneiro migrar pro HTML5 já que quem usa só IE não tem desculpa.

    Claro que não faço idéia de até onde vai esse suporte, mas só de rodar os recusos desse site já me anima muito.

  • Rafael TM

    PS: não consigo me decidir qual uso como padrão, se o FireFox 4 ou o opera 10.60… ambos excelentes.

    se bem que uso todos toda hora mesmo, hehehe…

  • http://KaraYstupido.blogspot,com Thúlio Jardim

    Eu já tinha um conhecimento à respeito. O texto ajudou mais a entender o que faltava saber. Eu às vezes uso sim o elemento “B”. É mais breve, útil em mensagens não importantes, quando se quer apenas um efeito visual.

  • Rafael TM

    O site está tendo problemas pra registrar os posts ou o opera 10 e Firefox 4 tão deixando tudo offline mesmo?

  • http://www.seyfertt.com Seyfertt

    O problema maior é a porcaria do IE no demais que venha o HTML5 de vez.