Устаревшие теги и атрибуты

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 для всех элементов.