Атрибут HTML - это дополнительная настройка тега. Он записывается внутри открывающего тега в виде название="значение" и уточняет, как тег должен работать: куда вести ссылку, какую картинку показать, как назвать поле формы. Здесь собраны все атрибуты HTML: общие для любого тега, атрибуты ссылок, картинок, форм, таблиц, аудио и видео, события, ARIA, экспериментальные и устаревшие.
Правила записи простые: атрибут пишут через пробел после названия тега, значение берут в кавычки, несколько атрибутов разделяют пробелами. Некоторые атрибуты записывают без значения, например disabled или required: само их наличие включает настройку. Подробнее с примерами в уроке Теги, атрибуты и вложенность.
Для каждого атрибута указано, на каких тегах он работает. Названия тегов ведут на страницы справочника Все теги HTML.
В статье:
- Глобальные атрибуты HTML: id, class, style, title, lang
- Атрибуты ссылок: href, target, rel, download
- Атрибуты изображений и карт: src, alt, width, height, srcset
- Атрибуты полей ввода: type, value, placeholder, required
- Атрибуты формы: action, method, name, autocomplete
- Атрибуты таблицы: colspan, rowspan, headers, scope
- Атрибуты подключения скриптов и стилей, мета-теги, встраивание
- Атрибуты списков, окон, индикаторов и дат: start, open, datetime, cite
- Атрибуты аудио, видео и субтитров: controls, autoplay, loop
- Атрибуты кнопок отправки формы: formaction, formmethod, formtarget
- Атрибуты для телефона, popover и новые глобальные атрибуты
- Атрибуты веб-компонентов: slot, part, is, shadowrootmode
- Атрибуты микроразметки: itemscope, itemtype, itemprop
- События HTML: атрибуты onclick, onchange, onload и другие
- Атрибуты ARIA и role для доступности
- Атрибуты вне стандарта HTML и экспериментальные
- Устаревшие атрибуты HTML и чем их заменить
1. Глобальные атрибуты HTML: id, class, style, title, lang
Эти атрибуты можно записать в любой тег. Они задают идентификатор и класс элемента для стилей и скриптов, подсказку, язык, порядок перехода по Tab и другие общие настройки.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
id | Уникальное название элемента на странице: для ссылок-якорей, CSS и скриптов | любой тег | <h2 id="price">Цены</h2> |
class | Один или несколько классов, по которым элемент оформляют и находят | любой тег | <p class="note big">Текст</p> |
style | Стили CSS, записанные прямо в теге | любой тег | <p style="color: red">Текст</p> |
title | Подсказка, которая появляется при наведении курсора | любой тег | <a href="/" title="Главная страница">Главная</a> |
lang | Язык содержимого элемента | любой тег | <html lang="ru"> |
dir | Направление текста: ltr, rtl или auto | любой тег | <p dir="rtl">Текст справа налево</p> |
hidden | Скрывает элемент со страницы | любой тег | <p hidden>Этого не видно</p> |
tabindex | Включает элемент в переход по клавише Tab и задаёт порядок | любой тег | <div tabindex="0">Блок с фокусом</div> |
accesskey | Клавиша быстрого перехода к элементу | любой тег | <a href="/" accesskey="h">Главная</a> |
contenteditable | Разрешает менять текст прямо на странице | любой тег | <p contenteditable="true">Исправь меня</p> |
draggable | Разрешает или запрещает перетаскивать элемент мышью | любой тег | <img src="cat.jpg" alt="Кот" draggable="false"> |
spellcheck | Включает или выключает проверку орфографии | любой тег | <textarea spellcheck="false"></textarea> |
translate | Разрешает или запрещает автоматический перевод фрагмента | любой тег | <span translate="no">HTML</span> |
autofocus | Переводит фокус на элемент сразу после загрузки страницы | любой тег | <input autofocus> |
data-* | Свои данные в атрибутах для скриптов и CSS | любой тег | <li data-id="42">Товар</li> |
2. Атрибуты ссылок: href, target, rel, download
Они определяют, куда ведёт ссылка, где откроется страница, что браузер узнает о связи страниц и как скачать файл.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
href | Адрес, на который ведёт ссылка или с которого подключается файл | <a>, <area>, <base>, <link> | <a href="/price.html">Цены</a> |
target | Где открыть ссылку: в этой вкладке, в новой или во фрейме | <a>, <area>, <base>, <form>Устарел на: <link> | <a href="/" target="_blank">Главная</a> |
rel | Связь страницы со ссылкой: nofollow, noopener, stylesheet и другие | <a>, <area>, <form>, <link> | <a href="https://example.com" rel="nofollow noopener">Сайт</a> |
download | Скачивает файл вместо перехода на него | <a>, <area> | <a href="price.pdf" download>Скачать прайс</a> |
ping | Адреса, которым браузер сообщит о клике по ссылке | <a>, <area> | <a href="/" ping="/stat">Главная</a> |
hreflang | Язык страницы, на которую ведёт ссылка | <a>, <link>Устарел на: <area> | <a href="/en/" hreflang="en">English</a> |
referrerpolicy | Какие сведения об исходной странице передавать при переходе и загрузке | <a>, <area>, <iframe>, <img>, <link>, <script> | <a href="https://example.com" referrerpolicy="no-referrer">Сайт</a> |
3. Атрибуты изображений и карт: src, alt, width, height, srcset
Атрибуты картинок задают файл, описание, размер и набор файлов для разных экранов. Карты-изображения добавляют к ним области-ссылки.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
src | Адрес файла: картинки, видео, звука, скрипта или встроенной страницы | <audio>, <embed>, <iframe>, <img>, <input>, <script>, <source>, <track>, <video> | <img src="cat.jpg" alt="Кот"> |
alt | Описание картинки для скринридера и на случай, если файл не загрузился | <area>, <img>, <input> | <img src="cat.jpg" alt="Рыжий кот на диване"> |
width | Ширина в пикселях, записывается числом без единиц | <canvas>, <embed>, <iframe>, <img>, <input>, <object>, <source>, <video>Устарел на: <col>, <colgroup>, <hr>, <pre>, <table>, <td>, <th> | <img src="cat.jpg" alt="Кот" width="300"> |
height | Высота в пикселях, записывается числом без единиц | <canvas>, <embed>, <iframe>, <img>, <input>, <object>, <source>, <video>Устарел на: <table>, <tbody>, <td>, <tfoot>, <th>, <thead>, <tr> | <img src="cat.jpg" alt="Кот" height="200"> |
srcset | Список файлов одной картинки для разной плотности пикселей и ширины экрана | <img>, <source> | <img src="cat.jpg" srcset="cat-2x.jpg 2x" alt="Кот"> |
sizes | Какую ширину займёт картинка на разных экранах | <img>, <link>, <source> | <img srcset="a-400.jpg 400w, a-800.jpg 800w" sizes="(min-width: 600px) 600px, 100vw" src="a-800.jpg" alt=""> |
loading | Откладывает загрузку картинки или фрейма, пока их не прокрутят в поле зрения | <iframe>, <img> | <img src="cat.jpg" alt="Кот" loading="lazy"> |
decoding | Как браузеру обрабатывать картинку: sync, async или auto | <img> | <img src="cat.jpg" alt="Кот" decoding="async"> |
fetchpriority | Приоритет загрузки файла: high, low или auto | <img>, <link>, <script> | <img src="hero.jpg" alt="" fetchpriority="high"> |
ismap | Картинка с серверной картой: на сервер уходят координаты клика | <img>Устарел на: <input> | <a href="/map"><img src="map.png" alt="Карта" ismap></a> |
usemap | Подключает к картинке карту map с областями-ссылками | <img>Устарел на: <input>, <object> | <img src="plan.png" alt="План" usemap="#plan"> |
coords | Координаты области на карте-изображении | <area>Устарел на: <a> | <area shape="rect" coords="0,0,50,50" href="/a"> |
shape | Форма области на карте: rect, circle, poly или default | <area>Устарел на: <a> | <area shape="circle" coords="40,40,30" href="/a"> |
imagesrcset | Аналог srcset для предзагрузки картинки через link | <link> | <link rel="preload" as="image" imagesrcset="a-1x.jpg 1x, a-2x.jpg 2x"> |
imagesizes | Аналог sizes для предзагрузки картинки через link | <link> | <link rel="preload" as="image" imagesrcset="a-400.jpg 400w" imagesizes="100vw"> |
4. Атрибуты полей ввода: type, value, placeholder, required
Здесь собраны атрибуты, которые определяют вид поля, его значение, подсказку, ограничения и проверку ввода.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
type | Вид поля или кнопки: text, email, checkbox и другие; у других тегов тип подключаемого файла | <a>, <button>, <embed>, <input>, <link>, <object>, <ol>, <script>, <source>Устарел на: <area>, <li>, <menu>, <style>, <ul> | <input type="email"> |
value | Значение поля, кнопки или пункта списка | <button>, <data>, <input>, <li>, <meter>, <option>, <progress> | <input name="name" value="Иван"> |
placeholder | Серая подсказка в пустом поле | <input>, <textarea> | <input placeholder="Ваше имя"> |
readonly | Значение можно читать и копировать, но нельзя менять | <input>, <textarea> | <input value="Нельзя изменить" readonly> |
disabled | Отключает элемент: он не нажимается и не отправляется с формой | <button>, <fieldset>, <input>, <link>, <optgroup>, <option>, <select>, <textarea> | <button disabled>Отправить</button> |
required | Поле обязательно для заполнения | <input>, <select>, <textarea> | <input name="email" required> |
maxlength | Наибольшее число символов | <input>, <textarea> | <input maxlength="20"> |
minlength | Наименьшее число символов | <input>, <textarea> | <input minlength="3"> |
min | Наименьшее значение числа или даты | <input>, <meter> | <input type="number" min="1"> |
max | Наибольшее значение числа или даты | <input>, <meter>, <progress> | <input type="number" max="10"> |
step | Шаг изменения числа или даты | <input> | <input type="number" step="5"> |
pattern | Регулярное выражение, которому должно соответствовать значение | <input> | <input pattern="[0-9]{4}" title="Четыре цифры"> |
size | Ширина поля в символах или число видимых строк списка | <input>, <select>Устарел на: <hr> | <input size="30"> |
multiple | Разрешает выбрать несколько значений или файлов | <input>, <select> | <input type="file" multiple> |
accept | Типы файлов, которые можно выбрать в поле file | <input>Устарел на: <form> | <input type="file" accept="image/*"> |
list | id списка datalist с вариантами подсказки | <input> | <input list="cities"> |
dirname | Отправляет на сервер ещё и направление текста поля | <input>, <textarea> | <input name="q" dirname="q.dir"> |
for | id поля, к которому относится подпись или результат | <label>, <output>Устарел на: <script> | <label for="email">Почта</label> |
checked | Флажок или переключатель отмечен заранее | <input> | <input type="checkbox" checked> |
selected | Пункт выпадающего списка выбран заранее | <option> | <option selected>Москва</option> |
rows | Высота многострочного поля в строках | <textarea> | <textarea rows="5"></textarea> |
cols | Ширина многострочного поля в символах | <textarea> | <textarea cols="40"></textarea> |
wrap | Как переносить строки текста при отправке: soft или hard | <textarea> | <textarea wrap="hard"></textarea> |
alpha | Разрешает выбирать прозрачность в поле цвета | <input> | <input type="color" alpha> |
colorspace | Цветовое пространство поля цвета | <input> | <input type="color" colorspace="display-p3"> |
label | Надпись пункта или группы пунктов списка | <optgroup>, <option>, <track>Устарел на: <menu> | <option label="Москва" value="msk"></option> |
5. Атрибуты формы: action, method, name, autocomplete
Эти атрибуты определяют, куда и как отправляется форма и под каким названием уходит каждое значение.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
action | Адрес, на который отправляется форма | <form> | <form action="/send"> |
method | Способ отправки: get или post | <form> | <form method="post"> |
enctype | Способ кодирования данных при отправке методом post | <form> | <form method="post" enctype="multipart/form-data"> |
accept-charset | Кодировки, в которых форма может отправить данные | <form> | <form accept-charset="utf-8"> |
novalidate | Отключает проверку полей перед отправкой | <form> | <form novalidate> |
autocomplete | Разрешает или запрещает браузеру подсказывать сохранённые значения | <form>, <input>, <select>, <textarea> | <input name="email" autocomplete="email"> |
name | Название поля, под которым значение уходит на сервер; у других тегов название фрейма, карты или метаданных | <button>, <details>, <fieldset>, <form>, <iframe>, <input>, <map>, <meta>, <object>, <output>, <select>, <slot>, <textarea>Устарел на: <a>, <embed>, <img>, <option> | <input name="email"> |
form | id формы, к которой относится элемент, даже если он находится снаружи | <button>, <fieldset>, <input>, <object>, <output>, <select>, <textarea> | <input name="q" form="search"> |
6. Атрибуты таблицы: colspan, rowspan, headers, scope
Они объединяют ячейки, связывают их с заголовками и описывают столбцы.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
colspan | Сколько столбцов занимает ячейка | <td>, <th> | <td colspan="2">Итого</td> |
rowspan | Сколько строк занимает ячейка | <td>, <th> | <td rowspan="2">Группа</td> |
headers | id заголовков, к которым относится ячейка | <td>, <th> | <td headers="h1 h2">42</td> |
scope | К чему относится заголовок: col, row, colgroup или rowgroup | <th>Устарел на: <td> | <th scope="col">Цена</th> |
abbr | Короткое название заголовка для скринридера | <th>Устарел на: <td> | <th abbr="Цена">Стоимость за единицу</th> |
span | Сколько столбцов охватывает col или colgroup | <col>, <colgroup> | <col span="2"> |
7. Атрибуты подключения скриптов и стилей, мета-теги, встраивание
Эти атрибуты управляют загрузкой скриптов, стилей и шрифтов, настройками страницы в meta и встроенными страницами в iframe.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
async | Загружает скрипт без остановки страницы и запускает сразу после загрузки | <script> | <script src="app.js" async></script> |
defer | Запускает скрипт после того, как страница разобрана | <script> | <script src="app.js" defer></script> |
nomodule | Не запускает скрипт в браузерах, которые понимают модули | <script> | <script nomodule src="old.js"></script> |
integrity | Контрольная сумма файла, чтобы заметить подмену | <link>, <script> | <script src="lib.js" integrity="sha384-abc" crossorigin="anonymous"></script> |
crossorigin | Режим запроса файла с другого сайта | <audio>, <img>, <link>, <script>, <video> | <script src="https://cdn.example.com/a.js" crossorigin="anonymous"></script> |
as | Тип файла при предзагрузке через link | <link> | <link rel="preload" href="font.woff2" as="font" crossorigin> |
blocking | Задерживает показ страницы, пока не загрузится ресурс | <link>, <script>, <style> | <link rel="stylesheet" href="a.css" blocking="render"> |
charset | Кодировка документа | <meta>Устарел на: <a>, <link>, <script> | <meta charset="utf-8"> |
media | Условие медиазапроса, при котором ресурс применяется | <link>, <meta>, <source>, <style> | <link rel="stylesheet" href="wide.css" media="(min-width: 900px)"> |
color | Цвет значка маски в link rel=mask-icon | <link>Устарел на: <hr> | <link rel="mask-icon" href="icon.svg" color="#c0553a"> |
nonce | Одноразовый код для политики безопасности CSP | любой тег | <script nonce="r4nd0m">...</script> |
http-equiv | Заменяет заголовок HTTP: refresh, content-type и другие | <meta> | <meta http-equiv="refresh" content="30"> |
content | Значение метаданных, которое относится к name или http-equiv | <meta> | <meta name="description" content="Описание страницы"> |
sandbox | Ограничения для встроенной страницы | <iframe> | <iframe src="page.html" sandbox="allow-scripts"></iframe> |
allow | Разрешает встроенной странице камеру, экран и другие возможности | <iframe> | <iframe src="page.html" allow="fullscreen"></iframe> |
allowfullscreen | Разрешает полноэкранный режим во фрейме | <iframe> | <iframe src="video.html" allowfullscreen></iframe> |
srcdoc | HTML-код встроенной страницы, записанный прямо в атрибуте | <iframe> | <iframe srcdoc="<p>Привет</p>"></iframe> |
data | Адрес файла, который показывает object | <object> | <object data="doc.pdf" type="application/pdf"></object> |
8. Атрибуты списков, окон, индикаторов и дат: start, open, datetime, cite
Здесь атрибуты нумерованных списков, раскрывающихся блоков, диалогов, индикатора meter, дат и источников цитат.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
start | Номер, с которого начинается нумерованный список | <ol> | <ol start="5"> |
reversed | Нумерует список в обратном порядке | <ol> | <ol reversed> |
open | Раскрытое состояние блока details или показанное окно dialog | <details>, <dialog> | <details open> |
closedby | Чем можно закрыть окно dialog: any, closerequest или none | <dialog> | <dialog closedby="any"> |
low | Верхняя граница низкой зоны индикатора meter | <meter> | <meter value="30" low="40" high="80" max="100"></meter> |
high | Нижняя граница высокой зоны индикатора meter | <meter> | <meter value="90" low="40" high="80" max="100"></meter> |
optimum | Наилучшее значение индикатора meter | <meter> | <meter value="50" optimum="100" max="100"></meter> |
datetime | Дата и время в машиночитаемом виде | <del>, <ins>, <time> | <time datetime="2026-10-15">15 октября</time> |
cite | Адрес источника цитаты или причины правки | <blockquote>, <del>, <ins>, <q> | <blockquote cite="https://example.com/a">Цитата</blockquote> |
9. Атрибуты аудио, видео и субтитров: controls, autoplay, loop
Эти атрибуты управляют плеером: кнопками, автозапуском, звуком, повтором, обложкой и дорожками субтитров.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
controls | Показывает кнопки управления плеером | <audio>, <video> | <video src="film.mp4" controls></video> |
autoplay | Запускает воспроизведение сразу, обычно вместе с muted | <audio>, <video> | <video src="film.mp4" autoplay muted></video> |
muted | Выключает звук с самого начала | <audio>, <video> | <video src="film.mp4" muted></video> |
loop | Повторяет воспроизведение по кругу | <audio>, <video> | <audio src="song.mp3" loop></audio> |
preload | Сколько данных загрузить заранее: none, metadata или auto | <audio>, <video> | <video src="film.mp4" preload="metadata"></video> |
poster | Картинка, которая показывается до начала воспроизведения | <video> | <video src="film.mp4" poster="cover.jpg" controls></video> |
playsinline | Не разворачивает видео на весь экран при запуске на iPhone | <video> | <video src="film.mp4" playsinline></video> |
kind | Тип дорожки: subtitles, captions, descriptions, chapters или metadata | <track> | <track kind="subtitles" src="ru.vtt" srclang="ru"> |
srclang | Язык дорожки | <track> | <track kind="subtitles" src="en.vtt" srclang="en"> |
default | Включает дорожку по умолчанию | <track> | <track kind="subtitles" src="ru.vtt" srclang="ru" default> |
10. Атрибуты кнопок отправки формы: formaction, formmethod, formtarget
Кнопка отправки может переопределить настройки формы: адрес, способ, кодирование, проверку и место открытия ответа.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
formaction | Адрес отправки для этой кнопки вместо action формы | <button>, <input> | <button formaction="/draft">Сохранить черновик</button> |
formenctype | Способ кодирования данных для этой кнопки | <button>, <input> | <button formenctype="multipart/form-data">Отправить</button> |
formmethod | Способ отправки для этой кнопки: get или post | <button>, <input> | <button formmethod="post">Отправить</button> |
formnovalidate | Отправляет форму без проверки полей | <button>, <input> | <button formnovalidate>Сохранить без проверки</button> |
formtarget | Где открыть ответ сервера для этой кнопки | <button>, <input> | <button formtarget="_blank">Отправить в новой вкладке</button> |
11. Атрибуты для телефона, popover и новые глобальные атрибуты
Подсказки для экранной клавиатуры, всплывающие слои popover, команды кнопок, блокировка блока и уровни заголовков.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
inputmode | Какую экранную клавиатуру показать на телефоне | любой тег | <input inputmode="numeric"> |
enterkeyhint | Подпись клавиши Enter на экранной клавиатуре | любой тег | <input enterkeyhint="search"> |
autocapitalize | Автоматические заглавные буквы на экранной клавиатуре | любой тег | <input autocapitalize="words"> |
autocorrect | Автоисправление при вводе | любой тег | <input autocorrect="off"> |
writingsuggestions | Подсказки продолжения текста от браузера | любой тег | <textarea writingsuggestions="false"></textarea> |
inert | Делает блок недоступным для кликов, фокуса и скринридера | любой тег | <div inert>Недоступный блок</div> |
popover | Превращает элемент во всплывающий слой | любой тег | <div id="tip" popover>Подсказка</div> |
popovertarget | Кнопка, которая открывает или закрывает popover | <button>, <input> | <button popovertarget="tip">Показать</button> |
popovertargetaction | Что делает кнопка с popover: show, hide или toggle | <button>, <input> | <button popovertarget="tip" popovertargetaction="hide">Закрыть</button> |
command | Команда кнопки для другого элемента, например show-modal | <button> | <button command="show-modal" commandfor="dlg">Открыть</button> |
commandfor | id элемента, которому адресована команда command | <button> | <button command="close" commandfor="dlg">Закрыть</button> |
headingoffset | Сдвигает уровни заголовков внутри блока | любой тег | <section headingoffset="1">...</section> |
headingreset | Сбрасывает сдвиг уровней заголовков внутри блока | любой тег | <section headingreset>...</section> |
12. Атрибуты веб-компонентов: slot, part, is, shadowrootmode
Атрибуты для пользовательских элементов и теневого корня: вставка в слоты, стилизация частей и настройки теневого корня.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
is | Название пользовательского элемента, который расширяет обычный тег | любой тег | <button is="fancy-button">Кнопка</button> |
slot | В какой слот компонента попадает элемент | любой тег | <span slot="title">Заголовок</span> |
part | Метка, по которой снаружи стилизуют часть компонента | любой тег | <span part="label">Текст</span> |
exportparts | Передаёт части вложенного компонента наружу | любой тег | <x-card exportparts="label"></x-card> |
shadowrootmode | Превращает template в теневой корень: open или closed | <template> | <template shadowrootmode="open">...</template> |
shadowrootclonable | Разрешает копировать теневой корень вместе с элементом | <template> | <template shadowrootmode="open" shadowrootclonable>...</template> |
shadowrootdelegatesfocus | Передаёт фокус первому подходящему элементу внутри теневого корня | <template> | <template shadowrootmode="open" shadowrootdelegatesfocus>...</template> |
shadowrootserializable | Разрешает включать теневой корень в результат getHTML() | <template> | <template shadowrootmode="open" shadowrootserializable>...</template> |
shadowrootcustomelementregistry | Привязывает теневой корень к отдельному реестру пользовательских элементов | <template> | <template shadowrootmode="open" shadowrootcustomelementregistry>...</template> |
13. Атрибуты микроразметки: itemscope, itemtype, itemprop
Атрибуты Microdata описывают содержимое страницы словарём, например Schema.org, чтобы поисковики понимали, что это товар, статья или отзыв.
| Атрибут | Что делает | Где работает | Пример |
|---|---|---|---|
itemscope | Объявляет блок с описанием одной вещи | любой тег | <div itemscope itemtype="https://schema.org/Product"> |
itemtype | Тип вещи по словарю, например Schema.org | любой тег | <div itemscope itemtype="https://schema.org/Product"> |
itemprop | Название свойства вещи | любой тег | <span itemprop="name">Чайник</span> |
itemid | Постоянный идентификатор описываемой вещи | любой тег | <div itemscope itemid="urn:isbn:978-5-17-000000-0"> |
itemref | Подключает свойства из других мест страницы по id | любой тег | <div itemscope itemref="author"> |
14. События HTML: атрибуты onclick, onchange, onload и другие
Обработчик события - атрибут, значение которого содержит JavaScript-код. Код запускается, когда у элемента происходит событие: клик, ввод, загрузка файла. Большинство обработчиков работают на любом теге, у остальных указан круг тегов. В примерах записаны вызовы условных функций, их смысл не важен.
Загрузка и ошибки
Пример: <img src="a.jpg" alt="" onerror="this.hidden=true">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
onabort | Загрузка файла прервана до конца | <audio>, <img>, <video> |
onerror | Файл не загрузился или произошла ошибка в скрипте | любой тег (чаще всего img, script, link, audio, video) |
onload | Страница или файл полностью загружены | <body>, <iframe>, <img>, <link>, <script> |
Страница, окно, история и сеть
Пример: <body onload="init()" onbeforeunload="return false">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
onafterprint | Печать закончилась | <body>, <frameset> |
onbeforeprint | Перед началом печати | <body>, <frameset> |
onbeforeunload | Перед закрытием страницы: можно спросить подтверждение | <body>, <frameset> |
onhashchange | Изменилась часть адреса после знака # | <body>, <frameset> |
onlanguagechange | Изменился предпочитаемый язык браузера | <body>, <frameset> |
onmessage | Пришло сообщение от другого окна или фрейма | <body>, <frameset> |
onmessageerror | Сообщение пришло в виде, который не удалось разобрать | <body>, <frameset> |
onoffline | Пропало подключение к сети | <body>, <frameset> |
ononline | Подключение к сети появилось | <body>, <frameset> |
onpagehide | Страница скрывается: закрытие или переход на другую | <body>, <frameset> |
onpagereveal | Страница показывается впервые после перехода | <body>, <frameset> |
onpageshow | Страница показана, в том числе из кеша при возврате назад | <body>, <frameset> |
onpageswap | Браузер готов заменить страницу при переходе | <body>, <frameset> |
onpopstate | Изменилась запись в истории браузера | <body>, <frameset> |
onrejectionhandled | Для отклонённого промиса позже добавили обработчик | <body>, <frameset> |
onstorage | Данные в localStorage изменила другая вкладка | <body>, <frameset> |
onunhandledrejection | Промис отклонён, а обработчика ошибки нет | <body>, <frameset> |
onunload | Страница выгружается: событие устарело, лучше pagehide | <body>, <frameset> |
Анимации и переходы CSS
Пример: <div onanimationend="this.hidden=true">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
onanimationcancel | CSS-анимация отменена | любой тег |
onanimationend | CSS-анимация закончилась | любой тег |
onanimationiteration | Закончился очередной повтор CSS-анимации | любой тег |
onanimationstart | CSS-анимация началась | любой тег |
ontransitioncancel | Переход CSS отменён | любой тег |
ontransitionend | Переход CSS закончился | любой тег |
ontransitionrun | Переход CSS запущен, ещё до задержки | любой тег |
ontransitionstart | Переход CSS начался после задержки | любой тег |
Мышь и колесо
Пример: <button onclick="alert('Привет')">Нажми</button>
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
onauxclick | Клик не основной кнопкой, например средней | любой тег |
onclick | Клик основной кнопкой мыши или нажатие | любой тег |
oncontextmenu | Правая кнопка мыши или вызов контекстного меню | любой тег |
ondblclick | Двойной клик | любой тег |
onmousedown | Кнопка мыши нажата | любой тег |
onmouseenter | Курсор вошёл в элемент, вложенные элементы не считаются | любой тег |
onmouseleave | Курсор вышел из элемента, вложенные элементы не считаются | любой тег |
onmousemove | Курсор двигается над элементом | любой тег |
onmouseout | Курсор вышел из элемента или перешёл во вложенный | любой тег |
onmouseover | Курсор вошёл в элемент или во вложенный | любой тег |
onmouseup | Кнопка мыши отпущена | любой тег |
onmousewheel | Прокрутка колеса: устарел, вместо него onwheel | любой тег |
onwebkitmouseforcechanged | Изменилась сила нажатия на трекпад: только Safari | любой тег |
onwebkitmouseforcedown | Сильное нажатие на трекпад: только Safari | любой тег |
onwebkitmouseforceup | Сильное нажатие закончилось: только Safari | любой тег |
onwebkitmouseforcewillbegin | Скоро начнётся сильное нажатие: только Safari | любой тег |
onwheel | Прокрутка колесом мыши | любой тег |
Формы и выделение текста
Пример: <input oninput="show(this.value)">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
onbeforeinput | Перед изменением значения поля | любой тег (чаще input textarea) |
onchange | Значение изменено и зафиксировано: поле потеряло фокус или выбран пункт | <input>, <select>, <textarea> |
onformdata | Браузер собрал данные формы для отправки | <form> |
oninput | Значение меняется при каждом вводе | <input>, <select>, <textarea> |
oninvalid | Поле не прошло проверку | <input>, <select>, <textarea> |
onreset | Форма сброшена | <form> |
onselect | Выделен текст внутри поля | <input>, <textarea> |
onselectionchange | Изменилось выделение текста на странице | любой тег |
onselectstart | Начинается выделение текста | любой тег |
onsubmit | Форма отправляется | <form> |
Popover, dialog, details и команды
Пример: <dialog onclose="save()">...</dialog>
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
onbeforematch | Скрытый блок hidden=until-found готов показаться из-за поиска по странице | любой тег |
onbeforetoggle | Перед открытием или закрытием popover, dialog или details | <details>, <dialog> (а также popover) |
oncancel | Окно закрыто по запросу пользователя, например клавишей Esc | <dialog>, <input> |
onclose | Окно закрыто | <dialog> |
oncommand | Сработала команда кнопки command | любой тег |
ontoggle | Блок открылся или закрылся | <details>, <dialog> (а также popover) |
Фокус
Пример: <input onfocus="this.select()">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
onblur | Элемент потерял фокус | любой тег |
onfocus | Элемент получил фокус | любой тег |
onfocusin | Элемент или вложенный в него получил фокус, событие всплывает | любой тег |
onfocusout | Элемент или вложенный в него потерял фокус, событие всплывает | любой тег |
Аудио и видео
Пример: <video src="film.mp4" onended="next()" controls></video>
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
oncanplay | Можно начать воспроизведение, но возможны паузы на загрузку | <audio>, <video> |
oncanplaythrough | Можно проиграть до конца без остановок | <audio>, <video> |
oncuechange | Сменился отрывок субтитров | <track> |
ondurationchange | Изменилась длительность | <audio>, <video> |
onemptied | Содержимое сброшено, например после смены src | <audio>, <video> |
onended | Воспроизведение дошло до конца | <audio>, <video> |
onloadeddata | Загружен первый кадр | <audio>, <video> |
onloadedmetadata | Загружены длительность и размеры | <audio>, <video> |
onloadstart | Началась загрузка файла | <audio>, <video> |
onpause | Воспроизведение приостановлено | <audio>, <video> |
onplay | Воспроизведение запущено | <audio>, <video> |
onplaying | Воспроизведение идёт после запуска или паузы на загрузку | <audio>, <video> |
onprogress | Идёт загрузка файла | <audio>, <video> |
onratechange | Изменилась скорость | <audio>, <video> |
onseeked | Перемотка закончилась | <audio>, <video> |
onseeking | Началась перемотка | <audio>, <video> |
onstalled | Данные перестали приходить | <audio>, <video> |
onsuspend | Браузер остановил загрузку файла | <audio>, <video> |
ontimeupdate | Изменилась текущая позиция воспроизведения | <audio>, <video> |
onvolumechange | Изменилась громкость или включён беззвучный режим | <audio>, <video> |
onwaiting | Воспроизведение ждёт данные | <audio>, <video> |
Прочие события
Пример: <body onresize="fit()">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
oncontentvisibilityautostatechange | Скрытое состояние блока с content-visibility: auto изменилось | любой тег |
oncontextlost | Контекст рисования canvas потерян | <canvas> |
oncontextrestored | Контекст рисования canvas восстановлен | <canvas> |
onfullscreenchange | Элемент вошёл в полноэкранный режим или вышел из него | любой тег |
onfullscreenerror | Не удалось включить полноэкранный режим | любой тег |
onresize | Изменился размер окна | <body>, <frameset> |
onscroll | Элемент или страница прокручены | любой тег |
onscrollend | Прокрутка закончилась | любой тег |
onscrollsnapchange | Изменилась позиция, к которой привязывается прокрутка | любой тег |
onscrollsnapchanging | Прокрутка собирается привязаться к новой позиции | любой тег |
onsecuritypolicyviolation | Нарушена политика безопасности CSP | любой тег |
onslotchange | Изменилось содержимое слота | <slot> |
Буфер обмена
Пример: <input oncopy="log()">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
oncopy | Текст скопирован | любой тег |
oncut | Текст вырезан | любой тег |
onpaste | Текст вставлен | любой тег |
Перетаскивание
Пример: <div ondrop="drop(event)" ondragover="event.preventDefault()">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
ondrag | Элемент перетаскивают | любой тег |
ondragend | Перетаскивание закончилось | любой тег |
ondragenter | Перетаскиваемый элемент вошёл в целевой | любой тег |
ondragleave | Перетаскиваемый элемент вышел из целевого | любой тег |
ondragover | Перетаскиваемый элемент находится над целевым | любой тег |
ondragstart | Началось перетаскивание | любой тег |
ondrop | Элемент отпущен над целевым | любой тег |
Касание, указатель и жесты
Пример: <div onpointerdown="start(event)">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
ongesturechange | Жест двумя пальцами меняется: только Safari | любой тег |
ongestureend | Жест двумя пальцами закончился: только Safari | любой тег |
ongesturestart | Жест двумя пальцами начался: только Safari | любой тег |
ongotpointercapture | Элемент захватил указатель | любой тег |
onlostpointercapture | Элемент потерял захват указателя | любой тег |
onpointercancel | Действие указателя отменено | любой тег |
onpointerdown | Указатель нажат: мышь, палец или перо | любой тег |
onpointerenter | Указатель вошёл в элемент, вложенные элементы не считаются | любой тег |
onpointerleave | Указатель вышел из элемента, вложенные элементы не считаются | любой тег |
onpointermove | Указатель двигается | любой тег |
onpointerout | Указатель вышел из элемента или перешёл во вложенный | любой тег |
onpointerover | Указатель вошёл в элемент или во вложенный | любой тег |
onpointerrawupdate | Необработанное обновление позиции указателя | любой тег |
onpointerup | Указатель отпущен | любой тег |
ontouchcancel | Касание экрана прервано | любой тег |
ontouchend | Палец убран с экрана | любой тег |
ontouchmove | Палец двигается по экрану | любой тег |
ontouchstart | Палец коснулся экрана | любой тег |
Клавиатура
Пример: <input onkeydown="if(event.key==='Enter') send()">
| Обработчик | Когда срабатывает | Где работает |
|---|---|---|
onkeydown | Клавиша нажата | любой тег |
onkeypress | Нажата клавиша с символом: устарел, вместо него onkeydown | любой тег |
onkeyup | Клавиша отпущена | любой тег |
15. Атрибуты ARIA и role для доступности
ARIA - набор атрибутов, которые сообщают скринридерам то, что нельзя понять по тегу: состояние, роль и связи элементов. Все атрибуты ARIA, кроме role, начинаются с aria-. Подробный разбор есть в уроке ARIA-атрибуты: когда они нужны. Главное правило: если есть подходящий HTML-тег, берите его, а не атрибуты ARIA.
Роль: атрибут role
Атрибут role сообщает скринридеру, чем элемент является на самом деле: кнопкой, меню, вкладкой. Если подходящий тег есть, роль не нужна, например button вместо div с role="button".
| Атрибут | Что делает | Пример |
|---|---|---|
role | Роль элемента для скринридера: button, tab, dialog, alert и другие значения | <div role="alert">Ошибка отправки</div> |
Атрибуты виджетов
Они описывают состояние и свойства интерактивных элементов: развёрнут ли блок, отмечен ли флажок, есть ли ошибка в поле.
| Атрибут | Что делает | Пример |
|---|---|---|
aria-autocomplete | Как поле предлагает завершить ввод: none, inline, list или both | <input role="combobox" aria-autocomplete="list"> |
aria-checked | Отмечен ли элемент: true, false или mixed | <div role="checkbox" aria-checked="true"></div> |
aria-disabled | Элемент отключён, но остаётся виден | <div role="button" aria-disabled="true">Отправить</div> |
aria-errormessage | id элемента с текстом ошибки | <input aria-invalid="true" aria-errormessage="err"> |
aria-expanded | Развёрнут ли блок, который управляется этим элементом | <button aria-expanded="false" aria-controls="menu">Меню</button> |
aria-haspopup | Элемент открывает всплывающее меню, список или окно | <button aria-haspopup="menu">Действия</button> |
aria-hidden | Скрывает элемент от скринридера, на экране он виден | <span aria-hidden="true">★</span> |
aria-invalid | Значение поля неверное | <input aria-invalid="true"> |
aria-label | Название элемента, когда текста на экране нет | <button aria-label="Закрыть">X</button> |
aria-level | Уровень вложенности заголовка, элемента дерева или списка | <div role="heading" aria-level="2">Заголовок</div> |
aria-modal | Окно модальное: остальная страница недоступна | <div role="dialog" aria-modal="true">...</div> |
aria-multiline | Поле принимает несколько строк | <div role="textbox" aria-multiline="true"></div> |
aria-multiselectable | В списке можно выбрать несколько пунктов | <ul role="listbox" aria-multiselectable="true"> |
aria-orientation | Расположение элемента: horizontal или vertical | <div role="separator" aria-orientation="vertical"></div> |
aria-placeholder | Подсказка для пустого поля, которое сделано не на input | <div role="textbox" aria-placeholder="Ваше имя"></div> |
aria-pressed | Состояние кнопки-переключателя: true, false или mixed | <button aria-pressed="true">Жирный</button> |
aria-readonly | Значение можно читать, но нельзя менять | <div role="textbox" aria-readonly="true"></div> |
aria-required | Элемент обязателен для заполнения | <div role="textbox" aria-required="true"></div> |
aria-selected | Выбран ли элемент: вкладка, пункт списка | <div role="tab" aria-selected="true">Общее</div> |
aria-sort | Порядок сортировки столбца: ascending, descending, none или other | <th aria-sort="ascending">Цена</th> |
aria-valuemax | Наибольшее значение ползунка или шкалы | <div role="slider" aria-valuemax="100"></div> |
aria-valuemin | Наименьшее значение ползунка или шкалы | <div role="slider" aria-valuemin="0"></div> |
aria-valuenow | Текущее значение ползунка или шкалы | <div role="slider" aria-valuenow="40"></div> |
aria-valuetext | Значение словами, если число читается неудобно | <div role="slider" aria-valuenow="3" aria-valuetext="Среда"></div> |
Атрибуты динамических областей
Они сообщают скринридеру, что содержимое блока меняется само, и как об этом объявлять.
| Атрибут | Что делает | Пример |
|---|---|---|
aria-live | Как объявлять изменения блока: off, polite или assertive | <div aria-live="polite">Сохранено</div> |
aria-atomic | Читать блок целиком или только изменившуюся часть | <div aria-live="polite" aria-atomic="true">...</div> |
aria-relevant | Какие изменения блока объявлять: добавление, удаление, текст | <div aria-live="polite" aria-relevant="additions">...</div> |
aria-busy | Блок обновляется, пока читать его не нужно | <div aria-busy="true">Загрузка...</div> |
Атрибуты перетаскивания (устарели)
Оба атрибута устарели в ARIA 1.1, но встречаются в старом коде.
| Атрибут | Что делает | Пример |
|---|---|---|
aria-dropeffect | Что произойдёт при сбросе элемента: copy, move, link и другие | <div aria-dropeffect="move"></div> |
aria-grabbed | Элемент захвачен для перетаскивания | <li aria-grabbed="true"></li> |
Атрибуты связей и структуры
Они связывают элементы между собой и описывают место элемента в списке, таблице или дереве.
| Атрибут | Что делает | Пример |
|---|---|---|
aria-activedescendant | id вложенного элемента, на котором сейчас находится фокус | <ul role="listbox" aria-activedescendant="opt2"> |
aria-colcount | Общее число столбцов таблицы, если показаны не все | <table aria-colcount="12"> |
aria-colindex | Номер столбца ячейки | <td aria-colindex="3"> |
aria-colindextext | Название столбца словами вместо номера | <td aria-colindex="3" aria-colindextext="Март"> |
aria-colspan | Сколько столбцов занимает ячейка | <div role="gridcell" aria-colspan="2"></div> |
aria-controls | id элемента, которым управляет этот элемент | <button aria-controls="menu">Меню</button> |
aria-describedby | id элемента с пояснением | <input aria-describedby="hint"> |
aria-description | Пояснение текстом прямо в атрибуте | <button aria-description="Удалит файл навсегда">Удалить</button> |
aria-details | id элемента с подробным описанием | <img src="chart.png" alt="График" aria-details="chart-text"> |
aria-flowto | id элемента, который читать следующим | <div aria-flowto="next-block"></div> |
aria-labelledby | id элемента, текст которого служит названием | <section aria-labelledby="title"><h2 id="title">Новости</h2></section> |
aria-owns | id элементов, которые считать вложенными в этот | <div role="menu" aria-owns="item1 item2"></div> |
aria-posinset | Номер элемента в наборе | <li aria-posinset="2" aria-setsize="5"></li> |
aria-rowcount | Общее число строк таблицы, если показаны не все | <table aria-rowcount="200"> |
aria-rowindex | Номер строки | <tr aria-rowindex="5"> |
aria-rowindextext | Название строки словами вместо номера | <tr aria-rowindex="5" aria-rowindextext="Итого"> |
aria-rowspan | Сколько строк занимает ячейка | <div role="gridcell" aria-rowspan="2"></div> |
aria-setsize | Сколько всего элементов в наборе | <li aria-setsize="5" aria-posinset="1"></li> |
Остальные глобальные атрибуты ARIA
Эти атрибуты подходят любому элементу.
| Атрибут | Что делает | Пример |
|---|---|---|
aria-braillelabel | Название элемента для устройства Брайля | <button aria-label="Закрыть" aria-braillelabel="Закр">X</button> |
aria-brailleroledescription | Название роли для устройства Брайля | <div aria-roledescription="слайд" aria-brailleroledescription="сл"></div> |
aria-current | Текущий элемент: страница, шаг, дата | <a href="/" aria-current="page">Главная</a> |
aria-keyshortcuts | Сочетание клавиш, которое активирует элемент | <button aria-keyshortcuts="Alt+S">Сохранить</button> |
aria-roledescription | Своё название роли для скринридера | <div aria-roledescription="слайд">...</div> |
16. Атрибуты вне стандарта HTML и экспериментальные
Эти атрибуты не входят в стандарт HTML. Они описаны в отдельных спецификациях или появились как эксперимент в одном браузере, поэтому перед использованием проверяйте поддержку на MDN.
| Атрибут | Что делает | Где работает | Относится к | Пример |
|---|---|---|---|---|
anchor | Связывает элемент с якорем для позиционирования рядом с ним | любой тег | CSS Anchor Positioning | <div anchor="btn">Подсказка</div> |
virtualkeyboardpolicy | Управляет показом экранной клавиатуры: auto или manual | любой тег | VirtualKeyboard API | <div contenteditable virtualkeyboardpolicy="manual"></div> |
interestfor | Открывает связанный элемент, когда пользователь наводит курсор или переводит фокус | <a>, <button>, <area> | Interest Invokers | <a href="/" interestfor="card">Профиль</a> |
attributionsrc | Разрешает запрос отчёта об атрибуции для измерения рекламы | <a>, <img> | Attribution Reporting API | <a href="https://shop.example" attributionsrc>Реклама</a> |
capture | Выбор камеры или микрофона для поля file: user или environment | <input> | HTML Media Capture | <input type="file" accept="image/*" capture="environment"> |
controlslist | Какие кнопки скрыть в плеере: nodownload, nofullscreen, noremoteplayback | <video>, <audio> | Нестандартный атрибут браузеров | <video src="a.mp4" controls controlslist="nodownload"></video> |
disablepictureinpicture | Запрещает режим «картинка в картинке» | <video> | Picture-in-Picture API | <video src="a.mp4" controls disablepictureinpicture></video> |
disableremoteplayback | Запрещает передачу воспроизведения на другое устройство | <video>, <audio> | Remote Playback API | <video src="a.mp4" controls disableremoteplayback></video> |
elementtiming | Включает измерение времени показа элемента | <img> (и другие элементы) | Element Timing API | <img src="hero.jpg" alt="" elementtiming="hero"> |
csp | Политика безопасности, которой должна соответствовать встроенная страница | <iframe> | Embedded Enforcement | <iframe src="page.html" csp="script-src 'self'"></iframe> |
accuracymode | Точность определения места: approximate или precise | <geolocation> | Тег geolocation | <geolocation accuracymode="precise"></geolocation> |
autolocate | Запрашивает положение сразу при загрузке, без нажатия на кнопку | <geolocation> | Тег geolocation | <geolocation autolocate></geolocation> |
watch | Следит за изменением положения и обновляет результат | <geolocation> | Тег geolocation | <geolocation watch></geolocation> |
17. Устаревшие атрибуты HTML и чем их заменить
Эти атрибуты исключены из стандарта. Многие из них браузеры ещё понимают, но в новом коде их не пишут, а валидатор покажет ошибку. Для каждого указано, что он делал и чем его заменить сегодня. Атрибуты разложены по темам.
Устарели на одних тегах, но работают на других
Эти названия остаются актуальными у других тегов: на странице актуального атрибута есть раздел про старое применение. В таблице только устаревшие случаи.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
abbr | Сокращённое название ячейки данных | abbr записывают у th; в td он не нужен | <td> |
accept | Типы файлов для формы | accept у input type="file" | <form> |
charset | Кодировка подключаемого файла | заголовок HTTP или <meta charset="utf-8"> в самом файле | <a>, <link>, <script> |
color | Цвет текста или линии | color и border-color в CSS | <hr>, <font>, <basefont> |
coords | Координаты области в ссылке | область карты area | <a> |
for | id поля, к которому относится надпись или результат | <label>, <output>Устарел на: <script> | <label for="email">Почта</label> |
height | Высота таблицы, строки или ячейки | height в CSS | <table>, <tbody>, <td>, <tfoot>, <th>, <thead>, <tr>, <applet>, <marquee>, <spacer> |
hreflang | Язык страницы, на которую ведёт область карты | убрать | <area> |
ismap | Серверная карта для поля input | img с ismap | <input> |
label | Надпись пункта меню | button и popover | <menu>, <menuitem> |
name | Название ссылки-якоря или картинки | id | <a>, <embed>, <img>, <option>, <applet>, <frame>, <keygen>, <param> |
scope | Охват заголовка у ячейки данных | scope записывают у th | <td> |
shape | Форма области в ссылке | область карты area | <a> |
size | Размер линии или шрифта | height у линии и font-size у текста в CSS | <hr>, <font>, <basefont>, <spacer> |
target | Куда открывать ссылку link | убрать, на link он не работал | <link> |
type | Вид маркера списка, тип меню или стиля | list-style-type у списков; у style атрибут не нужен | <area>, <li>, <menu>, <style>, <ul>, <menuitem>, <param>, <spacer> |
usemap | Карта для поля input или объекта | img с usemap | <input>, <object> |
width | Ширина линии, таблицы, колонки или ячейки | width в CSS | <col>, <colgroup>, <hr>, <pre>, <table>, <td>, <th>, <applet>, <marquee>, <multicol>, <spacer> |
Цвет, фон и шрифт страницы и текста
Оформление через атрибуты заменено на CSS: цвета задают свойства color и background, шрифт задают font-family и font-size.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
text | Цвет основного текста страницы | body { color: #222; } | <body> |
link | Цвет ещё не посещённых ссылок | a:link { color: blue; } | <body> |
vlink | Цвет посещённых ссылок | a:visited { color: purple; } | <body> |
alink | Цвет ссылки в момент нажатия | a:active { color: red; } | <body> |
bgcolor | Цвет фона страницы, таблицы, строки или ячейки | background-color | <body>, <table>, <tr>, <td>, <th>, <marquee> |
background | Фоновая картинка | background-image | <body>, <table>, <tbody>, <tfoot>, <thead>, <tr>, <td>, <th> |
face | Название шрифта | font-family | <font>, <basefont> |
Поля страницы и отступы вокруг картинок
Поля и отступы теперь задают свойства margin и padding.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
topmargin | Верхнее поле страницы | body { margin-top: 0; } | <body> |
leftmargin | Левое поле страницы | body { margin-left: 0; } | <body> |
rightmargin | Правое поле страницы | body { margin-right: 0; } | <body> |
bottommargin | Нижнее поле страницы | body { margin-bottom: 0; } | <body> |
marginheight | Верхнее и нижнее поле страницы или фрейма | margin-top и margin-bottom | <body>, <frame>, <iframe> |
marginwidth | Левое и правое поле страницы или фрейма | margin-left и margin-right | <body>, <frame>, <iframe> |
hspace | Горизонтальный отступ вокруг картинки или объекта | margin-left и margin-right | <applet>, <marquee>, <embed>, <iframe>, <img>, <input>, <object> |
vspace | Вертикальный отступ вокруг картинки или объекта | margin-top и margin-bottom | <applet>, <marquee>, <embed>, <iframe>, <img>, <input>, <object> |
Выравнивание, обтекание и перенос
Выравнивание атрибутами заменено на CSS: text-align, vertical-align, float, margin, white-space.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
align | Выравнивание текста или элемента: left, center, right, justify, top, middle | text-align, margin: 0 auto, float или vertical-align, смотря что выравнивали | <applet>, <spacer>, <caption>, <col>, <colgroup>, <div>, <embed>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <hr>, <iframe>, <img>, <input>, <legend>, <object>, <p>, <table>, <tbody>, <td>, <tfoot>, <th>, <thead>, <tr> |
valign | Вертикальное выравнивание содержимого ячеек | vertical-align | <col>, <colgroup>, <tbody>, <td>, <tfoot>, <th>, <thead>, <tr> |
char | Символ, по которому выравнивали столбец, например точка в числах | замены нет: браузеры его не применяют | <col>, <colgroup>, <tbody>, <td>, <tfoot>, <th>, <thead>, <tr> |
charoff | Смещение от символа выравнивания | замены нет: браузеры его не применяют | <col>, <colgroup>, <tbody>, <td>, <tfoot>, <th>, <thead>, <tr> |
clear | Запрет обтекания: текст после br шёл ниже картинки | clear: both | <br> |
nowrap | Запрет переноса текста в ячейке | white-space: nowrap | <td>, <th> |
Оформление таблиц: границы и отступы
Границы, отступы и расстояния в таблицах задают CSS-свойства border, padding и border-spacing.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
border | Толщина рамки таблицы или картинки | border | <table>, <img>, <input>, <object>, <frameset> |
bordercolor | Цвет рамки | border-color | <table>, <frameset> |
cellpadding | Отступ внутри ячеек | padding у td и th | <table> |
cellspacing | Расстояние между ячейками | border-spacing | <table> |
frame | Какие внешние границы таблицы показывать | border нужной стороны, например border-top | <table> |
rules | Какие границы показывать между ячейками | border у td и th | <table> |
summary | Краткое описание таблицы для скринридера | caption внутри таблицы или aria-describedby | <table> |
datapagesize | Размер страницы при привязке данных в старом Internet Explorer | замены нет: привязку данных убрали | <table> |
axis | Категории ячейки для старых скринридеров | headers и scope | <td>, <th> |
Фреймы и встроенные страницы
Фреймы заменены тегом iframe и раскладкой на CSS. Разрешения для iframe теперь задаёт один атрибут allow.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
frameborder | Рамка вокруг фрейма | border | <frame>, <frameset>, <iframe> |
framespacing | Расстояние между фреймами | border и margin у iframe | <frameset>, <iframe> |
scrolling | Показывать ли полосы прокрутки во фрейме | overflow в стилях встроенной страницы | <frame>, <iframe> |
noresize | Запрет менять размер фрейма мышью | замены нет: фреймы убраны из HTML | <frame> |
allowtransparency | Прозрачный фон встроенной страницы | background: transparent в стилях встроенной страницы | <iframe> |
allowpaymentrequest | Разрешал платёжный запрос во фрейме | allow="payment" | <iframe> |
allowusermedia | Разрешал камеру и микрофон во фрейме | allow="camera; microphone" | <iframe> |
cols | Ширины столбцов в наборе фреймов или число колонок текста | iframe и CSS Grid; для колонок текста column-count | <frameset>, <multicol> |
rows | Высоты строк в наборе фреймов | iframe и CSS Grid | <frameset> |
Изображения, карты и ссылки
Эти атрибуты заменены адаптивными картинками, ARIA и значениями rel.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
lowsrc | Маленькая картинка, пока грузится большая | srcset и loading="lazy" | <img> |
longdesc | Адрес страницы с подробным описанием картинки | aria-describedby или текст рядом с картинкой | <frame>, <iframe>, <img> |
nohref | Область карты без ссылки | не записывать href у area | <area> |
rev | Обратная связь ссылки | подходящее значение rel | <a>, <link> |
urn | Постоянный идентификатор адреса | замены нет | <a>, <link> |
methods | Способы HTTP, которые поддерживает адрес | замены нет | <a>, <link> |
Объекты, апплеты и параметры
Плагины и Java-апплеты убраны из браузеров. Видео и звук подключают через video и audio, графику через canvas и svg.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
classid | Идентификатор подключаемого плагина | type и data у object | <object> |
codebase | Базовый адрес файлов плагина или апплета | полный адрес в data | <applet>, <object> |
codetype | Тип кода плагина | type | <object> |
archive | Список файлов плагина или апплета | замены нет: апплеты не поддерживаются | <applet>, <object> |
code | Название класса Java-апплета | замены нет: апплеты не поддерживаются | <applet>, <object> |
declare | Объявление объекта без показа на странице | template или создание элемента скриптом | <object> |
standby | Текст на время загрузки объекта | текст внутри object или индикатор загрузки | <object> |
typemustmatch | Запуск объекта только при совпадении типа | замены нет: плагины убраны | <object> |
object | Название сохранённого апплета | замены нет: апплеты не поддерживаются | <applet> |
alt | Запасной текст апплета | текст внутри object | <applet> |
value | Значение параметра тега param | параметры передают в адресе data | <param> |
valuetype | Тип значения параметра param | замены нет | <param> |
Документ, скрипты, метаданные и привязка данных
Версию документа задаёт doctype, язык и базовый адрес задают lang и base, а привязку данных заменил JavaScript.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
language | Язык скрипта: javascript или vbscript | type="module" или без атрибута | <script> |
event | Событие для старого способа привязки скрипта | addEventListener | <script> |
profile | Адрес словаря метаданных | замены нет | <head> |
manifest | Адрес манифеста кеша | Service Worker для кеша; манифест приложения подключают через link rel="manifest" | <html> |
version | Версия HTML | <!DOCTYPE html> | <html> |
scheme | Схема значения метаданных | замены нет | <meta> |
xml:lang | Язык документа в XHTML | lang | любой тег |
xml:base | Базовый адрес документа в XHTML | тег base | любой тег |
datasrc | Источник данных для привязки данных старого Internet Explorer | fetch и шаблоны на JavaScript | <a>, <button>, <div>, <frame>, <iframe>, <img>, <input>, <label>, <legend>, <marquee>, <object>, <option>, <select>, <span>, <table>, <textarea> |
datafld | Поле источника данных | JavaScript | <a>, <button>, <div>, <fieldset>, <frame>, <iframe>, <img>, <input>, <label>, <legend>, <marquee>, <object>, <select>, <span>, <textarea> |
dataformatas | Формат вставляемых данных: text или html | JavaScript | <button>, <div>, <input>, <label>, <legend>, <marquee>, <object>, <option>, <select>, <span>, <table> |
Списки, линия, меню и перетаскивание
Эти атрибуты заменены CSS, popover и событиями перетаскивания. Тег menuitem из браузеров убран.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
compact | Сжатый список с маленькими отступами | margin и line-height | <dir>, <dl>, <menu>, <ol>, <ul> |
noshade | Линия без объёмной тени | border и background-color | <hr> |
contextmenu | Подключал меню по правой кнопке мыши | popover или своё меню по событию contextmenu | любой тег |
onshow | Обработчик показа контекстного меню | событие toggle у popover | любой тег |
dropzone | Область, в которую можно бросить перетаскиваемый элемент | события dragover и drop | любой тег |
icon | Значок пункта меню | img внутри button | <menuitem> |
radiogroup | Группа переключателей в пункте меню | input type="radio" | <menuitem> |
checked | Отмеченный пункт меню | aria-checked или input type="checkbox" | <menuitem> |
default | Пункт меню по умолчанию | оформление и порядок пунктов | <menuitem> |
command | Тип команды пункта меню | обычная button с обработчиком | <menuitem> |
disabled | Отключённый пункт меню или поле keygen | disabled у button | <keygen>, <menuitem> |
Мультимедиа и редкие устаревшие теги
Бегущая строка, фоновая музыка, колонки и генератор ключей заменены CSS, audio и Web Crypto.
| Атрибут | Что делал | Чем заменить | Где был |
|---|---|---|---|
behavior | Как движется текст в marquee: scroll, slide или alternate | @keyframes и animation | <marquee> |
direction | Направление движения текста в marquee | animation-direction и transform | <marquee> |
scrollamount | Скорость движения текста | animation-duration | <marquee> |
scrolldelay | Пауза между шагами движения | animation-delay | <marquee> |
truespeed | Точная скорость движения без округления задержки | animation-duration | <marquee> |
loop | Сколько раз повторить движение или звук | animation-iteration-count; у звука атрибут loop у audio | <marquee>, <bgsound> |
balance | Баланс левого и правого каналов звука | audio и Web Audio API | <bgsound> |
volume | Громкость фоновой музыки | audio и свойство volume в JavaScript | <bgsound> |
gutter | Расстояние между колонками текста | column-gap | <multicol> |
challenge | Запрос для создания ключа | Web Crypto API | <keygen> |
keytype | Алгоритм ключа | Web Crypto API | <keygen> |
prompt | Текст перед полем поиска | label и input type="search" | <isindex> |
n | Номер, на который ссылается якорь | id | <nextid> |
select | Какое содержимое показывать вместо тега content | slot | <content> |
form | Форма, к которой относится поле keygen | Web Crypto API | <keygen> |
src | Адрес звука или страницы фрейма | audio с src; вместо frame iframe | <bgsound>, <frame> |
Источники: HTML Living Standard, список атрибутов, MDN, справочник атрибутов HTML, MDN, атрибуты ARIA.