ИЗОБРАЖЕНИЯ И ОБЪЕКТЫ
Тег IMG, предназначенный для вставки изображений, относится к тегам, создающим новые элементы документа, отсутствовавшие в исходном тексте. Тег этот ссылается на хранящееся в отдельном файле изображение в формате GIF или JPEG (стр. 252); этот графический файл может располагаться там же, где и HTML-файл страницы (в таком случае в атрибуте src достаточно указать имя файла), а может лежать и в другом каталоге и даже на другом сервере (в этом случае нужно указывать полный URL-адрес). Большинство атрибутов этого тега управляют форматированием изображения, устанавливая его размеры (стр. 256), поля, выравнивание и проч. Правила использования атрибута alt приведены на стр.35.
В последующих версиях HTML, вполне вероятно, будет предпринята попытка перейти на использование тега OBJECT для вставки любых внешних по отношению к документу объектов или данных, в том числе и изображений. Обобщенный синтаксис тега OBJECT позволяет указать множество дополнительных сведений об изображении и его роли в документе, а принадлежность этого тега к разряду «парных с игнорируемым содержимым» (стр. 28) обеспечит его обратную совместимость с броузерами, понимающими только тег IMG.
Еще во второй версии HTML не было никаких средств для создания таблиц, если не считать фрагментов «преформатированного» ASCll–текста с сохранением всех пробелов, табуляции и переносов строки. Сейчас, однако, тег TABLE гораздо чаще используется для визуального форматирования страницы, чем для представления табличного по своей природе материала. Алгоритм верстки таблиц, которому приходится учитывать множество подчас противоречащих друг другу сведений (например, натуральную ширину содержимого ячейки и ту ширину, которая «рекомендована» атрибутом width соответствующего тега TD), достаточно сложен и, к сожалению, плохо задокументирован, — а из–за этого в некоторых своих деталях несовместим у разных броузеров. Использованию таблиц для форматирования основного содержимого страницы посвящен раздел на стр.234.
Возможность поделить окно броузера на части, загрузив в каждую из «форточек» — фреймов — отдельный HTML-файл, замечательна не столько открывающимися перспективами развития интерфейса сайта, сколько тем фактом, что один HTML-файл получает при этом возможность ссылаться на другие. Таким образом, URL читаемой вами с экрана страницы может совершенно не совпадать с тем адресом, который отображен в строке URL броузера. Это особенно интересно, если учесть, что «просто вставить» внутрь одного файла содержимое другого средствами HTML невозможно (хотя для этого могут использоваться, например, SSI-вставки, стр.71). Сайты с фреймами нравятся не всем; иногда их критикуют за неудобство и нелогичность навигации. Более серьезными, однако, являются проблемы доступности фреймов для неграфических сред и для автоматических сборщиков информации (программ–роботов поисковых систем, стр.38). Дизайнерские аспекты работы с фреймами подробно обсуждаются на стр.188.
Хотя с текстовыми кодировками мы уже знакомились (стр. «14), теория и практика создания разноязычных HTML-документов — особая тема. Как я уже упоминал, стандартной кодировкой HTML-документов начиная с версии 4 объявлена кодировка Unicode. Однако это совсем не означает, что все HTML-документы должны создаваться, храниться и передаваться в этой кодировке. Стандарт допускает использование автором страницы любых других кодировок (при условии, разумеется, что набор символов выбранной кодировки соответствует потребностям документа); однако «внутри себя», разбирая синтаксис документа, броузер обязан перекодировать его из внешней, заданной автором кодировки в Unicode.
Для дизайнера это требование имеет, пожалуй, только одно практическое следствие: числовые подстановки (стр. 29) должны ссылаться на Unicode–коды нужных символов, а не на их коды в текущей кодировке документа. Это сделано для того, чтобы не только мнемонические, но и числовые подстановки, во–первых, не зависели от кодировки документа, а во–вторых, давали возможность ссылаться на символы за пределами текущей кодировки. К сожалению, поскольку многие версии броузеров до сих пор не подозревают об этом требовании стандарта, с известной гарантией можно пользоваться только числовыми или мнемоническими кодами из репертуара Latin‑1 (которая является подмножеством Unicode).
Согласование кодировок. Веб–сервер, посылая документ по запросу броузера, обязан указывать внешнюю кодировку этого документа в так называемом HTTP-заголовке, предшествующем любому отправляемому с сервера файлу и содержащем служебную информацию о нем. Броузер же по получении такой посылки должен переключиться в эту кодировку, что сводится обычно к замене шрифтов, которыми выводится документ, и/или перекодировке (например, из КОИ 8 в СР 1251, если предполагается использовать функции вывода операционной системы Windows, для которой эта кодировка «родная»).
К сожалению, этой возможностью пользуются далеко не все серверы русского Интернета. Часто, попав на страницу по ссылке с другого сайта, приходится вручную переключать кодировку отображения командой в меню броузера. (Очевидно, что веб–серверы вряд ли игнорировали бы необходимость указывать кодировку отсылаемых документов, если бы броузеры не позволяли переключать кодировки пользователю.) Автор документа может эмулировать HTTP-заголовок прямо в HTML с помощью тега МЕТА, заставляя броузер переключаться в нужную кодировку без перенастройки сервера.
Согласно стандарту, броузер может перечислять в своем запросе те кодировки, документы в которых он в состоянии отобразить, чтобы сервер мог в ответ выбрать заказанную кодировку из имеющихся или же перекодировать документ «на лету». Распространенные графические броузеры пока что не поддерживают эту возможность.
Обеспечение доступа к сайту для любых платформ и любых сред (графической, текстовой, звуковой) — важный аспект веб–дизайна, к сожалению, часто упускаемый из виду практикующими дизайнерами. Не следует думать, что общепринятыми графическими броузерами не может пользоваться только пренебрежимо малый процент чудаков, инвалидов и обладателей текстовых терминалов вместо «настоящих компьютеров». Все больше становится пользователей, по разным причинам предпочитающих слушать, как специальная программа читает текст вслух (например, почему бы не послушать таким образом новости с любимого сайта, сидя за рулем), или владельцев всевозможных переносных устройств для доступа к сети, очень часто с черно–белым, весьма ограниченным по возможностям экраном. Наконец, нельзя забывать о том, что вашу страницу будут читать не только люди, но и всевозможные «роботы» и автоматические сборщики информации, которые очень похожи на «неполноценных» пользователей именно своей ограниченностью текстовым аспектом информации.
Доступность информации в Интернете опирается на два основных принципа, из которых вытекают все остальные, более частные рекомендации. Первый из этих принципов вам уже известен — это преимущественное (или, по крайней мере, хоть какое–то) использование структурной, а не только визуальной разметки. Например, пометив фрагмент текста тегом I, вы тем самым даете команду переключиться в курсивное начертание, — что имеет смысл только в графической среде: речевой броузер, читающий страницу вслух, ничего похожего на «курсив» не имеет и, скорее всего, тег этот просто проигнорирует. Намного разумнее воспользоваться вместо этого тегом ЕМ, который вводит логический элемент эмфазиса (выделения) и который можно интерпретировать соответствующими средствами в разных средах (например, в графике — курсивом, а в речи — интонацией).
Второй главный принцип доступности — это поддержка текстового эквивалента для всей информации страницы. Это совсем не означает, что вам нужно будет делать копии всех HTML-файлов с тем же текстом, но без графики и таблиц (хотя ссылки на такие текстовые копии до сих пор можно увидеть на некоторых сайтах). К счастью, HTML позволяет хранить в том же файле текстовый «транскрипт» для любых нетекстовых элементов, прежде всего изображений (а также явно помечать те из них, которые вообще не имеют текстового эквивалента). Обычный текст — самый универсальный компьютерный формат данных с самыми широкими возможностями преобразования и отображения, поэтому поддержка текстового плана веб–страницы — лучший способ обеспечить ее доступность для любых потребителей информации.