9.1 Неотображаемые символы
Набор символов документа включает множество различных неотображаемых
символов. Многие из них являются типографскими элементами, используемым в
некоторых приложениях для достижения специальных визуальных эффектов
отображения. В языке HTML только следующие символы определяются как
неотображаемые:
- пробел набора символов ASCII ( )
- табуляция набора символов ASCII (	)
- ASCII form feed ()
- пробел нулевой ширины (​)
Символы перевода строки также являются неотображаемыми. Помните, что хотя
символы 
 и 
 определены в спецификации [ISO10646] как разделители
строк и абзацев соответственно, это не определяет символы перевода строки в
HTML, а также в этой спецификации они не включены в более общую категорию
неотображаемых символов.
В этой спецификации не определяется поведение, отображение и пр. символов
пробелов, если они явно не определены как неотображаемые символы. По этой
причине для достижения визуальных эффектов форматирования, использующих
неотображаемые символы вместо пробелов, авторам следует использовать
соответствующие элементы и таблицы стилей.
Для всех элементов HTML, кроме последовательностей неотображаемых слово (мы
используем термин "слово" для обозначения "последовательности отображаемых
символов") в теге PRE. При форматировании текст
агенты пользователей должны идентифицировать эти слова и обрабатывать их в
соответствии с соглашениями относительно определенного языка и целевого
носителя.
Форматирование может включать пробелы между словами (называемые
межсловными
пробелами), но соглашения относительно межсловных пробелов меняются в
зависимости от сценария. Например, в латинских сценариях межсловный пробел
обычно отображается как пробел набора символов ASCII ( ), в то время как
в таиландской кодировке это разделитель слов нулевой ширины (​). В
японской и китайской кодировке межсловный пробел обычно вообще не генерируется.
Помните, что последовательность неотображаемых символов между словами в
исходном документе может вызвать отображение совершенно другого межсловного
пробела (кроме элемента PRE). В частности, агенты
пользователей должны
прекращать ввод последовательностей неотображаемых символов при выводе
межсловного пробела. Это можно и нужно делать, даже при отсутствии информации о
языке (из атрибута lang, полях заголовка HTTP
"Content-Language" (см. [RFC2068], раздел14.13), настроек агента
пользователя и т.д.).
Элемент PRE используется для форматированного
текста, в котором неотображаемые символы имеют важное значение.
Для того, чтобы избежать проблем с правилами переноса строк SGML и
несоответствия между существующими применениями, авторы не должны полагаться на
агенты пользователей при генерации неотображаемых символов непосредственно после
начального тега или непосредственно перед конечным тегом. Таким образом, авторы
и особенно средства разработки,
должны писать, например:
<P>Мы предлагаем бесплатную <A>техническую поддержку</A> для зарегистрированных пользователей.</P>
и не должны писать:
<P>Мы предлагаем бесплатную<A> техническую поддержку </A>для зарегистрированных пользователей.</P>
|