Нет, нет, нет. Я совершенно не собираюсь уподобляться многочисленной армии Вась Пупкиных, которые, склепав во фронтпэйдже страницу из трех разделов ("Как заработать в Интернете", "Моя фотка" и "Гостевая книга"), тут же спешат популяризовать свой бесценный опыт в фундаментальном труде "Как правельно делать посищаемые сайты". Я прекрасно отдаю себе отчет, что мой собственный сайт сделан на любительском уровне, и становиться в позу крутого профессионала веб-дизайна, поучающего других, мне было бы смешно. Поэтому нижеследующие заметки написаны вовсе не с позиции дизайнера - а с позиции того, ради кого, собственно, дизайнеры и стараются. То бишь пользователя. Уж это-то звание принадлежит мне по праву.
Итак, именно с точки зрения пользователя и его удобства я намерен проанализировать некоторые мифы, популярные как среди профессиональных веб-дизайнеров, так и (тем более) среди некритически внимающих авторитетам любителей. С частью этих мифов я регулярно сталкиваюсь на практике, о других узнал благодаря заметкам Артемия Лебедева и Михаила Харитонова. (Надо ли говорить, что сами упомянутые авторы верят в истинность означенных мифов? Надо или нет, но я уже это сказал.) Подчеркиваю, что разбор тривиальных ошибок васьпупкинского уровня в мою задачу не входит; те мифы, с которыми я имел неудовольствие познакомиться на практике, воплотились не на "кошмарных домашних страничках", а на сайтах вполне солидных проектов. Я не занимался систематизацией мифов веб-дизайна, так что порядок их перечисления - вполне произвольный; не претендую я также и на полноту охвата - не исключено, впрочем, что эта статья будет дополняться со временем.
Время доступа к информации на сайте должно быть минимальным (1)
У этой аксиомы есть два частных следствия:
Отдельная страница должна грузиться как можно быстрее (1.1)
Переход из любого раздела в любой должен требовать минимального
числа кликов и загрузок (1.2)
Очевидно, что фреймы (при правильной их организации, конечно) позволяют нам в любой момент видеть на экране всю структуру сайта и перемещаться в любой раздел за один клик. Попытка сделать этакую эмуляцию фреймов, когда структура (оглавление) сайта изображается непосредственно на страницах (на каждой из них!), нарушает принцип 1.1 - ведь в этом случае объем каждой страницы увеличивается. Кроме того, если длина страницы больше высоты экрана (что, как вы понимаете, скорее правило, чем исключение), то при скроллинге вся структура уезжает за пределы экрана, в то время как во фрейме она всегда на своем месте.
Строительство же сайтов по старинке, с главным меню, из которого вы попадаете на страницы подразделов и вынуждены потом возвращаться обратно по кнопке "Назад" (на самих страницах или в броузере) - нарушает принцип 1.2.
Таким образом, приличной альтернативы фреймам попросту нет. Какими же аргументами оправдывают фреймоненавистники свои неприличные альтернативы?
"Если на страницу попадут не с сайта, а из поисковика, навигация будет нарушена, ибо страница загрузится без фрейма". Бороться с этим несложно. Можно на каждой странице поставить ссылку на главную (все равно она займет гораздо меньше места, чем эмулирующее фрейм полное оглавление сайта). А можно не делать даже этого, если у вас понятно организована физическая структура: когда пользователь, пришедший с поисковика, видит в броузере URL http://mysite.domain.ru/texts/pupkin.txt - он понимает, что, стерев "pupkin.txt", он попадет в раздел "texts", а стерев и "texts" - на главную страницу.
А вот чего делать категорически не следует, так это проверять, загружена страница с фреймом или нет, и во втором случае автоматически перезагружать ее с фреймом; подробнее об этом ниже.
"Если документ открыт во фрейме, невозможно узнать его адрес, ибо вместо его URL в броузере отображается URL фрейма" (аналогичная претензия - "невозможно посмотреть его код"). С этим тоже легко бороться - достаточно открыть документ в отдельном окне. Заметим, что такое требуется гораздо реже, чем просто прочитать страницу, так что это мелкое неудобство вполне терпимо на фоне удобств, предоставляемых фреймами. Однако отсюда ясно, почему нельзя подгружать фрейм принудительно.
Наконец, самая несуразная претензия - "мешает, когда сбоку/сверху/снизу от текста маячит что-то еще". У авторов подобных утверждений хочется спросить - а корпус монитора им не мешает? А предметы, окружающие монитор? А "оконная рама" броузера, а кнопки запущенных приложений? Пользователь обычно сосредоточивается на тексте, а не на том, что находится вокруг. Возражение, что пользователь-де к монитору уже привык, а к фрейму на данном конкретном сайте - еще нет, также несостоятельно: по этой логике, должен существовать Единственный Дизайн для всех сайтов, к которому пользователь привыкает раз и навсегда, а сам пользователь не должен ни апгрейдить компьютер, ни переставлять предметы на своем столе. Не говоря уже о том, что даже на сайтах без фреймов текст нередко не занимает весь экран; особенно это актуально для новостных сайтов, где рядом с колонкой читаемой статьи всегда имеются анонсы других статей, ссылки и т.п. Более того, узкий текст читается быстрее, чем широкий. Но, конечно, форма и размер фреймов должны подбираться с умом. Если пользователю приходится разглядывать документ сквозь узкую щель или клеточку в центре (или даже не в центре) монитора, это, действительно, мешает и раздражает. Интересующий пользователя документ должен занимать основную часть экрана, а фрейм - ненавязчиво оставаться сбоку и не отвлекать внимание всякими яркими и мигающими спецэффектами.
Не следует делать границы фреймов неподвижными; пусть пользователь, если ему хочется, подвинет мышкой ваш фрейм так, как ему удобно. На всех все равно не угодишь. Хотя вариант по умолчанию, разумеется, должен быть ориентирован на большинство.
Впрочем, для очень длинных (мегабайтных) текстов разбиение на части все же имеет смысл (естественно, при этом должно быть оглавление, позволяющее пользователю сразу перейти к любой части; недопустима ситуация, когда на страницу номер N можно попасть только со страниц N-1 и N+1). Но 10- и даже 100-килобайтные тексты дробить не стоит.
Насчет якорей вы неправы категорически. Мало того, что якоря удобны сами по себе - они удобны именно в таком виде, который вы столь яростно отвергаете (когда по кнопке back происходит возврат к ссылке на якорь). Пример: имеется текст с примечаниями в конце. Ссылки на примечания логично делать именно через якоря, ведущие в конец той же страницы (а не открывать, к примеру, новое окошко или, не дай бог, не грузить новую страницу на место старой - каковая последняя вполне может начать качаться по новой при попытке возврата). Далее, пользователь прочитал примечание и хочет вернуться к тексту. Естественно, к тому месту, откуда он пошел смотреть комментарий. Жмет back и возвращается, что может быть проще и естественней? Можно, конечно, добавлять к каждому примечанию ссылку "назад к тексту", что увеличивает размер документа во-первых, эстетически безобразно во-вторых и, наконец, попросту бессмысленно при наличии более простого способа в-третьих. Back, как вам, очевидно, известно, означает не "на предыдущую страницу", а "назад". Т.е. туда, где я был до этого. На этой странице или на другой - не важно. И даже если в какой-то ситуации мне понадобится вернуться именно на другую страницу - лишний back по той же странице костей не ломит. Ибо ни к каким новым скачиваниям не приводит, у нормальных броузеров, во всяком случае. (А развивая вашу логику, можно заявить, что back-де должна вообще отсылать юзера на предыдущий _сайт_. Ибо внутри одного сайта должна быть собственная навигация, и незачем топтать кнопки броузера.)
И попав на сайт, где, нажав back, я окажусь не там, где был перед этим, а там, куда меня хочет послать умный веб-дизайнер - я буду, как вы выразились в другой статье, громко материться. Как, впрочем, и на сайте, дизайнер коего (по собственной дури или начитавшись ваших советов) уберет оглавления с якорями из документов типа FAQ, заставляя несчастного пользователя ползать по многоэкранной простыне в поисках единственного интересующего его вопроса.
"Скопировать картинку каждый дурак может, а ты попробуй свою создай". Веб-дизайнер - это не фотограф (и даже не художник в узком смысле), картинка для него - не самоцель, а средство, элемент оформления сайта. Его задача - придумать, что вот здесь должна быть такая картинка, а не рисовать/фотографировать/сканировать ее самостоятельно (если уже есть готовая). Мне же, как пользователю, совершенно все равно, откуда взята картинка - главное, чтобы она была к месту и не слишком долго грузилась. Искать сложный путь там, где есть простой (а конечный результат - аналогичен) - удел дураков и мазохистов. Использование сборников дизайнерами столь же оправданно, как и использование стандартных библиотек программистами.
"Кому нужны десятки сайтов, оформленных одними и теми же стандартными картинками". Дело в том, что и сборников много, и картинок в каждом из них - не пять и не десять. Так что разнообразие весьма велико.
Особый разговор, конечно - авторские права. Если некто ворует картинку, затирает копирайты и кладет ее к себе на сайт - это не может быть оправдано ни под каким видом.
Вообще, тут уместно напомнить вторую аксиому:
Сайт не должен выполнять никаких действий, кроме тех, которые запросил пользователь (2)
К таковым действиям относятся открытие новых окон (и закрытие старых), принудительное добавление фрейма (о чем речь шла выше), переходы не туда, куда просил пользователь (в том числе и по кнопке back, см. выше), перезагрузка страниц и т.д. и т.п.
Продолжение может воспоследовать...