Сторінка з тегами на кшталт <br /> не обов’язково є XHTML. Якщо сервер віддає її як text/html, браузер застосовує правила HTML. Якщо як application/xhtml+xml — вмикається XML-обробка, і ті самі синтаксичні недоліки вже можуть зупинити розбір документа.
Головна різниця між HTML і XHTML — у правилах запису та обробки розмітки. А HTML 4, HTML5 і Living Standard описують іншу частину історії: розвиток самого стандарту. Офіційних наступних версій HTML 6 та HTML 7 станом на жовтень 2026 року немає.
З’ясуймо, що означає XHTML, які правила справді відрізняються та на що орієнтуватися для нового сайту.
Що таке XHTML і як він пов’язаний з HTML
HTML — мова гіпертекстової розмітки. Вона позначає структуру й призначення вмісту: заголовки, абзаци, навігацію, посилання, таблиці та форми. Браузер перетворює документ на дерево елементів — DOM — і використовує його для роботи зі сторінкою.
XHTML розшифровується як Extensible HyperText Markup Language. Історична специфікація XHTML 1.0 стала рекомендацією W3C 26 січня 2000 року. Вона переформулювала HTML 4 як застосування XML 1.0, зберігши зміст елементів і атрибутів HTML 4.
XML — окрема мова розмітки з вимогою правильно сформованого документа. Відкриті елементи потрібно закривати, вкладеність має бути узгодженою, а значення атрибутів — узятими в лапки. XHTML переніс ці вимоги на знайому веброзмітку.
Водночас XHTML 1.0 і XML-синтаксис сучасного HTML — не одна специфікація. Перший прив’язаний до HTML 4 і його DTD — формальних описів допустимої структури. Другий описаний у нинішньому стандарті HTML. Наявність <main> чи <video> у документі не робить їх елементами історичного XHTML 1.0.
Тому вислів «XHTML — це строгіший HTML» годиться як перше наближення. Для реального проєкту треба уточнити, про яку специфікацію й спосіб обробки йдеться.
Версії HTML: що й коли змінювалося
HTML розвивається від початку 1990-х. Його ранні можливості поступово оформлювали у специфікації: спершу за участю IETF, потім W3C, а згодом важливу роль перебрала WHATWG.
| Специфікація | Рік | Що варто пам’ятати |
|---|---|---|
| HTML 2.0 | 1995 | Формалізація базових можливостей раннього вебу в RFC 1866 |
| HTML 3.2 | 1997 | Узгодження поширених на той час можливостей розмітки |
| HTML 4.0 | 1997 | Розвиток підтримки стилів, сценаріїв, доступності та інтернаціоналізації |
| HTML 4.01 | 1999 | Виправлення й уточнення HTML 4.0 |
| XHTML 1.0 | 2000 | Переформулювання HTML 4 за правилами XML |
| HTML5 | 2014 | Рекомендація W3C із новими елементами та докладними правилами обробки |
| HTML 5.1 і 5.2 | 2016 і 2017 | Наступні нумеровані редакції W3C |
| HTML Living Standard | Оновлюється постійно | Актуальний стандарт, який підтримує WHATWG |
HTML 4.01 не слід подавати як момент появи всіх можливостей HTML 4. Підтримку стилів, сценаріїв та засобів доступності розвивав уже HTML 4.0, а редакція 4.01 виправляла попередню специфікацію.
У 2009 році W3C оголосив, що не планує продовжувати мандат робочої групи XHTML 2 після завершення року, й вирішив збільшити ресурси для HTML5. Це не означало миттєвої відмови браузерів від наявних XHTML-документів.
HTML5 став рекомендацією W3C 28 жовтня 2014 року. Водночас підхід Living Standard уже розвивався в WHATWG. Тож це не проста послідовність «спочатку завершили HTML5, а потім почали живий стандарт»: певний час існували паралельні підходи.
HTML і XHTML: відмінності синтаксису на прикладах
Ось фрагмент тіла звичайного HTML-документа:
<p>Текст<br>Другий рядок.</p>
<label><input type="checkbox" checked> Згода</label>В XML-синтаксисі відповідний фрагмент записують так:
<p>Текст<br />Другий рядок.</p>
<label><input type="checkbox" checked="checked" /> Згода</label>На екрані вони можуть виглядати однаково, але вимоги до запису різні.
| Правило | HTML-синтаксис | XML-синтаксис HTML |
|---|---|---|
| Регістр | Імена HTML-елементів нечутливі до регістру ASCII | Регістр має значення; назви HTML-елементів пишуть малими літерами |
| Значення атрибутів | У визначених випадках можна без лапок | Лапки обов’язкові |
| Логічний атрибут | Можна checked | Потрібне явне значення, наприклад checked="checked" |
| Порожній елемент | <br>, без закривального тега | <br /> або інший коректний XML-запис |
| Пропуск тегів | Окремі теги можна пропускати за визначених умов | Елементи мають бути явно закриті |
| Порушення синтаксису | Є визначені правила відновлення структури | Порушення правильної сформованості спричиняє XML-помилку |
Риска не закриває довільний HTML-елемент. У text/html записи <br> та <br /> позначають той самий порожній елемент. Риска в другому варіанті не має окремої дії. Натомість <div /> не замінює <div></div>: для звичайного HTML-елемента це некоректний спосіб закриття.
У XML порожній <div /> допустимий. Саме тому автоматичне перенесення правил між HTML і XML може змінити дерево документа.
Лапки й значення атрибутів — окрема вимога. HTML допускає <input type=text>, але в XML потрібне type="text". Для логічного атрибута недостатньо просто написати checked.
HTML також має правила вкладеності. Здатність браузера показати сторінку після помилки не робить розмітку правильною. Запис <p><strong>Текст</p></strong> порушує структуру, а XML-парсер його відхилить. У дозволених HTML-пропусків закривальних тегів інша природа: це частина синтаксису, а не помилка, яку браузер поблажливо виправив.
Для власного коду я б використовував малі літери й лапки в обох випадках. Це спрощує читання, але саме по собі не перемикає документ на XHTML.
Чим HTML5 відрізняється від HTML 4
HTML5 розширив набір засобів для вебсторінок і набагато докладніше описав поведінку браузерів. Зміни не зводяться до коротшого DOCTYPE.
Семантичні елементи. З’явилися header, nav, main, article, section і footer. Вони допомагають позначати призначення частин сторінки. Наприклад, nav описує навігаційний блок, а article — самостійний матеріал.
У HTML 4 теж була семантика: заголовки, абзаци, списки, таблиці. Тому казати, що до HTML5 її взагалі не існувало, неправильно. Нові елементи уточнили структуру там, де часто використовували універсальний div.
Мультимедіа. Елементи audio і video дали стандартний спосіб вбудовувати звук та відео без обов’язкового стороннього плагіна. Конкретні формати медіафайлів усе одно мають підтримуватися браузером.
Форми. Додалися типи полів на кшталт email, url, number і date, а також засоби перевірки введення. Браузерна перевірка допомагає користувачеві, але не замінює перевірку даних на сервері.
Обробка документа. Сучасний HTML має власний докладно визначений алгоритм побудови DOM. Це важливо для сумісності: різні браузери повинні узгоджено обробляти й проблемну розмітку.
HTML5 не є загальною назвою всього CSS, JavaScript та кожного нового браузерного API. Частина цих технологій розвивається в окремих стандартах.
Чи існують HTML 6 і HTML 7
Станом на жовтень 2026 року офіційних наступних версій HTML 6 та HTML 7 немає. Актуальний документ називається HTML Living Standard і постійно оновлюється.
Очікування наступного номера зрозуміле: були HTML 4, HTML5, HTML 5.1 і 5.2. Але нинішня модель не вимагає збирати всі нові можливості у великий випуск із черговою цифрою.
Якщо бачите перелік «нових тегів HTML 6», перевірте посилання на специфікацію. У матеріалі можуть змішуватися авторські прогнози, експерименти, вже наявні елементи або зовсім інші вебтехнології.
Не потрібно шукати спеціальний DOCTYPE для HTML 6 чи чекати появи HTML 7, щоб користуватися новими можливостями. Потрібно з’ясувати статус конкретної функції та підтримку в потрібних браузерах.
Що означає HTML Living Standard
Living Standard — модель безперервного розвитку специфікації. Правила уточнюють, помилки виправляють, нові можливості додають поступово. За підтримку HTML Living Standard відповідає WHATWG.
У 2019 році W3C і WHATWG погодили спільну роботу над єдиною версією HTML та DOM. Це важливе пояснення, чому старі нумеровані документи W3C не є основним орієнтиром для нової розробки.
Для роботи зручно відкрити HTML Living Standard у редакції для веброзробників. Вона прибирає частину подробиць, потрібних насамперед авторам браузерів. Практичні пояснення та таблиці сумісності можна шукати у довіднику MDN з HTML.
Включення можливості у стандарт не гарантує її однакової реалізації всюди. Перед використанням перевірте потрібні браузери, а для важливих функцій передбачте робочий варіант без нововведення.
Із цього не випливає, що весь старий сайт треба переписувати після кожної зміни специфікації. Важливі реальні проблеми: некоректна структура, несумісні функції, недоступні елементи керування або код, який стало складно підтримувати.
Коли потрібен XHTML і як перевірити Content-Type
Для звичайного нового сайту я б обрав HTML. Нинішній розділ WHATWG про XML-синтаксис прямо не рекомендує його використання й описує цей напрям як фактично непідтримуваний у сенсі подальшого розвитку можливостей. Це не означає, що браузери вже перестали відкривати такі документи.
Водночас XHTML не обмежується старими сайтами. У стандарті EPUB 3.3 XHTML content documents мають відповідати XML-синтаксису HTML. Тут формат визначається вимогами електронного видання, а не бажанням суворіше записати вебсторінку.
XML-подання також може бути потрібне наявним процесам перетворення документів, наприклад із використанням XML-інструментів. У такій системі змінювати спосіб обробки без перевірки залежностей не варто.
| Тип у відповіді сервера | Як обробляється документ |
|---|---|
text/html | HTML-парсером |
application/xhtml+xml | XML-парсером |
Щоб перевірити сторінку, отриману через HTTP, у Chrome або Edge:
- Відкрийте інструменти розробника та вкладку
Network. - Перезавантажте сторінку, щоб побачити її запит.
- Виберіть основний документ, а не зображення чи файл JavaScript.
- У
Headers → Response HeadersзнайдітьContent-Type.
Розширення .xhtml і запис у meta не замінюють цієї перевірки. Для HTTP-сторінки важливий фактично переданий тип документа.
В XML-поданні HTML-елементи також мають належати до правильного простору імен. Ось спрощений повний документ у XML-синтаксисі сучасного HTML:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
lang="uk" xml:lang="uk">
<head>
<title>XML-приклад</title>
</head>
<body>
<p>Текст<br />Продовження.</p>
</body>
</html>Цей приклад не є шаблоном історичного XHTML 1.0 із його DTD. Він показує XML-декларацію, простір імен XHTML і явне закриття елементів.
У темі WordPress можна зустріти <br />: такий стиль є й у правилах написання HTML для WordPress. Проте за text/html сторінка лишається HTML-документом. Переводити звичайний блог на XML лише через цей запис немає потреби.
Заради SEO я б зосередився на зрозумілій структурі, коректних метаданих і доступному вмісті. Додавання рисок до порожніх тегів цих завдань не розв’язує.
Який HTML вибрати для нового сайту та як перевірити розмітку
Для нової звичайної вебсторінки використовуйте HTML-синтаксис і чинні правила Living Standard. Базовий документ може виглядати так:
<!DOCTYPE html>
<html lang="uk">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Моя HTML-сторінка</title>
</head>
<body>
<main>
<h1>Заголовок сторінки</h1>
<p>Основний вміст.</p>
</main>
</body>
</html><!DOCTYPE html> потрібен для стандартного режиму відображення, а не для перемикання браузера на «версію 2014 року». Атрибут lang="uk" указує українську мову, meta charset — кодування, а main позначає основний вміст.
Якщо хочете пройти від коду до власного файла, скористайтеся інструкцією зі створення HTML-сторінки з нуля. Поточний матеріал пояснює відмінності стандартів, а та інструкція — як зберегти й відкрити першу сторінку.
- Перевірте вихідний документ і правильність вкладеності.
- Порівняйте його з DOM у браузері: парсер і JavaScript могли змінити структуру.
- Перевірте фактичний
Content-Type. - Пропустіть розмітку через Nu Html Checker.
- Окремо протестуйте форми, клавіатурну навігацію, сценарії та потрібні браузери.
Як знайти вихідний текст і поточне дерево елементів, показано в матеріалі про перегляд і редагування HTML-коду. Валідатор допомагає знайти помилки розмітки, але не замінює перевірку поведінки сторінки та її доступності.
Для старого HTML 4.01 або XHTML-проєкту почніть із конкретних залежностей і помилок. Самої заміни DOCTYPE чи HTTP-заголовка недостатньо для безпечної модернізації. Для нового сайту без XML-вимог орієнтиром залишається сучасний HTML.
