eXtensible Hypertext Markup Language (abreviadoXHTML) é uma reformulação dalinguagem de marcaçãoHTML, combinada com as regras da linguagem de marcaçãoXML (tags), uma recomendação do W3C de janeiro de 2000, sucessora do HTML 4.01, objetivando a melhoria da exibição das páginasWeb em diversos dispositivos (televisão,palm,celular, etc), além da melhoraria daacessibilidade do conteúdo.
O HTML é derivado da linguagem de marcaçãoSGML (Standard Generalized Markup Language) criado por Tim Berners Lee (idealizador daWWW) para a exibição de documentos na Web. A evolução cronológica das linguagens é a seguinte:[1]
SGML → HTML 1.0 → HTML xx → XML → HTML 4.01 → XHTML (padrões internacionais daW3C, independentes de fabricantes de hardware ou software, sancionados pelas organizaçõesANSI eISO).[1]
A principal diferença entre XHTML e HTML, é que o primeiro é XML válido, enquanto o segundo possui uma sintaxe própria, mas ambos possuem sentido semântico. Para verificar se uma página foi construída corretamente no padrão XHTML, existem diversos validadores, como por exemplo: aW3C disponibiliza um validador online.[2]
O tipo de sintaxe de uma página Web (tipoMIME) é definida no cabeçalho HTTP com o códigoContent-Type: aplication/xhtml+xml, seguido por<html lang="pt-BR" xml:lang="pt-BR" xmlns="http://www.w3.org/1999/xhtml">.[3]
Na época do lançamento da tecnologia, considerava-se o XHTML como sendo o sucessor do HTML. Porém, está é uma recomendação separada; aW3C continua a recomendar o uso de XHTML 1.1, XHTML 1.0, e HTML 4.01, para publicação na web, assim como oHTML5.
Um exemplo simples de XHTML (observando dentro das tags <html></html>) seria:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><htmllang="pt-BR"xml:lang="pt-BR"xmlns="http://www.w3.org/1999/xhtml"><head><metaname="viewport"content="width=device-width, initial-scale=1"/><title>Título do Documento</title></head><body><formaction="."method="POST"><fieldset><legend>Dados para cadastro</legend><labelfor="name-input">Nome:</label><inputtype="text"name="name"id="name-input"/><labelfor="birth-input">Data de nascimento:</label><inputtype="date"name="birth"id="birth-input"/><button>Enviar</button></fieldset></form></body></html>
O código CSS que formataria este código XHTML seria:
A Recomendação XHTML original da W3C, XHTML 1.0, foi simplesmente uma reformulação do HTML 4.01 em XML. Existem três diferentes "DTDs" de XHTML 1.0, cada qual com equivalência a uma versão em HTML 4.01.
XHTML 1.0 Strict é o mesmo que HTML 4.01 Strict, mas seguindo regras desintaxe XML.
Declaração da XHTML 1.0 Strict:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><htmllang="pt-BR"xml:lang="pt-BR"xmlns="http://www.w3.org/1999/xhtml"><head><title>Título do Documento</title></head><body></body></html>
XHTML 1.0 Transitional é o mesmo que HTML 4.01 Transitional, mas segue as regras de sintaxe XML. Ele suporta tudo encontrado no XHTML 1.0 Strict, mas também permite o uso de vários elementos e atributos que são julgadospresencionais, para facilitar a transição de HTML 3.2 e mais recentes. Isso inclui<center>,<u>,<strike>, e<applet>.
Declaração da XHTML 1.0 Transitional:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmllang="pt-BR"xml:lang="pt-BR"xmlns="http://www.w3.org/1999/xhtml"><head><title>Título do Documento</title></head><body></body></html>
XHTML 1.0 Frameset: é o mesmo que HTML 4.01 Frameset, mas seguindo as regras de sintaxe XML. Ele permite a definição de umframeset HTML, uma prática comum em versões de HTML anteriores ao HTML 4.01.
Declaração da XHTML 1.0 Frameset:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"><htmllang="pt-BR"xml:lang="pt-BR"xmlns="http://www.w3.org/1999/xhtml"><head><title>Título do Documento</title></head><frameset></frameset></html>
A mais recente Recomendação XHTML da W3C é oXHTML 1.1: Module-based XHTML, que é uma reformulação do XHTML 1.0 Strict, com pequenas modificações, usando alguns módulos de um conjunto definido em Modularização de XHTML,[4] uma Recomendação W3C que cria uma modularização de frames, um padrão de módulos, e várias outras definições. Todas as ferramentas depreciadas de HTML, como elementos presencionais e framesets, e até mesmo os atributoslang e o atributo de âncorasname, que ainda eram permitidos no XHTML 1.0 Strict, foram removidos desta versão. A apresentação é controlada puramente pelasFolhas de Estilo em Cascata (CSS). Esta versão também permite suporte à marcação rubi, necessária para línguas do Extremo Oriente (especialmenteCJK).
Além da Modularização de XHTML permitir pequenas ferramentas XHTML serem reutilizadas por outras aplicações XML de uma maneira bem definida, e que o XHTML seja estendido para alguns propósitos, XHTML 1.1 adiciona o conceito de um documento "estritamente conformado": esses documentos definidos nos módulos requeridos para XHTML 1.1. Por exemplo, se um documento é estendido para usar o módulo XHTML Frames (frameset), ele também pode ser descrito como XHTML 1.1, mas nãoestritamente conforme o XHTML 1.1. Ao invés disso, ele deve ser descrito como um XHTML Host Language Conforming Document,[5] se a ferramenta for relevante e necessária.
Em2007, uma segunda edição do XHTML 1.1 está em desenvolvimento pela W3C Working Draft.
Em 10 de abril de2007, aFundação Mozilla,Apple Inc. eOpera Software propuseram[6] que o novo grupo de trabalho HTML daW3C adotasse oHTML5 doWHATWG como ponto de início de seu trabalho e, nomeá-lo como "HTML5". Em 9 de Maio de 2007, o grupo de trabalho HTML aceitou a proposta.[7] Em 22 de janeiro de 2008, o grupo publicou HTML5 como umWorking Draft.[8]
O HTML5 traça uma serialização paralela do XML, chamada XHTML5. Diferente do XHTML 2.0, este é compatível com XHTML 1.x.
XHTML Basic: Uma versão especial "light" do XHTML para serviços que não podem suportar os grandes e complicados dialetos XHTML, principalmentecelulares. Este deverá ser o substituto daWML eC-HTML.
XHTML Mobile Profile: Baseado em XHTML Basic, essaOMA tem como alvo celulares, devido ao fato de conter algumas ferramentas exclusivas para celulares do XHTML Basic.
XHTML+Voice: XHTML combinado comVoiceXML para suportar ambas visuais e sonoras interações.
Um documento XHTML que está em conformidade com uma especificação XHTML, é ditoválido. Validade garante consistência no código, que por sua vez facilita o processamento, mas não necessariamente garanterenderização consistente nos navegadores.!--*/
O XHTML é suportado na maioria dos navegadores modernos, como por exemplo: Firefox, Chrome, Safari, Opera,Internet Explorer suporta a partir da versão 9.[3]
Diversas bibliotecas deJavaScript não suportam XHTML, ou tem suporte limitado.[3]