Desenvolvimento - CSS

Tutorial XHTML

Este tutorial tem por objetivo descrever o que é, para que serve e porque adotar a linguagem de marcação XHTML, apresentando seus aspectos estruturais e semânticos, bem como ressaltando as vantagens do seu uso.

por Maurício Samy Silva



Objetivo

Este tutorial tem por objetivo descrever o que é, para que serve e porque adotar a linguagem de marcação XHTML, apresentando seus aspectos estruturais e semânticos, bem como ressaltando as vantagens do seu uso.

De onde veio XHTML ?

Todas as línguagens de marcação da web são baseadas em SGML, uma metalínguagem complexa e complicada projetada para máquinas com a finalidade de servir de base para criação de outras linguagens. O SGML foi usado criar XML (Extensible Markup Language), também uma metalinguagem, porém bem mais simples.

Com XML você cria suas próprias tags e atributos para escrever seu documento web. Isto significa que é você quem cria sua linguagem de marcação. XHTML foi criado dentro deste conceito e por isso é uma aplicação XML. As tags e atributos do XHTML foram criadas ("inventadas") aproveitando-se as nossas conhecidas tags e atributos do HTML 4.01 e suas regras.

Conclui-se que ao usar XHTML, estamos escrevendo um código XML, onde as tags e atributos já estão definidas e isto proporciona todos os benefícios de XML sem as complicações e complexidade do SGML.

XHTML é uma linguagem de marcação bastante familiar para quem conhece HTML e a transformação de um documento existente de HTML para XHTML é uma tarefa bem simples, como veremos adiante.

Qual a finalidade do XHTML ?

XHTML é a sigla em inglês para EXtensible HyperText Markup Language que em português resulta em Linguagem de Marcação para Hipertexto Extensível (arghhh), uma aplicação XML, escrita para substituir o HTML e nada mais é do que um HTML "puro, claro e limpo".

Vantagens de se usar XHTML

Enumeram-se várias e efetivas vantagens de se usar XHTML nos novos documentos web produzidos ou migrar os documentos atuais escritos em HTML. E, dentre elas destaca-se em primeiro plano a compatibilidade da linguagem XHTML com as futuras aplicações de usuários, garantindo desde já que as criações XHTML conservar-se-ão estáveis por longos anos. A tendência é a de que futuras versões de brownsers e agentes de usuários em geral, deixem de suportar elementos e atributos já em desuso ("deprecated") segundo as recomendações da W3C, bem assim como antigos e ultrapassados esquemas e esboços do HTML.

XHTML é a linguagem da web do futuro desde já a disposição de projetistas e desenvolvedores web.

XHTML é um código consistente que dispensa uso de "truques" e "hacks" para contornar "bugs".

Editar um código XHTML existente é uma tarefa bem simples por se tratar de uma escrita limpa e evidente.

O tempo de carga de uma página XHTML é mais rápido pois os browsers tem a interpretar uma página limpa sem ter que interpretar e decidir sobre renderização de erros de código.

Uma página XHTML é mais acessível aos browsers e aplicações de usuário padrão incrementando a interopebilidade e a portabilidade dos documentos web.

Uma página XHTML é totalmente compatível com todas as aplicações de usuários para HTML, antigas e já ultrapassadas.

XHTML é uma "Web Standard"

XHTML 1.0 é uma recomendação da W3C e sua versão atual data de 26 de janeiro de 2000. Isto significa que trata-se de uma linguagem estável, oficialmente especificada pela W3C, tendo sido projetada e revisada pelos seus membros e é uma "Web Standard".

Neste link uma tradução para o português da Recomendação W3C de 26 de janeiro de 2000, revisada em 1 de agosto de 2002 - XHTML™ 1.0 The Extensible HyperText Markup Language (Segunda Edição) - Uma reformulação do HTML 4 em XML 1.0

As diferenças entre XHTML e HTML

As principais diferenças são:

  • todas as tags devem ser escritas em letras minúsculas;
  • os elementos (tags) devem estar convenientemente aninhados;
  • os documentos devem ser bem formados;
  • o uso de tags de fechamento é obrigatório;
  • elementos vazios devem ser fechados;
  • diferenças para os atributos.

Todas as tags devem ser escritas em letras minúsculas

A metalinguagem XML é case-sensitive (sensível ao tamanho da letra). De vez que XHTML é uma aplicação XML, também é case-sensitive.

Errado:
<DIV> <P>Aqui um texto de parágrafo</P> </DIV>

Certo:
<div> <p>Aqui um texto de parágrafo</p> </div>

Os elementos (tags) devem estar convenientemente aninhados

Errado:
<div><em><p>Aqui um texto de parágrafo em negrito</em></p></div>

Certo:
<div><em><p>Aqui um texto de parágrafo</p></em></div>

Os documentos devem ser bem formados

Um documento diz-se bem formado quando está estruturado de acordo com as regras definidas nas Recomendações para XML 1.0 [ XML ].
Todos os elementos XHTML devem estar corretamente aninhados dentro do elemento raiz <html>.

A estrutura básica do documento deve ser conforme abaixo:

<html>
<head>
...
</head>
<body>
...
</body>
</html>

O uso de tags de fechamento é obrigatório

Em HTML é permitido para determinados elementos, omitir-se a tag de fechamento. XML não permite omissão de qualquer tag de fechamento. Todos os elementos, excetuados aqueles vazios declarados nas DTD, tem que ter tag de fechamento. Os elementos vazios declarados nas DTD podem ter tag de fechamento ou usar uma abreviação para elemento vazio conforme veremos adiante.

Errado:
<p>Este é um parágrafo.<p>Este é outro parágrafo.

Certo:
<p>Este é um parágrafo.</p><p>Este é outro parágrafo.</p>

Elementos vazios devem ser fechados

Elementos vazios devem ter uma tag de fechamento ou a tag de abertura deve terminar com />. Como exemplo, <br /> ou <hr></hr>.

Errado: Elementos vazios sem terminação
<br>
<hr>
<img src="imagem.gif" alt="minha imagem ">

Certo:Elementos vazios com terminação
<br />
<hr />
<img src="imagem.gif" alt="minhaimagem " />

Diferenças para os atributos

  • Nomes de atributos

    Assim como as tags, os atributos também são case-sensitive então deve-se escrever nomes de atributos em minúsculas;

    Errado:
    <td ROWSPAN="3">

    Certo:
    <td rowspan="3">

  • Valores de atributos

    Os valores de atributos devem estar entre "aspas";

    Errado:
    <td rowspan=3>

    Certo:
    <td rowspan="3">

  • Sintaxe dos atributos

    A sintaxe para atributos deve ser escrita por completo;

    Errado:
    <input checked />

    Certo:
    <input checked="checked" />

    Abaixo uma lista dos atributos que se enquadram nesta recomendação

    compact compact="compact"
    checked checked="checked"
    declare declare="declare"
    readonly readonly="readonly"
    disabled disabled="disabled"
    selected selected="selected"
    defer defer="defer"
    ismap ismap="ismap"
    nohref nohref="nohref"
    noshade noshade="noshade"
    nowrap nowrap="nowrap"
    multiple multiple="multiple"
    noresize noresize="noresize"
  • Os atributos id e name;

    O HTML 4 define o atributo name para os elementos a, applet, form, frame, iframe, img, e map. HTML 4 também introduziu o atribute id. Ambos estes atributos foram projetados para serem usados como identificadores.

    Em XML, os identificadores são do tipo ID, e poderá existir somente um atributo do tipo ID por elemento. Assim, em XHTML 1.0 o atributo id é definido como do tipo ID. Com o objetivo de certificar-se que os documentos XHTML 1.0 são documentos XML bem estruturados, DEVEM usar o atributo id ao definir identificadores para os elementos listados acima.

    Notar que em XHTML 1.0, o atributo name destes elementos está formalmente em desuso e será excluido nas versões futuras de XHTML.

    Errado:
    <img src="imagem.gif" name="minha_imagem" />

    Certo:
    <img src="imagem.gif" id="minha_imagem" />

    Nota: Por razões de compatibilidade com brownsers antigos você pode usar ambos os atributos como abaixo:

    <img src="imagem.gif" id="minha_imagem" name="minha_imagem" />

  • O atributo lang;

    Use o atributo lang para definir a lingua em que foi escrito o documento e o atributo xml:lang para definir a lingua em que foi escrita a versão do XML

Pontos de âncoras

Em HTML para criar um ponto de âncora, associamos um nome ao elemento <a> :

<p><a name="topo" >Início</a > do parágrafo..bla...</p>

Em XHTML adicione o atributo id:

<p><a id="topo" name="topo" >Início</a > do parágrafo..bla...</p>

O atributo alt para imagens

Em XHTML o uso do atributo alt para imagens é obrigatório

<img src="imagem.gif" alt ="minha_imagem " />

Se tratar-se de uma imagem decorativa pode-se usar o atributo alt vazio:

<img src="imagem.gif" alt =" " />

Separadores de comentários

Não use a clássica sequência ------, como separador para comentários. Use por exemplo a sequência ====.

Errado:
<!-- Aqui --- começa o menu -->
<!-- -------------------------------------------- -->
código XHTML do menu

Certo:
<!-- Aqui === começa o menu -->
<!-- ========================== -->
código XHTML do menu

Códigos gerados por editores

Cuidado com os códigos gerados por editores!

Este é um código gerado por editor: onMouseOver=function() não válido em XHTML

Errado:
onMouseOver=function()

Certo:
onmouseover=function()

Caracter & (ampersand)

Codifique o & ( e comercial)

Errado:
Comércio & Exportação

Certo:
Comércio &amp; Exportação

Elementos obrigatórios em um documento XHTML

É obrigatório a declaração do DOCTYPE assim como a existências dos elementos <html> <head> <title> e <body>

Um modelo mínimo de documento XHTML é conforme abaixo:

<!DOCTYPE bla..bla..bla> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Título do odcumento</title> 
</head>
<body> 
Conteúdo do documento
</body> </html>

A declaração DOCTYPE não faz parte da marcação XHTML e como tal não é também um elemento, razão pela qual não há necessidade de tag de fechamento.

Para que serve o DOCTYPE ?

A Definição do tipo de documento (Document Type Definitions DTD) especifica qual é a sintaxe SGML usada no documento. A DTD é usada pelas aplicações SGML ( tais como HTML ) para especificar as regras que se aplicam a linguagem de marcação usada no documento e também definir o conjunto de elementose entidades válidas naquela linguagem. Assim uma DTD para um documento XHTML descreve com precisão a sintaxe e a gramática da linguagem de marcação XHTML.

O DOCTYPE deve ser sempre a primeira declaração em um documento web.

Os tipos de DOCTYPE

São três os tipos de DOCTYPE para XHTML:

  • STRICT
  • TRANSITIONAL
  • FRAMESET
XHTML 1.0 Strict <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Esta é a mais rígida das declarações. Os documentos XHTML no modo Strict não admitem qualquer item de formatação dentro dos elementos e nem elementos em desuso "deprecated" segundo as recomendações da W3C. São indicados para uso com folhas de estilo em cascata, com marcação totalmente independente da apresentação

XHTML 1.0 Transitional <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Esta declaração permite uma maior flexibilidade e é indicada para documentos que ainda utilizem elementos em desuso ("deprecated"), regras de apresentação embutidas em tags e também para documentos destinados a exibição em brownsers sem suporte para CSS. Não admite qualquer tipo de marcação para frames.

XHTML 1.0 Frameset <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Esta declaração permite tudo da declaração transational e mais os elementos especificos para frames.

Validação do documento XHTML

W3C disponibiliza um validador gratuito para documentos XHTML. Ali, você digita a URL ou o caminho para o arquivo no seu HD e um robo analisa o documento fornecendo um relatório completo e detalhado das não conformidades por ventura existentes. É uma ferramenta excelente para você usar durante a elaboração ou migração do seu documento para XHTML. Serve como um verdadeiro revisor do código que você cria. Abaixo o link para o validador:

Link para o validador XHTML da W3C

Este é o selo da W3C para páginas projetadas em XHTML válido:
Valid XHTML 1.0!

Autor: Maurício Samy Silva
CSS para WebDesign
http://www.maujor.com

Maurício Samy Silva

Maurício Samy Silva - Desenvolvedor do site CSS para Web Design
e-mail do autor