#html #browser #standards #w3c #deprecated
#HTML #браузер #стандарты #w3c #не рекомендуется
Вопрос:
Что плохого в использовании устаревших или еще не реализованных HTML-тегов? Разве их использование не улучшает переносимость в старые браузеры? Например, сегодня при проверке некоторых HTML-документов я получил эти два сообщения:
Предупреждение: атрибут language в элементе script устарел. Вы можете смело опустить это.
Предупреждение: элемент bdi пока не поддерживается браузерами.
Я использую
<script language="javascript" type="text/javascript">
поскольку в случае, если пользователь использует очень устаревший браузер (например, IE 5), который не интерпретирует тип атрибута, он все равно работает, интерпретируя «устаревший» язык атрибута.
И
<bdi>
в случае, если пользователь использует достаточно обновленный браузер, который интерпретирует его.
Насколько я знаю, если браузер не «знает» атрибут / элемент, он просто опускает его, так что, можно ли это сделать или я что-то упускаю?
Комментарии:
1. Вы ориентируетесь на оба браузера, совместимых с HTML5, и IE5? Браузер, выпущенный более десяти лет назад? Вероятно, вам придется заставить валидатор плакать и просто игнорировать его. С положительной стороны, это звучит так, как будто вы хорошо знаете свою пользовательскую базу и что она ограничена. Просто игнорируйте средство проверки.
2. Эти сообщения являются предупреждениями, а не ошибками, именно по тем причинам, которые вы описываете. Обычно они указывают на ошибки при разработке, но иногда оправданы. У вас есть обоснование. Все в порядке.
3. Хорошо, ребята, я сделаю это. Я думал, что предупреждение = противоречит стандартам W3C, но, похоже, я ошибался. Спасибо за ответ
Ответ №1:
Что ж, использование устаревших тегов допустимо до тех пор, пока это не является необходимым для работы страницы. Я бы избегал использования таких вещей, как <marquee>
, но я не вижу причин, по которым ваш элемент script является неправильным. Однако, если возможно, я бы избегал вашего тега bdi, поскольку не все браузеры могут его использовать.
Ответ №2:
Согласно спецификации W3C (черновик) для HTML5, можно использовать атрибут language в теге, если он соответствует паре правил, которым, похоже, соответствует ваш. Спецификация называет это «Предупреждениями для устаревших, но соответствующих функций». Так что я бы не стал слишком беспокоиться об этом.
http://dev.w3.org/html5/spec/Overview.html#warnings-for-obsolete-but-conforming-features
Для других устаревших атрибутов я создал небольшой букмарклет, который удаляет устаревшие (в HTML5) атрибуты со страницы, чтобы вы могли визуально увидеть, какой эффект будет иметь место, если браузер в конечном итоге полностью перестанет поддерживать атрибут. Проверьте это здесь -> attrebuke