# 4 Соответствие: требования и рекомендации

Содержание

1. Определения
2. SGML
3. Тип содержимого text/html

В этом разделе мы начинаем спецификацию HTML 4.0, начиная с договора между авторами, документами, пользователями и агентами пользователей.

Ключевые слова "НУЖНО", "НЕ НУЖНО", "НЕОБХОДИМО", "СЛЕДУЕТ", "НЕ СЛЕДУЕТ", "РЕКОМЕНДУЕТСЯ", "ВОЗМОЖНО" и "НЕОБЯЗАТЕЛЬНО" в этом документе следует интерпретировать, как описано в [RFC2119]. Однако для простоты чтения эти слова в данной спецификации напечатаны не в верхнем регистре.

Иногда авторы этой спецификации дают рекомендации для пользователей и их агентов. Эти рекомендации не являются нормативными и соответствие этой спецификации не зависит от их реализации. Эти рекомендации содержатся в выражениях "Мы рекомендуем...", "Эта спецификация рекомендует..." и подобных им.

## 4.1 Определения

Документ HTML
  Документ HTML - это документ SGML, отвечающий ограничениям, налагаемым данной спецификацией.
Автор
  Автор - это человек или программа, пишущая или генерирующая документы в формате HTML. Средство разработки - это отдельный случай автора, а именно программа, генерирующая код HTML.

  Мы рекомендуем авторам создавать документы, соответствующие строгому DTD, а не другим DTD, определяемым этой спецификацией. Подробнее о DTD, определенных в HTML 4.0, см. в разделе информация о версии.

Пользователь
  Пользователь - это человек, взаимодействующий с агентом пользователя для просмотра, прослушивания или другого использования сгенерированного документа в формате HTML.
Агент пользователя
  Агент пользователя - это любое устройство, интерпретирующее документы в формате HTML. Агенты пользователя включают визуальные браузеры (текстовые и графические), невизуальные браузеры (аудио, Бройля), поисковые машины, прокси и т.д.

  Соответствующий агент пользователя для HTML 4.0 - это агент, отвечающий обязательным условиям ("должно") этой спецификации, включая следующие:

  - Агент пользователя должен избегать наложения произвольных ограничений длины на литералы значений атрибутов (см. подраздел о возможностях в разделе Объявление SGML). Вводную информацию по атрибутам SGML можно получить в разделе определения атрибутов.
  - Агент пользователя должен гарантировать, что генерация изображения не изменяется в связи с наличием или отсутствием начальных и конечных тэгов, если в HTML DTD указывается, что они не обязательны. Вводную информацию об элементах SGML см. в разделе определения элементов.
  - Для совместимости с предыдущими версиями мы рекомендуем, чтобы средства интерпретации HTML 4.0 поддерживали HTML 3.2 (см. [HTML32]) и HTML 2.0 (см. [RFC1866]).
Ошибочные состояния
  В этой спецификации не определяется, как соответствующие ей агенты пользователя обрабатывают общие ошибочные состояния, включая действия в случае, если они встречают элементы, атрибуты, значения атрибутов или комбинаций, не указанные в этом документе.

  Однако для получения информации о рекомендуемой обработке ошибок обратитесь к информации о недопустимых документах.

Нежелательные
  Нежелательный элемент или атрибут - это элемент, устаревший вследствие применения новых конструкций. Нежелательные элементы определены справочного руководства и явно помечены как нежелательные. Нежелательные элементы могут устареть в будущих версиях HTML.

  Агентам пользователя следует по-прежнему поддерживать нежелательные элементы для обеспечения совместимости с предыдущими версиями.

  В определениях элементов и атрибутов явно указано, если они нежелательны.

  В этой спецификации содержатся примеры, показывающие, как можно избежать использования нежелательных элементов. В большинстве случаев это зависит от поддержки агентом пользователя таблиц стилей. В общем случае, авторам следует использовать таблицы стилей для получения стилистических эффектов и эффектов форматирования вместо атрибутов представления HTML. Атрибуты представления HTML нежелательны, когда существует альтернатива таблиц стилей (см., например, [CSS1]).

Устаревшие
  Устаревший элемент или атрибут - это элемент или атрибут, поддержка которых агентами пользователя не гарантируется. Устаревшие элементы не определяются в этой спецификации, но перечислены в разделе изменений справочного руководства.

## 4.2 SGML

HTML 4.0 - это применение SGML, соответствующее международному стандарту ISO 8879 -- Standard Generalized Markup Language SGML (определенному в [ISO8879]).

Примеры в тексте соответствуют строгим определениям типа документа, если пример не относится к элементам или атрибутам, определенным переходным определением типа документа или определением типа документа с кадрами. Для краткости большая часть примеров в данной спецификации не начинается с объявления типа документа, обязательного для начала любого документа в формате HTML.

Фрагменты DTD в определениях элементов приводятся из строгих определений типа документа, кроме элементов, относящихся к кадрам.

Подробную информацию об использовании строгих, переходных DTD или DTD с кадрами см. в разделе информация о версии HTML.

Комментарии в HTML 4.0 DTD не имеют нормативного значения; они используются только для информации.

Агенты пользователя не должны генерировать инструкции обработки SGML (например, <?full volume>) или комментарии. Подробнее об этой и других возможностях SGML, которые допустимы в HTML, но не поддерживаются широко агентами пользователя, обратитесь к разделу возможности SGML с ограниченной поддержкой.

## 4.3 Тип содержимого text/html

Документы HTML отправляются через Интернет в виде последовательности байтов, сопровождаемой информацией о кодировке (описанной в разделе кодировки символов). Структура передачи, называемая message entity, определяется [RFC2045]) и [RFC2068]. message entity с типом содержимого "text/html" представляет документ в формате HTML.

Тип содержимого для документов HTML определяется следующим образом:

Имя типа содержимого:
  text
Имя подтипа содержимого:
  html
Обязательные параметры:
  нет
Необязательные параметры:
  charset
Кодировка:
  разрешены все кодировки
Безопасность:
  См. замечания о безопасности

Необязательный параметр "charset" обозначает кодировку символов, используемую для представления документа HTML в качестве последовательности байт. Допустимые значения этого параметра определены в разделе кодировки символов. Хотя этот параметр необязателен, рекомендуется всегда указывать его.