- •Как проверить сайт на соответствие стандартам?
- •Соответствие современных сайтов стандартам
- •Amazon: Торговля по стандартам?
- •Cnn: Стандартизованные новости?
- •Apple: Вершина утонченности в дизайне … и валидации?
- •Бизнес-причины
- •Стандарты или рекомендации?
- •И даже еще не рекомендации!
- •Открытость
- •Дух и буква
- •Три кита
- •Часть 2
- •Четыре стихии
- •Большая тройка технологий
- •Семантика
- •Валидность
- •Часть 3
- •Ускорение загрузки веб-страниц
- •Лучшая доступность для пользователей с ограниченными возможностями
- •Доступность контента для пользователей устаревших браузеров
- •Гарантированная совместимость верстки с современными браузерами и последующими их версиями
Дух и буква
Если рассматривать веб-стандарты в более широком смысле, не только как формальные рекомендации W3C, но и как некоторую выросшую вокруг них культуру веб-разработки со своими сложившимися традициями написания кода, правилами хорошего тона и всякими разными более тонкими моментами, то здесь уместно сделать замечание о том, что, вопреки расхожему мнению, важнее не буква, а дух разрабатываемых консорциумом спецификаций.
Взаимоотношения тут примерно такие, как между гражданским правом и категориями морали. Можно быть последней сволочью, но всегда действовать строго в рамках закона и даже использовать его хорошее знание в собственных шкурных интересах. А можно, напротив, быть широкой души человеком, допускающим, тем не менее, время от времени какие-то действия, которые можно квалифицировать как мелкие административные правонарушения.
Вот такая же штука и с веб-стандартами. Можно сверстать страницу, которая будет проходить проверку валидатором на соответствие спецификации XHTML 1.0 Transitional, но при этом код не будет иметь ничего общего с версткой не то что хорошего, но даже минимально приемлемого уровня. (Впрочем, сказанное справедливо даже для XHTML 1.0 Strict и HTML5 — свободы там ощутимо меньше, но ее все равно более чем достаточно. Не применяйте тегов <h1>…<h6> для обособления заголовков; отделяйте абзацы текста друг от друга тегом <br>, не используя для этих целей элементы <p>; горизонтальные отступы создавайте при помощи последовательностей из множества неразрывных пробелов; вставляйте картинки, не являющиеся частью контента, а служащие декоративными элементами, всегда при помощи тега <img> вместо того, чтобы делать их фоновыми рисунками; старайтесь как можно чаще использовать inline-стили — и цель будет достигнута. Любой приверженец веб-стандартов с не слишком крепкими нервами упадет в обморок от вашего кода.)
С другой стороны, можно сверстать страницу относительно хорошо, с уважением к духу веб-стандартов, но забыть в спешке перед дедлайном вычистить пару ошибок валидации. Или даже допустить их намеренно. (Сегодня, в период, который увлеченные натуры называют эпохой Web 2.0, эта проблема особенно актуальна в связи с тем, что «автономные» сайты почти вымерли — все вокруг считают священным долгом понавешать себе на страницы всякие счетчики, виджеты социальных сетей, разнообразные информеры, рекламные блоки… И, мягко говоря, далеко не все эти произведения сторонних разработчиков идеальны. А перфекционистов, готовых пожертвовать каким-нибудь красивым виджетом в пользу абсолютного совершенства верстки, — единицы.)
Три кита
На многих «общеобразовательных» семинарах я обычно рассказываю, что хорошая верстка в соответствии с современными веб-стандартами основывается, как и все мироздание, на трех китах. На самом деле, китов, а уж тем более акул, пираний и других милых рыбок, а также разных подводных камней, вокруг которых вся эта живность должна виртуозно лавировать во избежание лобовых столкновений, — похоже, гораздо больше. Впрочем, в соответствии с исконной русской традицией соображать на троих, я предлагаю пока не множить сущности, а остановиться вот на тех самых трех китах, которые представляются мне наиболее важными. А они таковы:
разделение содержания, представления и поведения на уровне конечного кода веб-страниц, отправляемого сервером клиенту;
семантичность разметки;
валидность кода разметки и синтаксическая корректность кода таблиц стилей и скриптов клиентской стороны.