Спецификация HTML 4.01 + Спецификация CSS2

         

Свободное пространство вокруг изображений и объектов


Определения атрибутов

hspace = pixels [CN]

Не рекомендуется.

Определяет размер свободного пространства слева и справа от

IMG, APPLET или OBJECT. Значение по умолчанию не определено, но обычно это небольшая ненулевая величина.

vspace = pixels [CN]

Не рекомендуется.

Определяет размер свободного пространства сверху и снизу от IMG, APPLET или OBJECT. Значение по умолчанию не определено, но обычно это небольшая ненулевая величина.



Таблицы


11.2.6 Ячейки: определения rowspan и colspan изменены. Теперь spans объединены в группы (рядов или столбцов);

11.3.2 Выравнивание: если "char=align" не поддерживается ПА, поведение не определено.


Содержание

Введение

Элементы конструирования таблиц

Элемент TABLE

Направление в таблице

Заголовок таблицы: элемент CAPTION



Группы рядов: элементы THEAD, TFOOT

и TBODY

Группы столбцов: элементы COLGROUP и COL Элемент

COLGROUP

Элемент COL

Подсчёт количества столбцов

Подсчёт ширины столбцов

Ряды: элемент TR

Ячейки: элементы TH

и TD Ячейки, занимающие несколько рядов или столбцов

Форматирование таблицы Пользовательскими Агентами (ПА)

Рамки и линии сетки

Горизонтальное и вертикальное выравниваниеНаследование установок выравниванияПоля ячейки

Представление таблиц невизуальными ПА

Ассоциирование заголовочной информации с ячейками данных

Категоризация ячеек

Алгоритм поиска заголовочной информации

Образец таблицы




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

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



Таблицы стилей


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

Стилевая информация может быть определена для конкретного элемента или для группы элементов. Стилевая информация может быть установлена в документе HTML или во внешней таблице стилей.

Механизм ассоциации таблицы стилей с документом не зависит от языка таблицы стилей.

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

Относительно много времени занимает обновление пользователями своих браузеров, и это означает, что постепенно новые возможности начнут широко использоваться. Одновременно, поскольку таблицы стилей предлагают более совершенный механизм представления, World Wide Web Consortium осуществляет постепенный отход от многих элементов и атрибутов представления документов HTML. В этой спецификации элементы и атрибуты "риска" отмечены как "не рекомендуемые". Они сопровождаются примерами того, как добиться того же эффекта применением других элементов или таблиц стилей.


Содержание

Введение

Добавление стиля в HTML Установка языка по умолчанию для таблиц стилей

Инлайн-стиль (внедрённый)

Информация о стиле в заголовках: элемент STYLE

Типы носителя

Внешние таблицы стиля

Основные и альтернативные таблицы стилей

Спецификация внешней таблицы стилей

Каскадные таблицы стилей

Media-зависимые каскады

Наследование и каскадирование

Скрытие данных стиля от ПА

Ссылки на таблицы стилей в заголовках HTTP



Таблицы стилей в документах HTML


14.6 Ссылка на таблицу стилей в заголовках HTTP: поскольку RFC 2616 не включает поле Link в заголовке, весь раздел квалифицирован только для предыдущих версий HTTP 1.1.



Текст


Содержание

Пробелы

Структурированный текст

Элементы абзаца:

EM, STRONG, DFN, CODE, SAMP, KBD, VAR,

CITE, ABBR и ACRONYM

Кавычки: элементы BLOCKQUOTE

и Q

Представление кавычек

Подиндекс и надиндекс: элементы SUB и SUP

Строки и параграфы

Параграф: элемент P

Управление обрывом строк

Форсирование обрыва строки: элемент BR

Запрет обрыва строк

Дефисы

Форматированный текст: элемент PRE

Визуальное представление параграфов

Маркировка изменений документа: элементы INS и DEL

В этом разделе рассматриваются вопросы структурирования текста. Элементы, представляющие текст (элементы выравнивания, элементы шрифта, таблицы стилей и т.д.), обсуждаются по всей спецификации. Информацию о символах см. в разделе Набор символов документа.



Текстовые строки


Атрибуты текста ( %Text в ОТД) делают его пригодным для чтения.
Введение об атрибутах см. в учебной дискуссии об атрибутах.



Текущая практика для макросов сценариев


Тело макроса состоит из одного или более операторов на языке сценариев по умолчанию (как и у внутренних атрибутов событий). Точка с запятой перед правой скобкой необходима всегда, поскольку иначе символ "}" рассматривается как часть тела макроса. Нужно также отметить, что кавычки всегда необходимы для атрибутов, содержащих макросы сценариев.

Атрибуты CDATA обрабатываются так:

Разборщик SGML вычисляет все мнемоники SGML (напр., ">").

Затем макросы сценариев вычисляются машиной скриптов.Наконец, результирующая строка символов предаётся приложению для последующей обработки.

Обработка макросов имеет место при загрузке документа (или перезагрузке), но не происходит при изменении размера документа, перерисовке и т.п.

НЕ РЕКОМЕНДУЕТСЯ:
Вот несколько примеров с использованием JavaScript. В первом чстаноавливается случайное значение для цвета фона страницы:

<BODY bgcolor='&{randomrgb};'>

Возможно, Вы хотите уменьшить яркость фона в вечернее время:

<BODY bgcolor='&{if(Date.getHours > 18)...};'>

В следующем примере JavaScript использован для установки координат карты изображений, обрабатываемой на стороне клиента:

<MAP NAME=foo> <AREA shape="rect" coords="&{myrect(imageuri)};" href="&{myuri};" alt=""> </MAP> Этот пример устанавливает размер изображения на базе свойств документа:

<IMG src="bar.gif" width='&{document.banner.width/2};' height='50%' alt="banner">

Вы можете установить URI для ссылки или изображения:

<SCRIPT type="text/javascript"> function manufacturer(widget) { ... } function location(manufacturer) { ... } function logo(manufacturer) { ... } </SCRIPT> <A href='&{location(manufacturer("widget"))};'>widget</A> <IMG src='&{logo(manufacturer("widget"))};' alt="logo">

Последний пример показывает, как атрибуты SGML CDATA могут быть выделены кавычками с использованием знаков одиночной или двойной кавычки. Если Вы используете одиночные кавычки вокруг строки, можно включить двойные кавычки как часть содержимого строки. Другой подход заключается в использовании &quot; для обозначения двойной кавычки:

<IMG src="&{logo(manufacturer(&quot;widget&quot;))};" alt="logo">



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


Документы HTML пересылаются по Internet как последовательность байтов и сопутствующей информации о кодировке (описанной в разделе кодировка символов ).

Структура передачи, называемой тело сообщения,

определена в [RFC2045] и [RFC2616].
Тело сообщения с типом содержимого

"text/html" представляет собой документ HTML.

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

Имя типа содержимого/Content type name:

textИмя подтипа содержимого/Content subtype name:html

Обязательные параметры/Required parameters:none/отсутствуют

Необязательные параметры/Optional parameters:charset/кодовый набор

Кодировка/Encoding considerations:допустима любая кодировка 

Безопасность/Security considerations:См. замечания по безопасности/security.

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

Хотя это и необязательный параметр, мы рекомендуем его всегда указывать.



Типы элементов управления формы (ЭУ)


HTML определяет следующие типы ЭУ:

кнопки

Авторы могут создавать кнопки трёх типов:

кнопки submit: при активации кнопка submit отправляет форму. Форма может содержать несколько кнопок submit;

кнопки reset: при активации кнопка reset устанавливает все ЭУ в их начальные значения;

кнопки push: кнопки push не имеют предопределённых функций. Каждая кнопка push может иметь клиентский сценарий (выполняемый на стороне клиента), ассоциированный с атрибутом event/событие. При возникновении события (напр., пользователь нажал кнопку, отпустил её и т.д.), включается ассоциированный сценарий (скрипт).

Автор должен указать язык сценария кнопки push путём объявления языка скриптов по умолчанию (в элементе META).

Авторы создают кнопки, используя ЭУ BUTTON, или ЭУ INPUT. См. определение этих ЭУ .

Примечание. Авторы должны иметь в виду, что возможности ЭУ BUTTON 

богаче, чем у INPUT.

переключатели/checkboxes

Переключатели (и radio-кнопки) это переключатели типа вкл./выкл., управляемые пользователем. Переключатель "включён", если установлен атрибут checked

ЭУ. Если форма отправлена, только переключатель "включён" может быть "действующим".

Несколько переключателей в форме могут использовать одно имя ЭУ. Так, например, переключатели позволяют пользователям выбрать несколько значений для одного свойства. ЭУ INPUT используется для создания переключателей.

radio-кнопки

Radio-кнопки похожи на переключатели/checkboxes, за исключением того, что, при использовании одного и того же имени ЭУ, они действуют взаимоисключающе: если одна выбрана "включено", все остальные с тем же именем "выключены". Элемент INPUT используется для создания ЭУ "radio-кнопка".

Если ни одна radio-кнопка из использующих общее имя первоначально не установлена во "включено", поведение пользовательского агента (ПА) по установлению того, какая из кнопок включена, не определено.

Примечание. Поскольку существующие приложения обрабатывают эту ситуацию по-разному, данная спецификация отличается от RFC 1866 ([RFC1866] раздел 8.1.2.4) в следующем:


В определённый момент времени только одна radio-кнопка из набора может быть "включена". Если ни один из элементов <INPUT> набора radio-кнопок не установлен (`CHECKED'), тогда ПА обязан вначале включить первую из кнопок набора.

Поскольку поведение ПА различно, авторы должны убедиться, что в каждом наборе radio-кнопок одна "включена".

меню

Меню дают возможность выбора из списка значений. Элемент SELECT

создаёт меню в комбинации с элементами OPTGROUP

и OPTION.



текстовые поля

Авторы могут создавать поля для ввода текста двух видов. Элемент INPUT создаёт однострочный ЭУ, а элемент TEXTAREA - многострочный. В обоих случаях, введённый текст становится текущим значением.



выбор файла/file select

ЭУ этого типа позволяют пользователям выбрать файлы, и их содержимое может пересылаться с формой. Элемент INPUT используется для создания ЭУ выбор файла/file select.



hidden control/скрытый ЭУ

Авторы могут создавать невидимые ЭУ, значения которых пересылаются вместе с формой. Обычно ЭУ этого типа используются для хранения информации при обмене клиент/сервер, которая иначе может быть утеряна из-за нестатичной природы HTTP (см. [RFC2616]). Элемент INPUT используется для создание скрытых ЭУ/hidden control.



ЭУ object


Авторы могут вставлять в форму общие объекты, чьи ассоциированные значения пересылаются вместе с другими данными. Авторы создают объект с помощью ЭУ

OBJECT
.

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


Типы ЭУ, создаваемых в элементе INPUT


Тип ЭУ, определяемый элементом INPUT, зависит от значения атрибута type:

text

Однострочный ЭУ для ввода текста.

password

Как "text", но вводимый текст изображается так, чтобы скрыть вводимые символы (напр., серией "звёздочек"). ЭУ этого типа часто используется для ввода специальной информации, напр., пароля. Заметьте, что текущее значение, это текст, введённый

пользователем, а не текст, изображаемый ПА.

Примечание. Разработчики программного обеспечения должны иметь в виду, что этот механизм обеспечивает лишь некоторую защиту. Хотя пароль маскируется ПАгентом от случайного просмотра, он передаётся на сервер в виде обычного текста и может быть прочитан кем-нибудь, имеющим низкоуровневый доступ к сети.

checkbox

Создаёт переключатель.

radio

Создаёт кнопку radio.

submit

Создаёт кнопку submit.

image

Создаёт кнопку submit. Значение атрибута src

определяет URI изображения, служащего для украшения кнопки. Из соображений доступности, авторы должны предоставлять альтернативный текст

установкой атрибута alt.

Если для щелчка на кнопке image используется указательное устройство (мышь и т.п.),

форма отправляется и координаты щелчка передаются серверу. Значение Х измеряется в пикселах от левого края изображения, а значение У - в пикселах от верхнего края изображения. Отправленные данные включают значения name.x=x-value и name.y=y-value, где "name" это значение атрибута name, а x-value и y-value

это значения координат x и y соответственно.

Если сервер выполняет разные действия в зависимости от места нажатия на элементе, пользователи неграфических браузеров окажутся в затруднительном положении. По этим причинам авторы должны предусматривать дополнительные варианты:

Использовать несколько кнопок submit (каждая со своим изображением) вместо единой графической кнопки submit. Авторы могут использовать таблицы стилей для управления положением кнопок.

Использовать клиентские карты изображений в сочетании со скриптами.

reset

Создаёт a кнопку reset.

button

Создаёт кнопку push. ПА должны использовать значение атрибута value как лэйбла кнопки.

hidden

Создаёт элемент hidden.

file

Создаёт ЭУ file select. ПА могут использовать значение атрибута value начальное имя файла.



Типы носителя


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

Данное объявление относится к элементам H1. При отображении на бизнес-совещании, все объекты будут голубого цвета. При печати - будут центрироваться.

<HEAD> <STYLE type="text/css" media="projection"> H1 { color: blue} </STYLE>

<STYLE type="text/css" media="print"> H1 { text-align: center } </STYLE>

Здесь добавлены звуковой эффекты к якорю для использования в голосовом выводе:

<STYLE type="text/css" media="aural"> A { cue-before: uri(bell.aiff); cue-after: uri(dong.wav)} </STYLE> </HEAD>

Media-элемент представляет особый интерес при применении к таблице стилей, поскольку ПА может сэкономить время, запрашивая по сети только те таблицы, которые применяются непосредственно к текущему устройству. К примеру, речевые браузеры могут исключить загрузку таблиц стилей, созданных для визуального представления. См. также раздел media-зависимые каскады.



Типы содержимого формы


Атрибут enctype элемента FORM определяет тип содержимого, используемый при кодировке набора данных формы для отправки на сервер. ПА должен поддерживать типы содержимого, перечисленные ниже. Поведение для других типов содержимого не определено.

См. раздел о использовании escape-последовательностей для обозначения амперсандов в значениях атрибутов URI.



Типы содержимого/носителя (типы MIME)


Примечание: "Тип носителя" (определённый в [RFC2045] и [RFC2046]) специфицирует природу связанного ресурса. Эта спецификация использует термин "content type\тип содержимого", а не "media type\тип носителя", в соответствии с текущей практикой.
В то же время, в этой спецификации, "media type" может относиться к дескрипторам там, где ПА воспроизводит документ.

Этот тип представлен в ОТД:

%ContentType;.

Тиры содержимого нечувствительны к регистру.

Примеры типа содержимого: "text/html", "image/png", "image/gif", "video/mpeg", "text/css" и "audio/basic".
Текущий список зарегистрированных MIME-типов см. в [MIMETYPES].



Типы ссылок


Авторы могут использовать следующие распознаваемые типы ссылок, перечисленные здесь с их интерпретацией в соответствии с соглашениями. В ОТД %LinkTypes ссылается на разделённый пробелами список типов ссылок. Пробелы внутри типов ссылок недопустимы.

Типы ссылок нечувствительны к регистру, т.е., "Alternate" значит то же, что и "alternate".

ПА, поисковые машины и т.д. могут интерпретировать эти типы ссылок различными способами. Например, ПА может предоставить доступ к связанному ресурсу через панель навигации/navigation bar.

Alternative/Альтернативный

Замещающая версия для документа, на который указывает ссылка. Используемый вместе с атрибутом lang,

он подразумевает переведённую версию документа. Если используется вместе с атрибутом

media, подразумевает версию, созданную для другого носителя.
Stylesheet/Таблица стилей

Ссылается на внешнюю таблицу стилей. См. детали в разделе внешние таблицы стилей. используется вместе со ссылкой типа "Alternate" внешних таблиц, выбираемых пользователем.Старт/Start

Ссылается на первый документ в серии документов. Эта ссылка сообщает поисковой машине, какой документ установлен автором в качестве исходного пункта серии документов.
Next/СледующийСсылается на следующий документ в линеарной последовательности документов. ПА могут заранее подгрузить документ "next", чтобы уменьшить в последующем затраты времени.
Prev/Предыд.

Ссылается на предыдущий документ в упорядоченной серии документов. Некоторые ПА также поддерживают синоним "Previous".
Contents/Содержание

Ссылается на документ с оглавлением. Некоторые ПА также поддерживают синоним ToC(от "Table of Contents").


Index/ИндексСсылается на документ по индексу.


Glossary/Словарь-справочникСсылается на документ из словаря терминов, имеющий отношение к текущему документу.
Copyright/Авторские праваСсылается на оператор авторских прав для текущего документа.
Chapter/ГлаваСсылается на документ, являющийся главой в серии документов.
Section/РазделСсылается на документ, являющийся разделом в серии документов.
Subsection/Подраздел

Ссылается на документ, являющийся подразделом в серии документов.
Appendix/Дополнение

Ссылается на документ, являющийся дополнением в серии документов. Help/Помощь

Ссылается на документ помощи (больше информации, ссылки на др. ресурсы и т.д.)
Bookmark/Закладка

Ссылается на закладку. Закладка это ссылка на точку внутри документа. Атрибут

title, например, может быть использован для маркировки закладкой. Заметьте, что в каждом документе может быть установлено несколько закладок.

Автор может пожелать определить дополнительные типы ссылок, не описанные в этой спецификации. Чтобы сделать это, он должен использовать профиль

для цитирования соглашений, используемых для определения типов ссылок. См. атрибут profile элемента HEAD.

Для продолжения обсуждения типов ссылок см. ссылки в документах HTML.



Управление обрывом строки


Обрыв строки определён как символ возврата каретки (&#x000D;), символ прогона строки (&#x000A;) или пара символов возврат каретки/прогон строки. Все обрывы строк являются пробелами.

Больше информации о SGML спецификации обрывов строк см. в примечаниях об обрыве строки в приложении.



URI


Данная спецификация использует термин URI, как определено в [URI] (см. также [RFC1630]).

Заметьте, что URI включают URL (как определено в [RFC1738] и [RFC1808]).

Относительные URI дополняются до полных URI, используя базовые URI.

[RFC1808], раздел 3, определяет нормативный алгоритм этого процесса. Дополнительную информацию о базовых URI см. в разделе базовые URI в главе о ссылках.

URI представляются в ОТД мнемоникой %URI;.

URI в общем случае нечувствительны к регистру.

Могут быть URI, или части URI, где регистр не имеет значения (напр., имя машины/хост), но их идентификация может быть затруднительна. Пользователь должен всегда предполагать, что URI чувствительны к регистру (чтобы быть уверенными в последствиях своих действий).

Пожалуйста, прочтите дополнение к информации о не-ASCII символах в значениях атрибутов URI.



Установка целевого фрэйма


Примечание. Информацию о текущей практике определения целевого фрэйма см. замечания о фрэймах

в приложении.

Определение атрибута

target = frame-target [CI]

Определяет имя фрэйма, в котором будет открыт документ.

Установив атрибут name, авторы могут ссылаться на него как на "target" (целевой) для ссылок, определённых в других элементах. Атрибут target

может быть установлен для элементов, создающих ссылки (A,

LINK), карты изображений (AREA) и формы (FORM).

См. раздел имя целевого фрэйма о распознавании имён фрэймов.

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

frameset.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>A frameset document</TITLE> </HEAD> <FRAMESET rows="50%,50%"> <FRAME name="fixed" src="init_fixed.html"> <FRAME name="dynamic" src="init_dynamic.html"> </FRAMESET> </HTML>

затем в init_dynamic.html мы создаём ссылку на фрэйм с именем "dynamic":

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE>A document with anchors with specific targets</TITLE> </HEAD> <BODY> ...начало документа...

<P>Now you may advance to <A href="slide2.html" target="dynamic">slide 2.</A> ...документ...

<P>You're doing great. Now on to <A href="slide3.html" target="dynamic">slide 3.</A> </BODY> </HTML>

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

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

В настоящее время отсутствует возможность кодировать всё состояние набора фрэймов в URI. В то же время, многие ПА не позволяют пользователям устанавливать закладки на набор фрэймов.

Наборы фрэймов могут сделать навигацию в "истории" ПА более затруднительной для пользователя.



Установка целевого фрэйма по умолчанию


Если многие ссылки в одном документе имеют один целевой фрэйм, можно установить его однократно в атрибуте target

каждого элемента. Это делается установкой атрибута target

элемента BASE.

Мы возвращаемся к предыдущему примеру, размножая на этот раз информацию о цели, определяя её в элементе BASE и удаляя её из элементов

A.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE>A document with BASE with a specific target</TITLE> <BASE href="http://www.mycom.com/Slides" target="dynamic"> </HEAD> <BODY> ...начало документа...

<P>Now you may advance to <A href="slide2.html">slide 2.</A> ...документ...

<P>You're doing great. Now on to <A href="slide3.html">slide 3.</A> </BODY> </HTML>



Установка языка по умолчанию для таблиц стилей


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

Авторы должны использовать элемент META для установки в данного документе языка по умолчанию для таблиц стилей. Для этого, например, автор должен поместить следующее объявление в

HEAD своих документов:

<META http-equiv="Content-Style-Type" content="text/css">

Язык по умолчанию для таблиц стилей может быть также установлен в заголовках HTTP. Предыдущее объявление META эквивалентно объявлению в заголовке HTTP:

Content-Style-Type: text/css

ПА должны определять язык по умолчанию для таблиц стилей документа в такой последовательности (приоритет по убыванию):

Если какое-либо объявление META устанавливает "Content-Style-Type", это выражение определяет язык по умолчанию для таблиц стилей.

Иначе, если какое-либо объявление заголовка HTTP устанавливает "Content-Style-Type", тогда данное выражение определяет язык по умолчанию для таблиц стилей.

Иначе языком по умолчанию является "text/css".

Документы, содержащие элементы с установленным атрибутом style, но не определившие язык по умолчанию для таблиц стилей, являются некорректными. Авторские утилиты должны генерировать информацию о языке по умолчанию для таблиц стилей (обычно в объявлении META) так, чтобы ПА не должны были обращаться к языку по умолчанию - "text/css".



Установка языка скриптов


Поскольку HTML не соотносится с определённым языком сценариев, авторы документа должны однозначно указать ПА язык каждого скрипта. Это можно сделать, объявив значение по умолчанию или локально.



Установка начального содержимого фрэйма


Атрибут src определяет документ, первоначально отображаемый в данном фрэйме.

Следующий пример документа HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>A frameset document</TITLE> </HEAD> <FRAMESET cols="33%,33%,33%"> <FRAMESET rows="*,200"> <FRAME src="contents_of_frame1.html"> <FRAME src="contents_of_frame2.gif"> </FRAMESET> <FRAME src="contents_of_frame3.html"> <FRAME src="contents_of_frame4.html"> </FRAMESET> </HTML>

должен создать фрэйм примерно такого вида:

------------------------------------------ |Frame 1 |Frame 3 |Frame 4 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -------------| | | |Frame 2 | | | | | | | | | | | ------------------------------------------

и указать ПА загрузить каждый файл в отдельный фрэйм.

Содержимое фрэйма не должно быть в том же документе, что и определение фрэйма.

НЕВЕРНОЕ ИСПОЛЬЗОВАНИЕ:

Следующее определение набора фрэймов HTML неверно, поскольку содержимое второго фрэйма находится в том же документе, что и определение набора фрэймов.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//RU" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>Документ - набор фрэймов</TITLE> </HEAD> <FRAMESET cols="50%,50%"> <FRAME src="contents_of_frame1.html"> <FRAME src="#якорь_в_этом_же_документе"> <NOFRAMES> ...текст...

<H2><A name="якорь_в_этом_же_документе">Важный раздел</A></H2> ...текст...

</NOFRAMES> </FRAMESET> </HTML>



Установка направления внедрённого текста


Двунаправленный алгоритм [UNICODE] автоматически поворачивает внедрённые последовательности символов в соответствии с их унаследованным направлением (как показано в предыдущих примерах). Однако в целом только один уровень внедрения может быть просчитан. Чтобы установить дополнительные уровни внедрённых изменений направления, придётся использовать атрибут dir в инлайн-элементах.

Рассмотрим тот же текст, что и ранее:

english1 HEBREW2 english3 HEBREW4 english5 HEBREW6

Предположим, преобладающим языком документа, содержащего этот параграф, является английский. С другой стороны, это предложение на английском содержит раздел на еврейском от HEBREW2 до HEBREW4, и раздел на еврейском содержит в себе английский (english3). Нужное представление предложения таково:

english1 4WERBEH english3 2WERBEH english5 6WERBEH -------> E <----------------------- H -------------------------------------------------> E

Чтобы выполнить два изменения направления, мы должны предоставить дополнительную информацию путём явного разграничения. В этом примере мы используем элемент SPAN и атрибут dir для разметки текста:

english1 <SPAN dir="RTL">HEBREW2 english3 HEBREW4</SPAN> english5 HEBREW6

Авторы могут также использовать специальные символы Unicode для выполнения множественных внедрённых изменений направления текста. Для получения внедрения "слева-направо", окружите внедряемый текст символами LEFT-TO-RIGHT EMBEDDING ("LRE", 16-ричная 202A) и POP DIRECTIONAL FORMATTING ("PDF", 16-ричная 202C). Для получения внедрения "справа-налево", окружите внедряемый текст символами RIGHT-TO-LEFT EMBEDDING ("RTE", 16-ричная l 202B) и PDF.

Использование разметки направления HTML с символами Unicode. Авторы и разработчики авторских программных продуктов должны знать, что конфликты могут увеличиться, если атрибут dir в инлайн-элементах (включая BDO) соседствует с символами форматирования [UNICODE]. Лучше использовать то или другое. Метод разметки даёт больше гарантии структурной целостности документа и облегчает решение некоторых проблем при редактировании двунаправленного текста HTML в простом текстовом редакторе, но некоторые программы могут быть более адаптированы к использованию символов [UNICODE]. Если используются оба метода, нужно быть очень внимательным, устанавливая вложенную разметку и внедрённые изменения направления, иначе результаты отображения могут быть непредсказуемыми.



Устаревшие элементы


Следующие элементы устарели: LISTING, PLAINTEXT и XMP. Вместо них авторы должны употреблять элемент PRE.



Версии на других языках


Английская версия этой спецификации является единственным нормативным документом. Однако переводы этого документа можно найти по адресу:

http://www.w3.org/MarkUp/html4-updates/translations



Визуальное представление фрэйма


В этом примере показано использование декоративных атрибутов элемента FRAME. Мы определяем, что фрэйм 1 не разрешает прокрутку. Фрэйм 2 оставляет свободное пространство вокруг содержимого (первоначально - файл изображения), фрэйм не меняет размеров. Между фрэймами 3 и 4 бордюра нет. Бордюры будут прорисованы (по умолчанию) между фрэймами 1, 2 и 3.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>A frameset document</TITLE> </HEAD> <FRAMESET cols="33%,33%,33%"> <FRAMESET rows="*,200"> <FRAME src="contents_of_frame1.html" scrolling="no"> <FRAME src="contents_of_frame2.gif" marginwidth="10" marginheight="15" noresize> </FRAMESET> <FRAME src="contents_of_frame3.html" frameborder="0"> <FRAME src="contents_of_frame4.html" frameborder="0"> </FRAMESET> </HTML>



Визуальное представление изображений, объектов и аплетов


Все атрибуты элементов IMG

и OBJECT, касающиеся визуального выравнивания и представления, не рекомендуются. Вместо этого рекомендуется использовать таблицы стилей.



Визуальное представление параграфов


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

То, как параграфы отображаются, зависит от ПА. Параграфы обычно выравниваются по левому краю с "рваным" правым обрезом. Другие значения по умолчанию предусмотрены для письма справа-налево.

HTML ПА традиционно отображают параграфы с пропусками над и под, например,

At the same time, there began to take form a system of numbering, the calendar, hieroglyphic writing, and a technically advanced art, all of which later influenced other peoples.

Within the framework of this gradual evolution or cultural progress the Preclassic horizon has been divided into Lower, Middle and Upper periods, to which can be added a transitional or Protoclassic period with several features that would later distinguish the emerging civilizations of Mesoamerica.

Это контрастирует со стилем, где есть отступы в первых строках параграфов и обычные расстояния между последней строкой одного и первой строкой другого параграфа, например,

At the same time, there began to take form a system of numbering, the calendar, hieroglyphic writing, and a technically advanced art, all of which later influenced other peoples. Within the framework of this gradual evolution or cultural progress the Preclassic horizon has been divided into Lower, Middle and Upper periods, to which can be added a transitional or Protoclassic period with several features that would later distinguish the emerging civilizations of Mesoamerica.

Следуя первоначальным установкам браузера NCSA Mosaic browser в 1993 г., ПА обычно не выравнивают оба края, отчасти из-за того, что это трудно сделать эффективно при отсутствии соответствующих шаблонов обработки переноса слов. Появление таблиц стилей и неподставляемых шрифтов с субпикселным позиционированием обещает авторам HTML новые широкие возможности.

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


Таблица стилей по умолчанию в ПА рассматривает элементы P в привычной форме, как показано выше. Можно в принципе переопределить это представление параграфов и отображать их без пробелов над и под параграфами. В общем, поскольку это может смутить пользователя, мы не рекомендуем этого делать.

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

В западных языках, например, текст должен переноситься только на пробелах. Ранние ПА некорректно переносили строки или после начального тега, или перед конечным тегом элемента, что приводило к появлению знаков "висячей" пунктуации. Например, рассмотрите это предложение:

A statue of the <A href="cih78">Cihuateteus</A>, who are patron ...

Перенос строки сразу перед конечным тегом элемента A вызывает появление запятой в начале новой строки:

A statue of the Cihuateteus , who are patron ...

Это ошибка, поскольку в этом месте в разметке не было пробела.


Визуальное представление списков


Примечание. Это информативное описание поведения некоторых существующих визуальных ПА при форматировании списков. Таблицы стиля дают авторам большие возможности управления форматированием списков (напр., по нумерации, зависящим от языка соглашениям, отступам и т.д.).

Визуальные ПА обычно осуществляют отступ вложенных списков с учётом текущего уровня вложенности.

И для

OL, и для UL атрибут type определяет опции отображения визуальными ПА.

Для элемента UL

возможные значения атрибута type - disc, square и circle. Значения по умолчанию зависят от уровня вложения. Эти значения нечувствительны к регистру.

Представление каждого значения зависит от ПА. ПА должны пытаться представить "disc" как маленький заполненный кружок, "circle" как маленький круг и "square" как маленький квадрат.

Графический ПА может отобразить это так:

для значения "disc"

для значения "circle"

для значения "square"

Для элемента OL

возможные значения атрибута type

суммированы в таблице (значение нечувствительны к регистру):

Type/Тип

Стиль нумерации

1 арабские цифры 1, 2, 3, ...
a латинский алфавит, нижний регистр a, b, c, ...
A латинский алфавит, верхний регистр A, B, C, ...
i римский алфавит, нижний регистр i, ii, iii, ...
I римский алфавит, верхний регистр I, II, III, ...

Обратите внимание, что атрибут type не рекомендуется применять, и стили списков должны обрабатываться таблицами стилей.

Например, используя CSS (Каскадную Таблицу Стилей), можно определить, что стиль нумерации элементов списка должен быть - римские цифры в нижнем регистре. В предыдущем примере каждый элемент OL, принадлежащий к классу "withroman", будет иметь римскую нумерацию перед началом каждого элемента списка.

<STYLE type="text/css"> OL.withroman { list-style-type: lower-roman } </STYLE> <BODY> <OL class="withroman"> <LI> Step one ... <LI> Step two ... </OL> </BODY>

Представление списков Definition также зависит от ПА. Пример:

<DL> <DT>Dweeb <DD>young excitable person who may mature into a <EM>Nerd</EM> or <EM>Geek</EM>

<DT>Hacker <DD>a clever programmer

<DT>Nerd <DD>technically bright but socially inept person </DL>

может быть отображено так:

Dweeb young excitable person who may mature into a Nerd or Geek

Hacker a clever programmer Nerd technically bright but socially inept person



Вложение ссылок не допускается


Ссылки и якоря, определённые элементом A, не могут вкладываться; элемент A не должен содержать других элементов A.

Поскольку ОТД определяет элемент

LINK как пустой, элементы LINK

также не могут вкладываться.



Вложенные фрэймы


Наборы фрэймов могут вкладываться на любую глубину.

В этом примере внешний FRAMESET делит доступное пространство на три столбца. Внутренний FRAMESET делит второй фрэйм на два ряда неравной высоты.

<FRAMESET cols="33%, 33%, 34%"> ...содержимое первого фрэйма...

<FRAMESET rows="40%, 50%"> ...второй фрэйм, первый ряд...

...второй фрэйм, второй ряд...

</FRAMESET> ...содержимое третьего фрэйма...

</FRAMESET>



Внешние таблицы стилей


Авторы могут отделить таблицы стилей от основных документов HTML. Это даёт следующие преимущества:

авторы и менеджеры Web-сайтов могут разделять использование таблиц стилей среди нескольких документов (и сайтов);

авторы могут изменять таблицы стилей без изменения самих документов;

ПА могут выборочно загружать таблицы стилей (в зависимости от media-дескриптора).



Внутренние события


Примечание. Обращаем внимание авторов документов HTML, что изменения вскоре могут появиться в определении внутренних событий (напр., как скрипты ограничены событиями). Исследования в этой сфере проводятся членами W3C Document Object Model Working Group (см. W3C сайт http://www.w3.org/).

Определения атрибутов

onload = script [CT]

Событие onload возникает, когда ПА закончил загрузку окна или всех фрэймов FRAMESET. Этот атрибут может быть использован элементами BODY и FRAMESET.

onunload = script [CT]

Событие onunload возникает, когда ПА удаляет документ из окна или фрэйма. Этот атрибут может быть использован элементами BODY и FRAMESET.

onclick = script [CT]

Событие onclick возникает, когда указательное устройство "щёлкает" на элементе. Этот атрибут может быть использован с большинством элементов.

ondblclick = script [CT]

Событие ondblclick возникает, когда указательное устройство дважды "щёлкает" на элементе. Этот атрибут может быть использован с большинством элементов.

onmousedown = script [CT]

Событие onmousedown возникает, когда кнопка указательного устройства "нажала" на элемент. Этот атрибут может быть использован с большинством элементов.

onmouseup = script [CT]

Событие onmouseup возникает, когда кнопка указательного устройства отпущена над элементом. Этот атрибут может быть использован с большинством элементов.

onmouseover = script [CT]

Событие onmouseover возникает, когда указательное устройство проходит над элементом. Этот атрибут может быть использован с большинством элементов.

onmousemove = script [CT]

Событие onmousemove возникает, когда указательное устройство перемещается в тот момент, когда находится над элементом. Этот атрибут может быть использован с большинством элементов.

onmouseout = script [CT]

Событие onmouseout возникает, когда указательное устройство убирается с элемента. Этот атрибут может быть использован с большинством элементов.

onfocus = script [CT]

Событие

onfocus возникает, когда элемент получает фокус от указательного устройства или при навигации табуляцией. Этот атрибут может использоваться в элементах: A, AREA, LABEL, INPUT,


SELECT
, TEXTAREA и BUTTON.

onblur = script [CT]

Событие onblur возникает, когда элемент теряет фокус от указательного устройства или при навигации табуляцией. Может использоваться с теми же элементами, что и onfocus.

onkeypress = script [CT]

Событие onkeypress возникает, когда клавиша нажата и отпущена над элементом. Этот атрибут может быть использован с большинством элементов.

onkeydown = script [CT]

Событие onkeydown event возникает, когда клавиша нажата над элементом. Этот атрибут может быть использован с большинством элементов.

onkeyup = script [CT]

Событие onkeyup возникает, когда клавиша отпущена над элементом. Этот атрибут может быть использован с большинством элементов.

onsubmit = script [CT]

onsubmit возникает при отправке формы. Применяется только к элементу FORM.

onreset = script [CT]

onreset возникает при "очистке" формы. Применяется только к элементу FORM.

onselect = script [CT]

onselect возникает, когда пользователь выделяет какой-либо текст в текстовом поле. Этот атрибут может использоваться в элементах INPUT и TEXTAREA.

onchange = script [CT]

onchange возникает, когда ЭУ теряет фокус ввода и его значение изменилось с момента получения фокуса. Применяется в элементах: INPUT, SELECT и TEXTAREA.

Можно ассоциировать действие с определённым количеством событий, возникающих при взаимодействии пользователя с ПА. Каждое из "внутренних событий", перечисленных выше, имеет значение - скрипт. Скрипт выполняется , как только возникает событие в данном элементе. Синтаксис данных скрипта зависит от языка скрипта.

ЭУ, такие как INPUT, SELECT, BUTTON,

TEXTAREA
и LABEL, все откликаются на определённые внутренние события. Если эти элементы находятся вне формы, они могут использоваться для расширения возможностей пользовательского интерфейса документа.

К примеру, авторы могут вставить в документ кнопку, которая не отправляет форму, а взаимодействует с сервером при активации.

Следующие примеры показывают некоторые ЭУ и действия пользовательского интерфейса на базе внутренних событий.



Здесь заполнение поля userName является необходимым. Если пользователь переносит фокус с этого поля, событие onblur вызовет функцию JavaScript для того, чтобы удостовериться, что userName содержит приемлемое значение:

<INPUT NAME="userName" onblur="validUserName(this.value)">

Вот пример другого JavaScript:

<INPUT NAME="num" onchange="if (!checkNum(this.value, 1, 10)) {this.focus();this.select();} else {thanks()}" VALUE="0">

Пример VBScript-обработчика события для текстового поля:

<INPUT name="edit1" size="50"> <SCRIPT type="text/vbscript"> Sub edit1_changed() If edit1.value = "abc" Then button1.enabled = True Else button1.enabled = False End If End Sub </SCRIPT>

Пример с использованием Tcl:

<INPUT name="edit1" size="50"> <SCRIPT type="text/tcl"> proc edit1_changed {} { if {[edit value] == abc} { button1 enable 1 } else { button1 enable 0 } } edit1 onChange edit1_changed </SCRIPT>

Пример JavaScript для события, связанного со скриптом. Сначала - простой обработчик щелчка кнопки:

<BUTTON type="button" name="mybutton" value="10"> <SCRIPT type="text/javascript"> function my_onclick() { . . . } document.form.mybutton.onclick = my_onclick </SCRIPT> </BUTTON>

Более интересный обработчик окна:

<SCRIPT type="text/javascript"> function my_onload() { . . . }

var win = window.open("some/other/URI") if (win) win.onload = my_onload </SCRIPT>

В Tcl это выглядит похоже:

<SCRIPT type="text/tcl"> proc my_onload {} { . . . } set win [window open "some/other/URI"] if {$win != ""} { $win onload my_onload } </SCRIPT>

Учтите, что "document.write" или аналогичные операторы в обработчиках внутренних событий создают новый документ и записывают туда, а не модифицируют текущий документ.


"Всплывание" объекта


Атрибут

align объектов, изображений, таблиц, фрэймов и т.п. заставляет объект прижиматься к левому или правому полю страницы. Плавающие объекты обычно начинают новую строку. Этот атрибут принимает следующие значения:

left: прижимает объект к левому краю. Последующий текст обтекает объект справа.

right: прижимает объект к правому краю. Последующий текст обтекает объект слева.

ПРИМЕР НЕ РЕКОМЕНДУЕМОГО ИСПОЛЬЗОВАНИЯ:

Пример показывает. как элемент

IMG "всплывает" к левому краю "канвы".

<IMG align="left" src="http://foo.com/animage.gif" alt="my boat">

Некоторые атрибуты выравнивания также допускают значение "center", которое не вызывает всплывания, а центрирует объект по отношению к краям. В то же время, у элементов P

и DIV, значение "center" вызывает центрирование содержимого элементов.



Вставка аплета: элемент APPLET


APPLET Не рекомендуется (со всеми его атрибутами). Следует использовать OBJECT.

См. формальное определение в Переходном ОТД.

Определения атрибутов

codebase = uri [CT]

Определяет базовый URI аплета. Если не установлен, тогда по умолчанию используется тот же базовый URI, что и для текущего документа. Значения этого атрибута могут ссылаться только на субдиректории той директории, в которой находится текущий документ.

Примечание.

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

code = cdata [CS]

Специфицирует имя файла класса, который содержит скомпилированный подкласс аплета, или путь к этому классу, включая и сам файл класса. Интерпретируется в соответствии с кодовой базой аплета. Должен присутствовать code

или object.

name = cdata [CS]

Определяет имя инстанции аплета, что делает возможным для аплетов в пределах той же страницы находить друг друга (и взаимодействовать).

archive = uri-list [CT]

Определяет список разделённых запятыми URI для архивов, содержащих классы и другие ресурсы, которые будут "предзагружены". Классы загружаются с использованием объекта AppletClassLoader с установленным codebase. Относительные URI для архивов интерпретируются в соответствии с codebase аплета. Предварительная загрузка ресурсов может значительно ускорить выполнение аплетов.

object = cdata [CS]

Этот атрибут именует ресурс, содержащий сериализованное представление состояния аплета. Он интерпретируется относительно codebase аплета. Сериализованные данные содержат имя класса аплета, но не реализацию. Имя класса используется для запроса реализации из файла класса или архива.

Если аплет "десериализован", вызывается метод start(), но не метод init(). Значения атрибутов после сериализации оригинального объекта не

восстанавливаются. Любые атрибуты, передаваемые в инстанцию APPLET, будут доступны аплету. Авторы должны предельно осторожно пользоваться этой возможностью. Аплет должен быть остановлен перед тем, как будет сериализован.


Атрибуты code или object должны присутствовать. Если задан и code, и

object
, то будет считаться ошибкой, если они будут задавать разные имена класса.

width = length [CI]

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

height = length [CI]

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

Атрибуты, определённые в другом месте



id
, class (идентификаторы документа)



title
(заголовок элемента)

style (инлайн-стиль)



alt
(альтернативный текст)

align, hspace, vspace

(визуальное представление объектов, изображений и аплетов)

Этот элемент, поддерживаемый всеми браузерами с поддержкой Java, позволяет дизайнерам внедрять аплет Java в документ HTML. Он не рекомендуется. Вместо него следует применять элемент OBJECT.

Содержимое APPLET функционирует как альтернативная информация для ПА, не поддерживающих этот элемент или сконфигурированных так, чтобы не поддерживать аплеты. В противном случае ПА должны игнорировать содержимое.

НЕ РЕКОМЕНДУЕТСЯ:

В этом примере элемент APPLET вставляет аплет Java в документ. Поскольку отсутствует codebase, предполагается, что аплет находится в той же директории, что и текущий документ.

<APPLET code="Bubbles.class" width="500" height="500"> Java applet that draws animated bubbles. </APPLET>

Этот пример можно переписать с использованием OBJECT:

<P><OBJECT codetype="application/java" classid="java:Bubbles.class" width="500" height="500"> Java applet that draws animated bubbles. </OBJECT>

Начальные значения могут быть переданы аплету элементом PARAM.

НЕ РЕКОМЕНДУЕТСЯ:

Этот участок аплета Java:

<APPLET code="AudioItem" width="15" height="15"> <PARAM name="snd" value="Hello.au|Welcome.au"> Java applet that plays a welcoming sound. </APPLET>

можно переписать с OBJECT:

<OBJECT codetype="application/java" classid="AudioItem" width="15" height="15"> <PARAM name="snd" value="Hello.au|Welcome.au"> Java applet that plays a welcoming sound. </OBJECT>


Вставка изображения: элемент IMG


<!-- Чтобы исключить проблемы с только-текстовыми ПА, а также чтобы сделать содержимое изображения более понятным и доступным для пользователей с невизуальными ПА, Вы должны предоставить описание в элементе ALT и исключить использование серверных карт изображений --> <!ELEMENT IMG - O EMPTY -- Внедрённое изображение --> <!ATTLIST IMG %attrs; -- %coreattrs, %i18n, %events -- src %URI; #НЕОБХОДИМ -- URI изображения для вставки -- alt %Text; #НЕОБХОДИМ -- краткое описание -- longdesc %URI; #ПРЕДПОЛАГАЕТСЯ -- ссылка на полное описание (дополняет alt) -- name CDATA #ПРЕДПОЛАГАЕТСЯ -- имя изображения (для скриптов) -- height %Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить высоту -- width %Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить ширину -- usemap %URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты изображений -- ismap (ismap) #ПРЕДПОЛАГАЕТСЯ -- использовать серверные карты изображений -- >

Начальный тег: необходим, Конечный тег: запрещён

Определения атрибутов

src = uri [CT]

Специфицирует размещение ресурса изображения. Наиболее распространённые форматы изображений: GIF, JPEG и PNG.

longdesc = uri [CT]

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

Поскольку элемент IMG может находиться внутри содержимого элемента A, механизм ПА в пользовательском интерфейсе для доступа к ресурсу "longdesc" первого должен отличаться от механизма к доступу ресурса

href второго.

name = cdata [CI]

Этот атрибут именует элемент так, что на него можно будет ссылаться из таблиц стилей или скриптов. Примечание. Этот атрибут включён для обеспечения обратной совместимости. Приложения должны использовать для идентификации элементов атрибут id.

Атрибуты, определённые в другом месте

id, class (идентификаторы документа)




alt
(альтернативный текст)



lang
(язык), dir (направление текста)



title
(заголовок элемента)

style (инлайн-стиль)

onclick, ondblclick,

onmousedown
, onmouseup,

onmouseover
, onmousemove,

onmouseout
, onkeypress,

onkeydown
, onkeyup (внутренние события)



ismap
, usemap (клиентские карты изображений)

align, width,

height
, border, hspace, vspace

(визуальное представление объектов, изображений и аплетов)

Элемент

IMG
внедряет изображение в текущий документ в месте определения элемента. Элемент IMG не имеет содержимого; обычно он замещается на ходу изображением, указанным в атрибуте

src
, исключение составляют изображения, выровненные влево или вправо, которые "обтекаются"

по контуру.

В предыдущем примере мы определили ссылку на семейное фото. Здесь мы вставим фото непосредственно в текущий документ:

<BODY> <P>I just returned from vacation! Here's a photo of my family at the lake: <IMG src="http://www.somecompany.com/People/Ian/vacation/family.png" alt="A photo of my family at the lake."> </BODY>

Это включение может быть выполнено также элементом OBJECT:

<BODY> <P>I just returned from vacation! Here's a photo of my family at the lake: <OBJECT data="http://www.somecompany.com/People/Ian/vacation/family.png" type="image/png"> A photo of my family at the lake. </OBJECT> </BODY>

Атрибут

alt
устанавливает альтернативный текст, который отображается, если изображение не может быть выведено (см. ниже как установить альтернативный текст). ПА должны отображать альтернативный текст, если они не поддерживают изображения, не поддерживают изображения определённых типов или если сконфигурированы так, чтобы не показывать изображения.

Следующий пример показывает, как атрибут longdesc

можно использовать для ссылки на полное описание:

<BODY> <P> <IMG src="sitemap.gif" alt="HP Labs Site Map" longdesc="sitemap.html"> </BODY>

Атрибут

alt
предоставляет краткое описание изображения. Этого должно быть достаточно, чтобы пользователь мог решить, перейти ли по ссылке, заданной атрибутом longdesc для полного описания, здесь - "sitemap.html".

См. раздел визуальное представление объектов, изображений и аплетов для получения информации о размерах изображения, выравнивании и рамках.


Эта спецификация определяет HyperText Markup


Эта спецификация определяет HyperText Markup Language (HTML) - гипертекстовый язык разметки, язык World Wide Web. Здесь определён HTML 4.01, являющийся субверсией HTML 4. В дополнение к возможностям работы с текстом, мультимедиа и гипертекстом предыдущих версий HTML (HTML 3.2
[HTML32]
и HTML 2.0 [RFC1866]), HTML 4 поддерживает большее количество опций мультимедиа, языков скриптов, каскадных таблиц стилей, лучшие возможности печати и большую доступность документов для людей с ограниченными возможностями. HTML 4 также является большим шагом в направлении интернационализации документов с целью сделать Web действительно World Wide (всемирным).
HTML 4 - это SGML приложение, соответствующее Международному Стандарту ISO 8879 -- Standard Generalized Markup Language [ISO8879].


или IMG.
Чтобы вставить аплет, автор должен использовать элемент OBJECT, так как элемент APPLET не рекомендуется использовать.
Чтобы включить один документ HTML в другой, авторы могут использовать новый элемент IFRAME или элемент OBJECT. В обоих случаях, внедрённый документ остаётся независимым от главного документа. Визуальные ПА могут представлять внедрённый документ в отдельном окне внутри главного документа. См. замечания о внедрённых документах,
чтобы сравнить вставку документов элементами OBJECT
и IFRAME.
Изображения и другие включённые объекты могут иметь ассоциированные с ними гиперссылки, используя стандартные механизмы ссылок, а также посредством карт изображений. Карта изображений определяет активные геометрические регионы включённого объекта и назначает гиперссылку каждому такому региону. При активации эти ссылки могут вызвать запрос документа, запустить программу на сервере и т.д.
В следующих разделах мы обсудим различные доступные авторам механизмы вставки мультимедиа и создания карт изображений для таких вставок.


Размещение таблиц стилей в отдельных файлах облегчает их повторное использование. Иногда необходимо включить инструкции представления в документ, к которому они применяются, путём группировки их в начале документа или установкой в атрибутах по всему телу документа. Чтобы облегчить работу со стилями на базе сайта, эта спецификация описывает, как использовать заголовки-"шапки"/headers HTTP для установки применения таблиц стилей в документах.
Независимость от конкретного языка таблицы стилей
Эта спецификация не привязывает HTML к какому-то определённому языку таблиц стилей. Это позволяет использовать разные языки, например, простой для большинства пользователей и более сложный - для пользователей с узко специализированными потребностями. Примеры, данные ниже, используют язык CSS (Cascading Style Sheets) [CSS1], но возможны и другие языки таблиц стилей.
Каскадирование
Это возможность, предоставляемая некоторыми языками таблиц стилей, такими как CSS, соединять информацию стилей из различных источников. Это могут быть, например, корпоративные руководства по стилям, стили для групп документов и стили, специфические для отдельного документа. Сохраняя эту информацию раздельно, таблицы стилей могут быть повторно использованы, облегчая творчество и более эффективное использование сетей. Каскад определяет упорядоченную последовательность таблиц стилей, где правила более поздних таблиц имеют преимущество перед правилами более ранних таблиц. Не все языки таблиц стилей поддерживают каскадирование.
Зависимость от типа носителя
HTML позволяет авторам определять media-независимые документы. Это даёт пользователям возможность использовать Web-страницы на разных устройствах и носителях информации, например, графические дисплеи компьютеров, использующих Windows, Macintosh OS и X11, телевизионные устройства, специально адаптированные телефоны и портативные устройства на базе PDA, речевые браузеры и тактильные брайль-устройства.
Таблицы стилей, наоборот, применяются к конкретным носителям или группам носителей. Таблица, предполагаемая для использования с экраном, может функционировать при печати на принтере, но мало подходит для речевых браузеров.


Примечание. Эта спецификация содержит более детальную информацию о таблицах в разделе рациональный дизайн таблиц и вопросы реализации.
Вот простая таблица, иллюстрирующая возможности табличной модели HTML.

Следующее определение таблицы:
<TABLE border="1" summary="This table gives some statistics about fruit flies: average height and weight, and percentage with red eyes (for both males and females)."> <CAPTION><EM>A test table with merged cells</EM></CAPTION> <TR><TH rowspan="2"><TH colspan="2">Average <TH rowspan="2">Red<BR>eyes <TR><TH>height<TH>weight <TR><TH>Males<TD>1.9<TD>0.003<TD>40% <TR><TH>Females<TD>1.7<TD>0.002<TD>43% </TABLE>
может отображаться на устройстве tty примерно так:
A test table with merged cells /-----------------------------------------\ | | Average | Red | | |-------------------| eyes | | | height | weight | | |-----------------------------------------| | Males | 1.9 | 0.003 | 40% | |-----------------------------------------| | Females | 1.7 | 0.002 | 43% | \-----------------------------------------/
или так в графическом ПА:


Введение в HTML


Содержание

Что такое World Wide Web? Введение в URI

Идентификаторы фрагментов документа (закладки)

Относительные URI

Что такое HTML? Краткая история HTML

HTML 4 Интернационализация

Доступность

Таблицы

Составные документы

Таблицы стилей

Сценарии (скрипты)

Печать

Создание документов HTML 4 Разделение структуры и представления

Предусматривайте универсальность доступа к Web

Помогать пользовательским агентам (ПА) показывать содержимое частями



Введение в SGML


SGML - это система определения языков разметки. Авторы размечают

свои документы, вводя структурную, представительную и семантическую информацию параллельно с основным содержимым.

HTML - это один из языков разметки. Вот пример документа HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>My first HTML document</TITLE> </HEAD> <BODY> <P>Hello world! </BODY> </HTML>

Документ HTML состоит из раздела-шапки (здесь - между <HEAD> и </HEAD>) и тела (здесь - между <BODY> и </BODY>). Название документа содержится в шапке (наряду с другой информацией о документе), а содержимое документа находится в его теле/ body. Тело в этом примере состоит из одного параграфа, помеченного <P>.

Каждый язык разметки, определённый в SGML, называется SGML приложением. Приложение SGML обычно характеризуется:

Объявлением SGML. Объявление SGML определяет, какие символы и ограничители могут появляться в приложении.

Определением типа документов (ОТД). ОТД определяет синтаксис конструкций разметки. ОТД может включать дополнительные определения, такие как символьные ссылки-мнемоники.

Спецификация, описывающая семантику, относится к разметке. Эта спецификация также даёт ограничения синтаксиса, которые не могут быть выражены внутри ОТД.

Объектами документа, содержащими данные (содержимое) и разметку. Каждый объект содержит ссылку на ОТД, чтобы иметь возможность быть интерпретированным.

Эта спецификация включает объявление SGML, три определения типа документов (см. раздел информация о версии HTML) список ссылок-мнемоник.



Введение в URI


Каждый доступный на Web ресурс - документ HTML, рисунок, видеоклип, программа и т д. - имеет адрес, который может быть кодирован как Universal Resource Identifier\Универсальный идентификатор ресурса, или "URI".

URI обычно состоят из трёх частей:

Схема именования механизма, используемого для доступа к ресурсу.

Имя машины - владельца (хоста) ресурса.

Имя самого ресурса, даваемое как путь/path.

Рассмотрите URI страницы Technical Reports на сайте W3C:

http://www.w3.org/TR

Этот URI можно прочитать так: это документ, доступный по протоколу HTTP (см. [RFC2616]), находящийся на машине www.w3.org, доступный в пути "/TR". Другие схемы именования, которые Вы можете встретить в документах HTML, включают "mailto" для email (электронной почты) и "ftp" для FTP.

Вот другой URI. Этот ссылается на почтовый ящик пользователя:

...здесь какой-либо текст...

Для комментариев высылайте, пожалуйста, email по адресу <A href="mailto:joe@someplace.com">Владимиру Ульянову</A>.

Примечание. Большинство читателей, наверное, знакомы с термином "URL" и не знакомы с термином "URI". URL образуют подраздел более общей схемы именования - URI.



Выбор кодировки


Средства создания документов (например, текстовые редакторы) могут кодировать документы HTML по своему усмотрению, и это зависит в основном от соглашений, используемых разработчиками программ. Эти программы для создания документов используют любую подходящую кодировку, которая отображает большую часть нужных символов, корректно обозначая эту кодировку. Отдельные символы, не входящие в соответствующую кодировку, могут быть вставлены по ссылке. Это всегда имеет отношение к набору символов документа, а не к кодировке.

Серверы и proxy-серверы могут изменять кодировку символов (это называется transcoding) "на ходу", чтобы принять запрос пользовательского браузера (смотри раздел 14.2 в [RFC2616], заголовок запроса "Accept-Charset" HTTP). Серверы и прокси-серверы не должны обязательно обслуживать документ в той кодировке, которая покрывает весь набор символов этого документа.

Обычно в Web используются кодировки: ISO-8859-1 (также известная как "Latin-1", используется для большинства западноевропейских языков), ISO-8859-5 (поддерживающая кириллицу), SHIFT_JIS (японская кодировка), EUC-JP (другая японская кодировка) и UTF-8 (кодировка ISO 10646, использующая различное число байтов для различных символов). Названия кодировок нечувствительны к регистру. Таким образом, "SHIFT_JIS", "Shift_JIS" и "shift_jis" эквивалентны.

Эта спецификация не предписывает, какие кодировки браузер должен поддерживать.

Соответствие браузеров. Браузеры должны отвечать отображению, по ISO 10646, всех символов в любой кодировке, которые ими распознаются (или они должны действовать, как если бы они распознавали их).



Выравнивание


Можно выравнивать блок элементов (таблицы, изображения, объекты, параграфы и т.п.) на "канве" с помощью атрибута align. Хотя этот атрибут может быть установлен для многих элементов HTML, диапазон его значений может отличаться, в зависимости от элемента. Здесь мы обсуждаем только значение атрибута "выравнивание" для текста.

Определение атрибута

align =

left|center|right|justify

[CI]

Не рекомендуется.

Этот атрибут определяет горизонтальное выравнивание элемента по отношению к окружающему контексту. Возможные значения:

left: строки текста выравниваются по левому краю;

center: строки текста выравниваются по центру;

right: строки текста выравниваются по правому краю;

justify: строки текста выравниваются по обоим полям.

Значение по умолчанию зависит от базового направления текста. Для направления слева направо - это align=left, для направления справа налево - по умолчанию .

НЕ РЕКОМЕНДУЕТСЯ:

Здесь заголовок центрируется.

<H1 align="center"> Что за прелесть эта мерзость! </H1>

Используя CSS (каскадные таблицы стилей), например, Вы можете достичь того же эффекта следующим образом:

<HEAD> <TITLE>Что за прелесть эта мерзость!</TITLE> <STYLE type="text/css"> H1 { text-align: center} </STYLE> <BODY> <H1> Что за прелесть эта мерзость! </H1>

Учтите, что это будет действовать на все элементы H1. Вы можете ограничить область видимости стиля, установив атрибут class элемента:

<HEAD> <TITLE>Что за прелесть эта мерзость!</TITLE> <STYLE type="text/css"> H1.wood {text-align: center} </STYLE> <BODY> <H1 class="wood"> Что за прелесть эта мерзость! </H1>

НЕ РЕКОМЕНДУЕТСЯ:

также, для того, чтобы выровнять вправо параграф на "канве" атрибутом HTML align, Вы могли бы записать:

<P align="right">...параграф текста...

что в таблице стиля могло бы быть:

<HEAD> <TITLE>Что за прелесть эта мерзость!</TITLE> <STYLE type="text/css"> P.mypar {text-align: right} </STYLE> <BODY> <P class="mypar">...параграф текста...


НЕ РЕКОМЕНДУЕТСЯ:

Чтобы выровнять вправо несколько параграфов, сгруппируйте их элементом DIV:

<DIV align="right"> <P>...текст первого параграфа...

<P>...текст второго параграфа...

<P>...текст третьего параграфа...

</DIV>

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

<HEAD> <TITLE>Что за прелесть эта мерзость!</TITLE> <STYLE type="text/css"> DIV.mypars {text-align: right} </STYLE> <BODY> <DIV class="mypars"> <P>...текст первого параграфа...

<P>...текст второго параграфа...

<P>...текст третьего параграфа..

</DIV>

Чтобы выровнять по центру весь документ:

<HEAD> <TITLE>Что за прелесть эта мерзость!</TITLE> <STYLE type="text/css"> BODY {text-align: center} </STYLE> <BODY> ...тело выровнено по центру...

</BODY>

Элемент CENTER полностью эквивалентен определению элемента DIV с атрибутом align, установленным в "center". Элемент CENTER

не рекомендуется.



Выравнивание, стили шрифта и горизонтальные линии


Содержание

Форматирование Цвет фона

Выравнивание

Плавающие объекты Всплывание объекта

Обтекание текста вокруг объекта

Шрифты

Элементы стиля шрифта: элементы TT, I,

B, BIG, SMALL, STRIKE, S и U

Элементы модификатора шрифта: FONT и BASEFONT

Горизонтальные лини: элемент HR

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



Вывод фрэймов


Документ HTML, описывающий вывод фрэймов (называемый документ с фрэймами), имеет несколько другой состав, нежели документ HTML без фрэймов. Стандартный документ содержит один раздел HEAD и один раздел BODY. Набор фрэймов содержит раздел

HEAD, и раздел FRAMESET вместо BODY.

Раздел FRAMESET определяет вывод нескольких кадров в главном окне. Дополнительно раздел FRAMESET может содержать элемент NOFRAMES для представления альтернативного содержимого в ПА, не поддерживающих фрэймы или сконфигурированных так. чтобы не отображать фрэймы.

Элементы, которые могут быть нормально размещены в элементе

BODY, не должны появляться перед первым элементом

FRAMESET , иначе FRAMESET будет проигнорирован.



Вывод по частям


Для больших таблиц или при низкой скорости передачи данных в сети постепенное отображение таблиц частями имеет для пользователя важное значение. ПА должны иметь возможность начинать показ таблицы до того, как все данные будут получены. Стандартная ширина окна большинства ПА - 80 символов, и графика для большого количества с страниц HTML создаётся в расчёте на эти параметры. Определяя количество столбцов и предоставляя возможности управления шириной таблиц и столбцов, авторы могут подсказывать ПА, что имеется возможность отображения таблиц частями.

Для отображения по частям, браузеру нужно "знать" количество столбцов и их ширину. Ширина таблицы по умолчанию - это текущий размер окна (width="100%"). Это можно изменить установкой атрибута width элемента

TABLE. По умолчанию все столбцы имеют одинаковую ширину, но Вы можете определить ширину столбцов установкой одного или более элементов

COL перед началом данных таблицы.

Также нужно рассмотреть вопрос о количестве столбцов. Многие советуют дождаться загрузки первого ряда таблицы, но это может занять много времени, если в ячейках много данных. В целом, более правильно будет определить вывод частями, определив точно количество столбцов в элементе TABLE.

Авторам необходим способ сообщить ПА, использовать ли изображение по частям или размещать таблицу автоматически при заполнении ячеек. В двухступенчатом автоматическом режиме количество столбцов определяется на первой ступени. При отображении частями количество столбцов определяется предварительно (элементами COL

или COLGROUP).



Взаимосвязи документов: элемент LINK


<!ELEMENT LINK - O EMPTY -- медиа-независимая ссылка --> <!ATTLIST LINK %attrs; -- %coreattrs, %i18n, %events -- charset %Charset; #ПРЕДПОЛАГАЕТСЯ -- набор символов связанного ресурса -- href %URI; #ПРЕДПОЛАГАЕТСЯ -- URI связанного ресурса -- hreflang %LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- type %ContentType; #ПРЕДПОЛАГАЕТСЯ -- информативный тип содержимого -- rel %LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- типы ссылок вперёд -- rev %LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- типы ссылок назад -- media %MediaDesc; #ПРЕДПОЛАГАЕТСЯ -- для представления на данном носителе -- >

Начальный тег: необходим, Конечный тег: запрещён

Атрибуты, определённые в другом месте

id, class (идентификаторы документа)

lang (язык), dir (направление текста)

title (название элемента)

style (инлайн-стиль)

onclick, ondblclick,

onmousedown, onmouseup,

onmouseover, onmousemove,

onmouseout, onkeypress,

onkeydown, onkeyup (внутренние события)

href, hreflang,

type, rel, rev (ссылки и якоря)

target (целевой фрэйм)

media (стиль "шапки")

charset(набор символов документа)

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

- "шапки" документа, хотя и может появляться любое количество раз. Хотя LINK

не имеет содержимого, он выражает информацию о взаимоотношениях, которая может отображаться ПА различными способами (напр., панель с выпадающим меню со ссылками).

Этот пример показывает, как различные определения LINK могут появляться в разделе HEAD

документа. Текущий документ - "Chapter2.html". Атрибут rel

специфицирует соотношение связанного документа с текущим. Значения "Index", "Next" и "Prev" разъясняются в разделе типы ссылок.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>Chapter 2</TITLE> <LINK rel="Index" href="../index.html"> <LINK rel="Next" href="Chapter3.html"> <LINK rel="Prev" href="Chapter1.html"> </HEAD> ...оставшаяся часть документа...



Заголовки гиперссылок


Атрибут

title может быть установлен элементами A и LINK для добавления информации о ссылке. Эта информация может произноситься ПА, может быть показана как подсказка, вызывать изменение вида курсора и т.д.

Таким образом, мы можем расширить предыдущий пример, добавив заголовок к каждой ссылке:

<BODY> ...текст...

<P>Вы найдёте многое на <A href="chapter2.html" title="Go to chapter two">chapter two</A>. <A href="./chapter2.html" title="Get chapter two.">chapter two</A>. См. также здесь <A href="../images/forest.gif" title="GIF image of enchanted forest">карту леса.</A> </BODY>



Заголовки: элементы H, H, H, H, H, H


<!ENTITY % heading "H1|H2|H3|H4|H5|H6"> <!-- имеется шесть уровней заголовков: от H1 (самый верхний) до H6 (самый нижний). -->

<!ELEMENT (%heading;) - - (%inline;)* -- заголовок %attrs; -- %coreattrs, %i18n, %events -- >

Начальный тег: необходим, Конечный тег: необходим

Атрибуты, определённые в другом месте

id, class (идентификаторы документа)

lang (язык), dir (направление текста)

title (заголовок элемента)

style (инлайн-стиль)

align (выравнивание)

onclick, ondblclick,

onmousedown, onmouseup,

onmouseover, onmousemove,

onmouseout, onkeypress,

onkeydown, onkeyup (внутренние события)

Элемент heading кратко описывает смысл раздела, которому он предшествует. Информация заголовка может использоваться ПА, например, для автоматического создания оглавления документа.

Имеется шесть уровней заголовков HTML: от H1 (самый крупный/верхний) до H6. Визуальные браузеры обычно отображают более значительный заголовок более крупным шрифтом.

В этом примере видно, как с помощью элемента DIV ассоциировать заголовок с разделом документа, который следует за ним. Это позволит Вам определить таблицу стилей для данного раздела (фон, шрифт и т.д.).

<DIV class="section" id="forest-elephants" > <H1>Forest elephants</H1> <P>In this section, we discuss the lesser known forest elephants. ...раздел продолжается...

<DIV class="subsection" id="forest-habitat" > <H2>Habitat</H2> <P>Forest elephants do not live in trees but among them. ...этот раздел продолжается...

</DIV> </DIV>

Эта структура может быть украшена с помощью таблицы стилей:

<HEAD> <TITLE>... заголовок документа ...</TITLE> <STYLE type="text/css"> DIV.section { text-align: justify; font-size: 12pt} DIV.subsection { text-indent: 2em } H1 { font-style: italic; color: green } H2 { color: green } </STYLE> </HEAD>

Нумерованные разделы и ссылки.

HTML сам по себе не генерирует номера разделов в соответствии с заголовками. Это может, однако, выполняться некоторыми ПА. В ближайшем будущем языки таблиц стилей, такие как CSS, позволят авторам управлять генерацией заголовков разделов (что может пригодиться для создания ссылок в печатных документах (см. раздел 7.2).

Некоторые считают скрывание уровней заголовков  плохой практикой. Они принимают H1 H2 H1 не принимают H1 H3 H1, поскольку во втором случае заголовок уровня H2 пропущен.



Заголовок таблицы: элемент CAPTION


<!ELEMENT CAPTION - - (%inline;)* -- заголовок таблицы -->

<!ATTLIST CAPTION %attrs; -- %coreattrs, %i18n, %events -- >

Начальный тег: необходим, Конечный тег: необходим

Определение атрибута

align =

top|bottom|left|right

[CI]

Не рекомендуется.

Для визуальных ПА этот атрибут определяет положение заголовка относительно таблицы. Возможные значения:

top: заголовок сверху над таблицей. Это значение по умолчанию;

bottom: заголовок снизу под таблицей;

left: заголовок слева от таблицы;

right: заголовок справа от таблицы.

Атрибуты, определённые в другом месте

id, class (идентификаторы документа)

lang (язык), dir (направление текста)

title (заголовок элемента)

style (инлайн-стиль)

onclick, ondblclick,

onmousedown, onmouseup,

onmouseover, onmousemove,

onmouseout, onkeypress,

onkeydown, onkeyup (внутренние события)

Если элемент CAPTION присутствует, текст должен описывать сущность таблицы. Элемент CAPTION допускается только непосредственно после начального тега TABLE. Элемент TABLE может содержать только один элемент CAPTION.

Визуальные ПА позволяют зрячим людям разом охватить структуру таблицы, начиная с "шапки". Следствием этого может быть то, что заголовок часто не отражает общее назначение и структуру таблицы для тех, кто просматривает её в невизуальных ПА.

По этой причине авторы должны позаботиться о предоставлении дополнительной информации, суммирующей назначение и структуру таблицы, используя атрибут summary элемента TABLE. Это особенно важно для таблиц без заголовка. Данные ниже примеры иллюстрируют использование атрибута summary.

Визуальные ПА должны исключить усечение любой части таблицы, в том числе и заголовка, если только нет цели обеспечить доступ ко всей таблице целиком, например, с помощью горизонтальной или вертикальной прокрутки. Мы рекомендуем, чтобы текст заголовка был расположен на ту же ширину, что и таблица (см. также раздел рекомендуемый алгоритм вывода).



Замечания и примеры


Информационные примечания выделены из окружающего текста и могут быть обработаны некоторыми браузерами.

Все примеры, иллюстрирующие не рекомендуемые к использованию элементы и др., помечены так: "НЕ РЕКОМЕНДУЕТСЯ". Такие возражения также включают рекомендации по разрешению проблемы.
Все примеры, иллюстрирующие неверное использование обозначены "НЕВЕРНОЕ ИСПОЛЬЗОВАНИЕ".

Примеры и замечания выделены верхним регистром и могут быть обработаны некоторыми пользовательскими браузерами.



Замечания о внедрённых документах


Иногда, вместо того, чтобы ссылаться

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

IFRAME или OBJECT, но эти элементы отличаются друг от друга. Они не только имеют разные модели содержимого; элемент IFRAME может быть целевым фрэймом (см. детали в определении информации целевого фрэйма) и может быть "выбран" пользовательским агентом как фокус для печати, просмотра текста-источника HTML и т.д. ПА могут отображать выбранные фрэймы не так, как невыбранные (например, прорисовкой рамки вокруг выбранного фрэйма).

Внедрённый документ

полностью независим от документа, в который он внедрён. Например, относительные URI внутри внедрённого документа разрешаются

в соответствии с базовым URI внедрённого документа, а не с базовым URI главного документа. Внедрённый документ отображается только внутри другого документа (напр., в дочернем окне), в то же время, он остаётся независимым.

К примеру, следующие строки внедряют содержимое файла

embed_me.html в то место, где появляется определение OBJECT:

...текст до...

<OBJECT data="embed_me.html"> Warning: embed_me.html could not be embedded. </OBJECT> ...текст после...

Напоминаем, что содержимое OBJECT должно отображаться только в том случае, если файл, определённый в атрибуте data не может быть загружен.

Поведение ПА в тех случаях, когда файл внедряет сам себя, не определено.



Замечания по специальной кодировке


Если текст HTML передаётся в кодировке UTF-16 (charset=UTF-16), данные текста должны передаваться в сетевом порядке байтов ("big-endian", старший байт - первый) в соответствии с [ISO10646], раздел 6.3 и [UNICODE], пункт C3, страница 3-1.

Кроме того, для того, чтобы увеличить шансы правильной интерпретации документа, рекомендуется, чтобы документ, передаваемый как UTF-16, всегда начинался символом ZERO-WIDTH NON-BREAKING SPACE (шестнадцатеричная FEFF, называемая также Byte Order Mark (BOM)), которая при перестановке байтов становится FFFE, символом, гарантирующим, что он никогда не будет установлен. Таким образом, браузер пользователя, получив FFFE как первый байт текста, сможет определить, что этот байт зарезервирован для напоминания о кодировке UTF-16.

UTF-1 формат трансформации [ISO10646] (зарегистрированный IANA как ISO-10646-UTF-1), не должен использоваться. 
Об ISO 8859-8 и двунаправленном алгоритме см. раздел двунаправленность и кодировка символов. 



Запрет обрыва строки


Иногда необходимо предотвратить обрыв строки между двумя словами. &nbsp; (мнемоники &#160; или &#xA0;) действует как пробел, в котором ПА не может вставить обрыв строки.



Значения атрибутов


Если данные сценария или стиля являются значением атрибута (атрибуты style

или внутренние события), авторы должны избегать появления ограничивающих одинарных или двойных кавычек внутри значений в соответствии с соглашением по языку стиля или сценария. Авторы должны также избегать применения "&", если "&" не является началом ссылки-мнемоники.

'"' должно быть записано "&quot;" или "&#34;"'&' должно быть записано "&amp;" или "&#38;"

Таким образом, например, можно записать:

<INPUT name="num" value="0" onchange="if (compare(this.value, &quot;help&quot;)) {gethelp()}">