Доступность: таблицы. Описываемые в гл.3 | приемы верстки веб–страниц с помощью таблиц хотя и считаются иногда «злоупотреблением», несовместимым с духом и буквой HTML, тем не менее вполне допустимы с точки зрения доступности информации, если только при этом соблюдается одно несложное правило. Поскольку таблица в окне броузера двумерна, а текстовый эквивалент страницы одномерен, нужно следить, чтобы логически связанные фрагменты содержимого располагались либо в одной ячейке, либо в ячейках, соседних по горизонтали. Например, если таблица содержит больше одного столбца, нельзя помещать заголовок в одну ячейку, а относящийся к нему текст — в соседнюю снизу, так как в текстовом эквиваленте страницы заголовок и текст будут при этом разделены содержимым других ячеек.
Как писать alt–тексты. Особого внимания заслуживает атрибут alt тега IMG, предназначенный для записи текстового эквивалента изображения. Значением этого атрибута может быть строка символов, содержащая любые подстановки (например, ), но не содержащая других тегов. (Впрочем, сам тег IMG можно вставить внутрь парного тега логического форматирования — например, HI, — чтобы приписать его alt–тексту соответствующую структурную роль и средства выделения в неграфических броузерах.)
Главный принцип, который нужно при этом иметь в виде, формулируется так: alt–текст должен давать текстовый эквивалент информации, содержащийся в изображении, а не некую метаинформацию о самом этом изображении. С этой точки зрения исключительно неуместно смотрятся вставляемые иногда в alt–тексты размеры файлов изображений в байтах или же советы типа «Включите загрузку графики, чтобы увидеть эту картинку». В простейшем случае, когда картинка содержит заголовок, надпись на кнопке или другой текст, ее атрибут alt обязан содержать в точности этот самый текст и ни слова больше. Ниже перечислены некоторые распространенные типы изображений и принципы выбора alt–текстов для них:
• Для распорок (стр. 237) и декоративных элементов, не несущих никакой информации, обязательно указывать, пустой alt–текст (alt=""). Как ни странно, этот простейший случай не является значением по умолчанию, так что автор должен сам позаботиться об обнулении alt–текста во всех вспомогательных изображениях.
• Для маркеров элементов списка пользуйтесь или последовательными номерами (в текстовых броузерах и особенно при чтении страницы вслух они сильно облегчают восприятие даже тех списков, которые «в графике» лучше смотрятся без нумерации), или же тем символом, который обычно используется для этой цели в текстовых списках — звездочкой (*).
• Для разделителей, аналогичных по функции тегу HR (стр. 203), подходящим alt–текстом будет ряд небуквенных значков — например, "======" или "******".
С другой стороны, такое решение неплохо смотрится только в текстовых броузерах вроде Lynx, тогда как владельцам речевых броузеров, скорее всего, не очень–то понравится слушать монотонное «знак равенства, знак равенства, знак равенства…»
• Для кнопок панелей навигации (стр. 206) и всех прочих изображений–ссылок разумно принять особое правило оформления alt–текстов (например, я рекомендую заключать их в квадратные скобки). Это следует делать не только для того, чтобы ссылки легко было найти в текстовом эквиваленте страницы, но и для отделения alt–текстов друг от друга: дело в том, что, если графические вставки идут одна за другой без пробелов, их alt–тексты также не будут ничем разделены, если только пробелы или другие символы–разделители не предусмотрены в них самих.
Приведенные здесь правила рассчитаны на то, чтобы облегчить доступ к информации на любых платформах и в любых средах — графической, текстовой или звуковой (стр. 34). В последнее время, однако, графические броузеры несколько переопределили семантику атрибута alt: начиная с четвертых версий броузеры Netscape и Microsoft не только показывают alt–текст на месте отсутствующей графики, но и выводят его в виде «всплывающей подсказки» (floating tip), возникающей при поднесении курсора мыши к изображению. С одной стороны, это нововведение заставит визуальных дизайнеров внимательнее относиться к расстановке alt–текстов на своих страницах — не писать туда что попало и не забывать о пустых alt–текстах у вспомогательных изображений. С другой стороны, непосредственное участие alt–текстов в процессе интерактивного исследования страницы заставляет дизайнера отказаться от дословного воспроизведения в alt–текстах содержимого графических вставок: сейчас не редкость страницы, в которых, например, alt–тексты дают расширенные пояснения для слишком лаконичных или же вообще лишенных текста кнопок навигации.
Доступность: изображения–карты. В HTML существует два способа сделать так, чтобы части одного изображения служили ссылками на разные адреса: серверные (server–side) и клиентские (client–side) изображения–карты (image maps). Первый из этих способов, предполагающий посылку серверу координат точки, в которой произошел щелчок мыши, и получение в ответ URL-адреса, на который нужно перейти, сейчас встречается уже довольно редко, и это нельзя не приветствовать: поскольку само понятие «координат» имеет смысл только в графической среде, оформленные таким образом ссылки по определению недоступны никому, кроме пользователей графических броузеров.
Клиентские изображения–карты, которые хранят конфигурацию областей, чувствительных к щелчку мыши, и соответствующие им UR. L прямо в HTML-файле, с этой точки зрения куда предпочтительнее: неграфический броузер может, проигнорировав само изображение, представить список его чувствительных областей в виде обычных ссылок. Для этого нужно не забыть снабдить каждый тег AREA внутри тега MAP атрибутом alt (который, кстати, согласно стандарту является его единственным обязательным атрибутом), чей текст и будет оформлен в виде соответствующей ссылки.
Еще предпочтительнее, однако, совсем отказаться от карт и разрезать изображение на отдельные «кнопки», не забыв прописать для каждой соответствующий alt–текст. Графические броузеры позволят вам заверстать изображения вплотную без каких–либо швов или зазоров, так что дизайн страницы от этого не пострадает. Кроме гарантированной Доступности в неграфических средах, это решение позволяет иногда понизить для исходного изображения цветовую глубину и, соответственно, уменьшить общин объем файлов страницы (стр. 253).
Один из малоизученных аспектов веб–дизайна — необходимость учитывать не только эстетические и информационные предпочтения пользователей, но и «особенности восприятия» автоматических сборщиков информации. Сейчас к этому классу принадлежат почти исключительно «роботы» поисковых систем, собирающие текстовые базы доступных в сети документов и предоставляющие их затем всем желающим для поиска по ключевым словам. В будущем, судя по всему, число странствующих по просторам Интернета роботов будет постоянно увеличиваться, и среди них рано или поздно появятся более интеллектуальные экземпляры, чье восприятие информации будет в какой–то мере приближено к человеческому. Пока что, однако, веб–дизайнеру приходится учитывать интересы довольно примитивных текстовых «искалок», и следование некоторым несложным правилам в этой области способно принести немедленную выгоду — существуют сайты, у которых больше половины посетителей составляют те, кто попал туда через одну из поисковых систем.
К сожалению, все существующие поисковые системы принадлежат частным фирмам, а не общественным организациям, и конкуренция друг с другом заставляет их соблюдать секретность в своих разработках. Веб–мастерам приходится полагаться на слухи, догадки и собственные расследования, результатам которых никогда нельзя доверять на все сто процентов. Кроме того, информационные системы такого объема иногда ведут себя неожиданно даже для их создателей.
Мертвая зона. Странствуя по ссылкам от одного сайта к другому, робот в идеале должен был бы рано или поздно обойти весь Интернет. На практике эта цель остается недостижимой, и не только из–за труднопредставимого объема Всемирной паутины и всегда ограниченных, возможностей поисковых систем. В современном Интернете все большая доля страниц генерируется динамически в ответ на данные, введенные пользователем самостоятельно или сохраненные в его «профиле», созданном во время предыдущих посещений этого сайта. Понятно, что роботу неоткуда узнать, что можно или нужно вводить в поля форм, так что любые динамически генерируемые страницы (в том числе, кстати, и результаты поиска на самих поисковых серверах) для робота недоступны.