HTML часто сприймають як завершену технологію: є заголовки, посилання, зображення, форми — що тут ще можна вигадати? Поки JavaScript щороку отримує новий синтаксис, а CSS перетворюється майже на повноцінну мову програмування інтерфейсів, HTML начебто стоїть на місці.
Насправді HTML продовжує розвиватися. Просто тепер у нього немає традиційних версій на кшталт HTML 5, HTML 6 або HTML 7. WHATWG підтримує його як Living Standard — живий стандарт, який оновлюється безперервно. Тому фраза «HTML 2026» означає не окремий реліз, а стан стандарту та браузерної підтримки у 2026 році. Саме так сучасну модель розвитку HTML пояснює WHATWG у своєму FAQ.
Варто також уточнити термінологію. У HTML з’являються елементи, атрибути, правила вкладеності та парсингу. Властивості, або properties, переважно належать до DOM і JavaScript, а CSS properties — до CSS.
Отже, чи є про що писати у 2026 році? Так. Революції на рівні появи <video> або <canvas> не сталося, але HTML поступово забирає на себе завдання, для яких раніше доводилося писати JavaScript.
Що з підтримкою
Нові HTML-можливості перебувають на різних етапах готовності.
-
commandіcommandforуже можна використовувати в сучасних браузерах. -
closedbyдля<dialog>поки що краще застосовувати як прогресивне покращення. -
<selectedcontent>працює не в усіх браузерах і потребує fallback. -
loading="lazy"для<video>та<audio>уже входить до стандарту, але ще не став Baseline. -
<meta name="text-scale">залишається експериментальною можливістю. -
shadowrootslotassignmentорієнтований передусім на сучасні Web Components. -
controlsдля<img>уже описаний у стандарті, але конкретна поведінка залежить від браузера.
Діалоги без JavaScript: command і commandfor
Одна з головних тенденцій сучасного HTML — декларативна інтерактивність. Браузер отримує все більше можливостей самостійно відкривати, закривати та перемикати елементи.
Атрибути command і commandfor дозволяють пов’язати кнопку з діалогом або popover-елементом без обробника click.
<button commandfor="confirm-delete" command="show-modal">
Видалити запис
</button>
<dialog id="confirm-delete" closedby="any">
<h2>Видалити запис?</h2>
<p>Цю дію неможливо буде скасувати.</p>
<button
commandfor="confirm-delete"
command="close"
value="cancel">
Скасувати
</button>
<button
commandfor="confirm-delete"
command="close"
value="delete">
Видалити
</button>
</dialog>
commandfor містить id цільового елемента, а command описує дію. Для діалогів доступні команди show-modal, close і request-close.
Це вже не експеримент: підтримка command стала Baseline у грудні 2025 року, тому у 2026-му цю можливість можна розглядати як робочий інструмент. MDN підтверджує її міжбраузерну доступність.
Атрибут closedby="any" дозволяє закривати діалог кнопкою, клавішею Esc або натисканням поза його межами. Саме closedby і поведінка popover-елементів увійшли до напрямів Interop 2026, але цей атрибут поки що підтримується не всюди. Тому всередині діалогу все одно варто залишати явну кнопку закриття.
Новий елемент <selectedcontent> і справді кастомний <select>
Найпомітніший новий HTML-елемент, з яким веброзробники стикаються у 2026 році, — <selectedcontent>.
Раніше стандартний <select> було надзвичайно складно стилізувати. Якщо дизайнер вимагав іконки, підписи або нестандартний вигляд пунктів, розробники часто замінювали його конструкцією з <div> і великою кількістю JavaScript. Разом із цим доводилося самостійно відтворювати керування клавіатурою, фокус і доступність.
Тепер <select> може містити кнопку з <selectedcontent>, у яку браузер копіює вміст вибраного <option>.
<select name="city">
<button>
<selectedcontent></selectedcontent>
</button>
<option value="kyiv">
<span>🇺🇦</span>
<span>Київ</span>
<small>Україна</small>
</option>
<option value="warsaw">
<span>🇵🇱</span>
<span>Варшава</span>
<small>Польща</small>
</option>
</select>
Щоб увімкнути нову модель оформлення, використовується CSS:
select,
::picker(select) {
appearance: base-select;
}
Після цього список можна оформлювати через Grid, Flexbox, псевдоелементи ::picker-icon, ::checkmark та інші сучасні засоби CSS, зберігаючи нативну поведінку форми.
Проте Baseline у цієї можливості ще немає. <selectedcontent> підтримується Chrome, додається у Safari 27, але поки що не працює в усіх основних браузерах. Актуальний статус наведений у довіднику MDN, а Apple демонструє реалізацію для Safari 27 у матеріалі WWDC 2026.
Отже, кастомний <select> уже можна вивчати та застосовувати як progressive enhancement: у старому браузері користувач усе одно отримає звичайний працездатний список.
Ліниве завантаження <video> та <audio>
Одне зі справжніх доповнень HTML Living Standard 2026 року — атрибут loading для елементів <video> та <audio>.
<video
controls
loading="lazy"
preload="metadata"
poster="/images/course-cover.webp"
width="1280"
height="720">
<source src="/video/course.av1.mp4" type="video/mp4">
<source src="/video/course.webm" type="video/webm">
</video>
Значення loading="lazy" підказує браузеру не завантажувати медіафайл, доки елемент не наблизиться до видимої частини сторінки. Це особливо корисно для каталогів, стрічок і довгих сторінок із кількома відео.
loading і preload вирішують різні завдання:
-
loadingвизначає, коли починати завантаження; -
preloadпідказує, скільки даних отримати після його початку.
Коли встановлено loading="lazy", відкладене завантаження має пріоритет над preload.
Підтримку атрибута для медіа додали до HTML Living Standard, а Chrome увімкнув її у стабільному Chrome 148. В інших рушіях реалізація ще наздоганяє стандарт, тому це поки що прогресивне покращення, а не повна заміна інших стратегій оптимізації відео.
Масштабування тексту через <meta name="text-scale">
У Chrome 146 з’явився новий метатег:
<meta name="text-scale" content="scale">
Він дозволяє пов’язати базовий розмір шрифту сторінки із системними налаштуваннями користувача. Якщо людина збільшила текст в операційній системі або браузері, значення rem і em на сторінці також можуть масштабуватися відповідно.
Після підключення метатега не варто фіксувати розмір кореневого елемента:
html {
/* Не встановлюємо font-size: 16px */
}
body {
font-size: 1rem;
}
Це важливий крок у напрямі доступності, особливо на мобільних пристроях. Водночас розробник повинен перевірити інтерфейс при масштабуванні тексту до 200–300%: картки, кнопки та навігація не мають ламатися або обрізати контент.
Поки що text-scale залишається експериментальною можливістю з обмеженою підтримкою. Детальні рекомендації та попередження наведені у документації MDN, а перша стабільна реалізація з’явилася у Chrome 146.
Новий атрибут shadowrootslotassignment
У квітні 2026 року до HTML Living Standard додали shadowrootslotassignment — атрибут для декларативного Shadow DOM.
<article id="product-card">
<template
shadowrootmode="open"
shadowrootslotassignment="manual">
<header>
<slot id="title-slot"></slot>
</header>
</template>
<h2>Нова модель ноутбука</h2>
</article>
Значення manual вимикає автоматичне розподілення елементів за іменами слотів. Розробник може самостійно передати потрібні вузли через HTMLSlotElement.assign():
const card = document.querySelector("#product-card");
const slot = card.shadowRoot.querySelector("#title-slot");
const title = card.querySelector("h2");
slot.assign(title);
Це вузькоспеціалізована можливість, але вона важлива для серверного рендерингу та складних Web Components. Атрибут був доданий до стандарту у квітні 2026 року, після чого його підтримка з’явилася у Firefox 151 і Safari 27 beta.
Менші, але справжні зміни стандарту
У 2026 році HTML отримав ще кілька технічних доповнень.
controls для <img>
Тепер стандарт дозволяє написати:
<img
src="/images/large-map.avif"
alt="Детальна карта велосипедних маршрутів Києва"
controls>
Атрибут повідомляє браузеру, що він може показати власні елементи керування зображенням — наприклад, кнопку повноекранного перегляду. Конкретний інтерфейс залишається на розсуд браузера.
Для <img controls> обов’язково потрібен непорожній alt. Атрибут уже описаний у HTML Living Standard, але поки що не варто очікувати однакових кнопок і поведінки в усіх браузерах.
Нові значення modulepreload
<link rel="modulepreload"> тепер може використовувати as="style" і as="json":
<link
rel="modulepreload"
href="/modules/theme.css"
as="style">
<link
rel="modulepreload"
href="/data/catalog.json"
as="json">
Це потрібно для попереднього завантаження CSS- і JSON-модулів. Зміна була додана до HTML-стандарту в січні 2026 року, але її практична користь залежить від підтримки відповідних типів модулів у цільових браузерах.
Зміна правил HTML-парсера
У червні 2026 року стандарт навчив HTML-парсер розпізнавати XML-подібні processing instructions виду <?target data?> як окремі DOM-вузли, а не лише як помилкові коментарі.
Звичайним сайтам поки що не потрібно використовувати цей синтаксис. Він створює основу для майбутнього потокового HTML і декларативного оновлення частин документа. Відповідна зміна вже об’єднана зі стандартом, але пов’язаний механізм <template for> усе ще проходить стандартизацію.
А що з focusgroup, <template for> і <model>?
У новинах 2026 року можна зустріти ще кілька гучних HTML-можливостей:
-
focusgroupдодає навігацію стрілками для панелей інструментів, меню та інших складених віджетів; -
<template for>дає змогу серверу потоково оновлювати частини документа без JavaScript; -
<model>вбудовує інтерактивні 3D-моделі подібно до зображень і відео.
Chrome 150 уже реалізував focusgroup і потокові оновлення, але відповідні зміни focusgroup та <template for> ще не прийняті до HTML Living Standard.
<model> з’являється у Safari 27 для iOS, iPadOS і macOS, однак поки що розробляється окремою W3C Community Group і не є універсальним елементом стандарту WHATWG. Його можливості показані в огляді WebKit для WWDC 2026.
Отже, ці технології цікаві для експериментів, але називати їх загальнодоступним «новим HTML» поки зарано.
і на цьому поки що все, чекаємо наступних оновлень.