Устаревшие теги и атрибуты
HTML5 активно взаимодействует с CSS, поэтому запрет на многие атрибуты, начатый в HTML4 в пользу стилей, только усилился. Включение новых элементов вроде <video> и <audio> также сводит на нет теги, на которые возлагалась функция мультимедиа.
Устаревшие теги
Эти теги более не поддерживаются и должны исключаться автором из кода.
- <applet> — добавляет Java-апплет в документ. Вместо него следует использовать <embed> или <object>.
- <acronym> — этот тег вызывал постоянные вопросы, что такое акроним и чем он отличается от аббревиатуры. Для упрощения остался единственный тег <abbr>.
- <bgsound> — определяет музыкальный файл, который будет проигрываться на веб-странице при её открытии. Для воспроизведения музыки используйте новый элемент <audio>.
- <dir> — создает список, содержащий названия директорий, вместо него используйте <ul>.
- <frame>, <frameset>, <noframe> — фреймы более не поддерживаются. Если они вам требуются, используйте другую версию HTML или <iframe> совместно со стилями.
- <isindex> — предназначен для поискового индекса в текущем документе. Комбинация <form> и <input> лучше справляется с этой задачей.
- <listing>, <xmp> — для вывода листинга программы предназначены <pre> и <code>.
- <nextid> — этот тег не предназначен для людей и указывает идентификатор следующего документа для автоматических редакторов HTML. Полностью исключён.
- <noembed> — предназначен для отображения информации на веб-странице, если браузер не поддерживает работу с плагинами. В качестве альтернативы используйте <object>.
- <plaintext> — отображает содержимое контейнера «как есть», любые теги выводятся как текст. Вместо тега используйте MIME-тип text/plain.
- <rb> — определяет базовый текст внутри <ruby>. Этот тег полностью исключён.
- <strike> — для зачёркнутого текста применяется <s>, а для указания редакторской правки <del>.
<basefont>, <big>, <blink>, <center>, <font>, <marquee>, <multicol>, <nobr>, <spacer>, <tt>, <u> — вместо этих тегов управляющих видом текста применяются стили.
Обратите внимание, что тег <small> допустим, хотя относится к той же группе тегов, что и <big>.
Устаревшие, но поддерживаемые атрибуты
Атрибут http-equiv тега <meta> для указания языка должен заменяться атрибутом lang.
Было:
<meta http-equiv="content-language" content="ru" />
Стало:
<html lang="ru">
Атрибут name тега <a> должен заменяться атрибутом id. Если name присутствует, то должен содержать пустую строку или совпадать со значением id.
Было:
<a name="p12"></a>
Стало:
<a id="p12"></a>
Атрибут language тега <script> должен быть опущен. Если он присутствует, значение совпадает с JavaScript или другим типом, но в таком случае язык скрипта следует указать через type.
Было:
<script type="text/javascript" language="JavaScript">
Стало:
<script>
Атрибут border тега <img> не указывается, а толщина границы задаётся через стили. Если этот атрибут присутствует, его значение должно быть 0.
Было:
<img border="1">
Стало:
<img style="border: 1px solid black">
Наличие атрибута summary тега <table> приведёт к предупреждению.
Устаревшие атрибуты
- Элемент <a>: charset, coords, shape, methods, name, rev, urn.
- Элемент <area>: nohref.
- Элемент <body>: alink, bgcolor, link, marginbottom, marginheight, marginleft, marginright, margintop, marginwidth, text, vlink.
- Элемент <br>: clear.
- Элемент <embed>: name.
- Элемент <head>: profile.
- Элемент <html>: version.
- Элемент <iframe>: longdesc.
- Элемент <img>: longdesc, lowsrc, name.
- Элемент <input>: usemap.
- Элемент <link>: charset, methods, rev, target, urn.
- Элемент <meta>: scheme.
- Элемент <option>: name.
- Элемент <object>: archive, classid, code, codebase, codetype, declare, standby
- Элемент <param>: type, valuetype.
- Элемент <script>: event, for, language.
- Элемент <table>: datapagesize.
- Элемент <td> и <th>: abbr, axis.
Также запрещён атрибут datasrc для всех элементов.