Sobes.tech
Junior

What are the differences between HTML5, HTML4.01, and XHTML 1.0?

sobes.tech AI

Answer from AI

HTML5 extends the capabilities of HTML4.01 with semantic tags (<nav>, <article>, <aside>), new input types for forms (email, date, range), support for multimedia without plugins (<video>, <audio>), APIs for offline work (Service Worker, Cache Storage), and local storage (localStorage, sessionStorage), as well as APIs for web sockets. The HTML5 syntax is more flexible, allowing omission of certain closing tags and attributes in specific cases.

XHTML 1.0 is a reformulation of HTML 4.01 as an XML application. The main difference is a stricter syntax: all tags must be closed (including self-closing ones like <br />), all attributes must be in quotes, and tag and attribute names are case-sensitive. The goal was to create a more structured and valid syntax for better compatibility with XML parsers. However, in practice, most browsers treated XHTML as HTML, ignoring strict rules if the document was not served with the MIME type application/xhtml+xml.

Comparison table:

Feature HTML4.01 XHTML 1.0 HTML5
Syntax More flexible Strict (XML-based) More flexible than XHTML but structured
Tag closing Not always required Always required (<br />, <img>) Not always required (<p>, <li>, etc.)
Case sensitivity Insensitive Sensitive Insensitive
Attribute quotes Not always required Always required Not always required in certain cases
Media support Requires plugins Requires plugins Native (<video>, <audio>)
Semantic tags Fewer (<div>, <span>) Similar to HTML4.01 More (<nav>, <article>, <aside>)
New APIs Limited Limited WebSocket, Local Storage, Canvas, SVG
Offline support Almost absent Almost absent Cache API, Service Worker
MIME type text/html application/xhtml+xml (strict), text/html (as HTML) text/html
Extensibility Limited XML-based Through APIs and custom elements (future)

Example syntax:

<!-- HTML 4.01 -->
<p>Paragraph.
<img src="image.jpg" alt=Image>
<!-- XHTML 1.0 -->
<p>Paragraph.</p>
<img src="image.jpg" alt="Image" />
<!-- HTML5 -->
<p>Paragraph.
<img src="image.jpg" alt="Image">

HTML5 has become the de facto standard for web development, combining the flexibility of HTML4.01 with new features and partially inheriting the strictness ideas from XHTML, while focusing on compatibility.