Статус атрибутов: устарело или устарело?

Я новичок в HTML 5, и у меня есть проблемы с поиском статуса атрибута в различных документах по стандартизации W3 HTML.

Например, атрибут bgcolor элемента <body> больше не следует использовать, начиная с HTML 4.01. Это устарело. (см.: http://www.w3.org/TR/html4/present/graphics.html#h-15.1.1).

Однако каков его статус в HTML 5? В спецификации разметки HTML этот атрибут помечен как устаревший (см.: http://www.w3.org/TR/html-markup/body.html).

Означает ли это, что в книге этот атрибут больше не существует в HTML 5?

Учитывая написание стандартного совместимого клиента, к какой ссылке в документах я должен обратиться, чтобы иметь точную и определенную работу с атрибутом? Просто бросить его, потому что он устарел? Оставить это там, но в остальном быть глухим к этому (узел атрибута есть, но он не имеет значения)?

Где это зафиксировано в документах по стандартизации?


person hakre    schedule 18.11.2012    source источник
comment
Ваши вопросы касаются официальной точки зрения W3? Как пользовательские агенты должны относиться к устаревшим функциям?   -  person Mr Lister    schedule 18.11.2012
comment
@Dale может указать раздел, на который вы указываете, поскольку эта ссылка не имеет смысла.   -  person NullPoiиteя    schedule 18.11.2012
comment
@Mr Lister: Как я правильно понял, HTML 5 определяет, как обрабатывать различные статусы. Так что конечно, задокументированная точка зрения, иначе было бы неконструктивно просить об этом. Я имею в виду, что я не могу вытащить Netscape 2.01 Gold и сказать, что с ним так сделано. Ну, я мог бы, но это не то, о чем я прошу;)   -  person hakre    schedule 18.11.2012
comment
да. Ну, HTML 4 позволял пользовательским агентам сохранять значение неизвестных атрибутов (чтобы они могли быть запрошены, например, Javascript), но HTML5 этого не делает, поэтому, если вам нужно поместить значение в элемент, используйте data -*, потому что для этого они и нужны. И я хотел бы найти официальную ссылку, чтобы я мог дать вам ссылку.   -  person Mr Lister    schedule 18.11.2012
comment
@hakre - На самом деле, DTD 3.2 не говорит, что делать с bgcolor, он просто указывает, что он действителен. В спецификации 3.2 говорится, что это цвет фона для тела документа, но не определяется, что это значит. Точные детали рендеринга оставлены для определения более поздней спецификации CSS.   -  person Alohci    schedule 18.11.2012
comment
Просто хотел упомянуть, что у меня есть букмарклет, который на лету избавляется от устаревших атрибутов и выдает «сгенерированный» исходный html, чтобы вы могли видеть, от каких атрибутов вам нужно избавиться в существующей разметке. не стесняйтесь использовать его › keithwyland.github.com/attrebuke   -  person keithwyland    schedule 23.01.2013


Ответы (1)


Если вы спрашиваете, что должен делать пользовательский агент в случае bgcolor для элемента <body>, который определен для HTML5 в Раздел рендеринга, где сказано:

Когда элемент body имеет установленный атрибут bgcolor, ожидается, что новое значение будет проанализировано с использованием правил анализа устаревшего значения цвета, и если это не вернет ошибку, ожидается, что пользовательский агент обработает атрибут как презентационную подсказку. установка свойства 'background-color' элемента на результирующий цвет.

person Alohci    schedule 18.11.2012
comment
Итак, это указано для каждого конкретного имени атрибута имени конкретного элемента? Или есть общее правило? И в чем тогда смысл устареть? Где определить, что это значит, когда атрибут устарел? - person hakre; 18.11.2012
comment
«Устаревшие» означает, что веб-авторы не должны их использовать. Является ли элемент или атрибут устаревшим, не имеет отношения к реализации пользовательских агентов. - person Alohci; 18.11.2012
comment
Что ж, похоже, весь атрибут bgcolor был переопределен в HTML5. Таким образом, шаг состоит в том, чтобы сначала сделать его устаревшим, чтобы игнорировать правила более ранних версий HTML (поскольку он был объявлен устаревшим ранее и устарел сейчас, он больше не существует), а затем ввести новое значение и правила для обработки. Тогда было бы проще пометить его как устаревшее и переопределить. - person hakre; 18.11.2012
comment
Я так не думаю. В браузерах bgcolor в HTML5 делает то, что всегда делал. Он устарел, потому что вместо этого авторы должны использовать CSS. Но браузеры также должны поддерживать старые веб-страницы, поэтому они должны обрабатывать bgcolor с обратной совместимостью. - person Alohci; 18.11.2012
comment
Что ж, правила синтаксического анализа для HTML 5 (как вы их изложили) не обратно совместимы с HTML 4.01. Так что мне интересно, как это сочетается хорошо. Кроме того, это создает дополнительное бремя для авторов и разработчиков (что само по себе не должно обсуждаться, первым шагом будет фактически иметь ссылку на то, что значения и их анализ изменились). - person hakre; 18.11.2012
comment
Верно. Понятие HTML5 о backward compatibility заключается в том, что спецификация должна быть обратно совместима с устаревшей обработкой реальных веб-страниц, и не обязательно должна быть обратно совместима с предыдущими спецификациями HTML. - person Alohci; 18.11.2012
comment
Значит, обратная совместимость в HTML 5 не распространяется на стандартные реализации предыдущих версий HTML? Просто прошу понять это правильно, это обратная совместимость с неизвестным прошлым? Интересно, как это должно работать, иначе есть смысл иметь эту эзотерику, если вы видите, кто сейчас платит редакторам. :) - person hakre; 18.11.2012
comment
Идея состоит в том, что спецификация HTML5 документирует это неизвестное прошлое. Насколько я понимаю, все, что вам нужно для реализации bgcolor в браузере, находится либо в спецификации HTML5, либо в спецификации CSS. - person Alohci; 18.11.2012
comment
Я не люблю рассуждать здесь об идеях, которые, например, я не вижу представленными в книге. Кроме того, я не понимаю в спецификациях несоответствие между отсутствием атрибута bgcolor с тегом body и когда элемент body имеет установленный атрибут bgcolor. Итак, есть ли в книге атрибут bgcolor или нет? - person hakre; 18.11.2012
comment
Есть для браузерных реализаций — когда и где для них это имеет смысл. Это презентационный намек, потому что, например, bgcolor не имеет смысла в браузере Брайля. - person Alohci; 18.11.2012
comment
Хм, целых background-color. Презентация. - person hakre; 18.11.2012
comment
Вы должны различать браузеры, совместимые с HTML5, и браузеры, не совместимые с HTML5. Если ваш браузер использует HTML5, он должен рассматривать устаревшие атрибуты в документах HTML5 как несуществующие; то есть игнорировать их как мусор. Если браузер не распознает HTML5, он должен угрожать документу как HTML4 (или любой другой версии, о которой он знает) и соответствующим образом обрабатывать эти атрибуты. Вот и все. - person Mr Lister; 18.11.2012
comment
Как написано, у меня проблемы с тем, чтобы найти это в книгах. - person hakre; 18.11.2012
comment
@hakre - Это потому, что этого нет, потому что это неправда. - person Alohci; 18.11.2012