Sobes.tech
Junior

Quais são as diferenças entre HTML5, HTML4.01 e XHTML 1.0?

sobes.tech IA

Resposta da IA

O HTML5 amplia as capacidades do HTML4.01 com tags semânticos (<nav>, <article>, <aside>), novos tipos de entrada para formulários (email, date, range), suporte multimédia nativo (<video>, <audio>), APIs para trabalho offline (Service Worker, Cache Storage) e armazenamento local (localStorage, sessionStorage), bem como uma API para websockets. A sintaxe do HTML5 é mais flexível, permitindo omitir algumas tags de encerramento e atributos em certos casos.

O XHTML 1.0 é uma reformulação do HTML 4.01 como uma aplicação XML. A principal diferença é uma sintaxe mais rigorosa: todas as tags devem ser fechadas (incluindo auto-fechadas como <br />), todos os atributos devem estar entre aspas, e os nomes de tags e atributos são sensíveis a maiúsculas e minúsculas. O objetivo era criar uma sintaxe mais estruturada e válida para melhor compatibilidade com parsers XML. No entanto, na prática, a maioria dos navegadores tratava XHTML como HTML, ignorando as regras estritas se o documento não fosse enviado com o tipo MIME application/xhtml+xml.

Comparação em tabela:

Característica HTML4.01 XHTML 1.0 HTML5
Sintaxe Mais flexível Rígida (baseada em XML) Mais flexível que XHTML, estruturada
Fecho de tags Nem sempre necessário Sempre necessário (<br />, <img>) Nem sempre necessário (<p>, <li>, etc.)
Caso das letras Insensível Sensível Insensível
Aspas nos atributos Nem sempre necessárias Sempre necessárias Nem sempre necessárias em certos casos
Suporte multimédia Requer plugins Requer plugins Nativo (<video>, <audio>)
Tags semânticas Menos (<div>, <span>) Semelhante ao HTML4.01 Mais (<nav>, <article>, <aside>)
Novas APIs Limitadas Limitadas WebSocket, Local Storage, Canvas, SVG
Suporte offline Praticamente ausente Praticamente ausente Cache API, Service Worker
Tipo MIME text/html application/xhtml+xml (estrito), text/html (como HTML) text/html
Extensibilidade Limitada Baseada em XML Através de API e elementos personalizados (futuro)

Exemplo de sintaxe:

<!-- HTML 4.01 -->
<p>Parágrafo.
<img src="image.jpg" alt=Imagem>
<!-- XHTML 1.0 -->
<p>Parágrafo.</p>
<img src="image.jpg" alt="Imagem" />
<!-- HTML5 -->
<p>Parágrafo.
<img src="image.jpg" alt="Imagem">

O HTML5 tornou-se o padrão de facto para o desenvolvimento web, combinando a flexibilidade do HTML4.01 com novas capacidades e herdando parcialmente as ideias de rigor do XHTML, focando na compatibilidade.