Для практики важнее другой вопрос — какие шрифты с наибольшей вероятностью можно обнаружить на компьютере типичного пользователя и на какие, следовательно, шрифты может рассчитывать дизайнер, не желающий связываться с технологиями встраивания шрифтов в документ? Речь здесь может идти не о наименованиях отдельных шрифтов, а только об обобщенных шрифтовых типах, представленных на разных компьютерных платформах разными по названию (хотя нередко близкими по начертанию) шрифтами.
Кроме используемого по умолчанию шрифта с засечками, обычно представленного гарнитурой Times Roman, любая графическая операционная система имеет еще два типа шрифтов: рубленый (в Windows — Arial) и моноширинный (в Windows‑Courier). Из них особенно часто в дизайне применяется рубленый шрифт, для выбора которого, с учетом названий стандартных рубленых шрифтов в разных операционных системах, можно порекомендовать такую запись в HTML:
<FONT face=«Arial, Geneva, Helvetica»>
и в CSS:
font–family: Arial, Geneva, Helvetica, sans–serif
Этот простейший вариант не дает стопроцентной гарантии переключения в рубленый шрифт и тем более не может обеспечить абсолютно идентичное начертание символов текста на всех компьютерах. Тем не менее именно такая, рекомендательная форма записи, на мой взгляд, дает лучший компромисс между экономией оформительских средств, с одной стороны, и степенью контроля за внешним видом документа — с другой. Все прочие решения могут выигрывать в точности воспроизведения шрифта, но только за счет большей нагрузки на канал связи и, как правило, тех или иных ограничений совместимости.
Коренные шрифты. Фирма Microsoft решила начать с малого и опубликовала небольшой набор бесплатных шрифтов, оптимизированных для низкого экранного разрешения и предназначенных специально для использования на веб–страницах, без ложной скромности назвав их «Code Fonts for the Web». Поставляемые только в формате TrueType (т. е. пригодные для использования в Windows и на Macintosh), шрифты эти распространяются вместе с броузером MSIE; их можно также скачать и с сервера Microsoft.
Шрифты Microsoft достаточно распространены среди интернетовской аудитории для того, чтобы имело смысл указывать их в качестве первого выбора в FONT face и font–family. Особенно популярен рубленый шрифт Verdana, который, на случай его отсутствия, можно подстраховать приведенным выше стандартным списком рубленых шрифтов. В заголовках «газетного» стиля неплохо смотрится суженный рубленый шрифт Impact.
С точки зрения дизайнера «рекомендательное» переключение шрифтов плохо даже не тем, что некоторые пользователи не увидят на экране задуманный шрифт (в конце концов, всегда есть те, кто отключает даже загрузку графики в броузере, демонстрируя тем самым полное равнодушие к тонкостям дизайна), а тем, что распространенных шрифтов очень мало и они давно намозолили всем глаза. Выход в этой ситуации очевиден: нужно сделать так, чтобы броузер мог автоматически сгружать с сервера не только сам документ, но и относящиеся к нему шрифты, так же как сейчас он это делает для графических файлов. Однако реализация этой простой идеи, как водится, не обошлась без небольшой, локальных масштабов конкурентной воины.
Все шрифты ношу с собой. Официальная спецификация технологии встраивания шрифтов (font embedding), разработанная Консорциумом W3, является частью спецификации CSS уровня 2 (стр. 40). CSS не задается вопросом о том, как технология встраивания будет реализована в броузерах; спецификация лишь определяет синтаксис, позволяющий автору страницы описывать (или просто ссылаться на) нужный шрифт с помощью богатого набора свойств и шрифтовых дескрипторов. Эта информация (включенная либо в сам документ, либо в относящийся к нему стилевой файл) позволит броузеру выбрать, в зависимости от условий, один из следующих вариантов поведения:
• выбор заказанного шрифта (exact matching), если он уже присутствует на данном компьютере;
• выбор близкого по характеру шрифта (intelligent matching) на основе информации шрифтовых дескрипторов — высоты строчных и заглавных, характера засечек, наклона букв и т. п.;
• синтез нужного шрифта (font synthesis), для чего кроме перечисленных выше общих свойств шрифта нужна также метрическая информация о габаритах каждой буквы. Броузер может, к примеру, воспользоваться технологией Multiple Masters фирмы Adobe, позволяющей плавно менять ширину, насыщенность и другие параметры шрифта, и подогнать более–менее подходящий исходный шрифт под метрику требуемого;
• только в том случае, если все три предыдущих варианта не дали результата и если один из дескрипторов содержит URL файла шрифта, броузер может попытаться сгрузить его из сети и использовать для вывода текста.
Разумеется, выбор одного из этих вариантов поведения зависит как от возможностей броузера (так, в ближайшее время вряд ли можно ожидать появления броузеров, умеющих синтезировать шрифты), так и от замысла автора страницы (который может, например, запретить все варианты, кроме последнего — загрузки шрифтового файла из сети).
В то же время оба главных визуальных броузера‑MSIE и NC — начиная с четвертых версий также поддерживают встраивание шрифтов. Технологии, используемые для этого извечными конкурентами, если можно так выразиться, гармонически дополняют недостатки друг друга. Броузер Microsoft использует синтаксис CSS2 для связывания шрифтов с HTML-документом, однако может работать только со шрифтами в специально созданном для этого формате «шрифтовых объектов» (основанный на TrueType, этот формат позволяет, в частности, вырезать для отправки только используемые в документе символы, содержит средства сжатия шрифтовых данных и предотвращения нелегального копирования распространяемых шрифтов). Привязка к «фирменному» формату не только закрывает эту технологию от посягательств конкурентов, но и ограничивает ее применимость операционными системами Windows и Macintosh.
Ненамного лучше обстоят дела с открытостью и у технологии встраивания шрифтов, разработанной Netscape. Так называемые «динамические шрифты», почему–то рекламируемые этой компанией как часть ее версии «динамического HTML», не привязаны к какой–то операционной системе, однако накрепко привязаны к броузеру Netscape Communicator, который один только может использовать для вывода на экран шрифты в формате TrueDoc (лицензированном Netscape у фирмы Bitstream). Более того, привязка шрифта к HTML-документу у Netscape производится совершенно ни с чем не совместимым способом — через расширение тега LINK. Если бы броузеры–конкуренты были совместимы друг с другом хотя бы по синтаксису вызова шрифтов, различия в шрифтовых форматах были бы не столь существенны.
Осторожно: кириллица. Любая попытка изменить шрифт, которым выводится текст, осложняет и без того непростую ситуацию с поддержкой в HTML русского алфавита. Даже без какого бы то ни было переключения шрифтов русский текст может оказаться для какой–то части вашей аудитории нечитабельным; очевидно, что любые эксперименты в шрифтовой области способны только повысив вероятность этого печального исхода.
Собственно говоря, из описанных выше технологии только встраивание шрифта в документ способно гарантировав соответствие кодировок текста и шрифта (что и понятно — ведь только в этом случае и текст, и шрифт готовятся одним человеком). Однако сами технологии встраивания, о которых мы только что говорили, пока что мало распространены даже среди пользователей графических броузеров. Не говоря уж о том, что полагаться на соответствие кодировки текста кодировке встроенного шрифта очень опасно — при этом можно ненароком лишить доступа к тексту многочисленных пользователей, не желающих или не имеющих возможности использовать какие бы то ни было шрифты (те же программы–роботы и владельцы речевых броузеров, стр.34).
Сейчас на русскоязычных сайтах изредка применяется лишь самое простое из всех шрифтовых решений — переключение в рубленый шрифт, для чего можно написать FONT face=«arial cyr, arial». Однако даже этот простейший вариант почти наверняка доставит неприятности многим вашим пользователям, так что лучше всего не искушать судьбу и обойтись для русского текста шрифтом по умолчанию.
Цвета текста и фона играют в HTML особую роль — эти параметры указываются в атрибутах тега BODY и потому относятся скорее к свойствам всего документа, чем к параметрам набора текста. А поскольку ошибка в этих параметрах может запросто привести к нечитабельности текста (если цвет букв совпадает с цветом фона или близок к нему), пользователь любого визуального броузера имеет возможность выбрать свои собственные значения для цвета фона, текста и ссылок и запретить броузеру обращать внимание на цветовые атрибуты тега BODY. Одним из следствий этого является то, что в этом теге нужно либо не указывать ни одного цветового атрибута, либо обязательно перечислить все три; любая частичная спецификация (например, указание цвета текста без упоминания о цвете фона) может конфликтовать с цветами, установленными по умолчанию в броузере пользователя.