Веб-стандарты: ключевые концепции и плюсы применения

Кажется, к настоящему времени Всемирная паутина преодолела большинство «юношеских» болезней роста и вступила в относительно зрелую фазу развития. Веб-разработка сегодня — обширная, сложная и многогранная отрасль, в рамках которой эпоха универсальных специалистов навсегда ушла в прошлое. Разнообразные веб-технологии ныне исчисляются сотнями.

Если говорить о технологиях стороны клиента, то в среде веб-разработчиков, имеющих моральное право называть себя профессионалами, к настоящему моменту сложилась практика проектирования сайтов, непременно сопровождаемая уважительным отношением к духу и букве современных веб-стандартов.

Речь идет, главным образом, о спецификациях технологий, разрабатываемых W3C, но философия веб-стандартов выходит далеко за рамки формальных требований технологических спецификаций. Можно сказать, что в отрасли сформировалась целая культура со своими сложившимися традициями написания кода, правилами хорошего тона, ну и, конечно, конкурирующими течениями и взаимными спорами между их представителями.

Споры эти, впрочем, касаются обычно довольно тонких моментов — разногласий в отношении фундаментальных концепций не наблюдается. Рассмотрим же эти принципиальные моменты поближе.

Прежде всего, сам термин «веб-стандарты» не вполне точен. Во-первых, потому что спецификации W3C имеют статус рекомендаций — их можно выполнять, а можно и нет: никаких штрафных санкций каких бы то ни было контролирующих органов за пренебрежение буквой технологических спецификаций на современном этапе развития отрасли не предусматривается. Во-вторых, потому что рекомендация — это финальный статус спецификации W3C, а многие спецификации начинают жизнь (находя экспериментальную поддержку в браузерах и применение на реальных сайтах) задолго до официального утверждения в качестве рекомендаций. И это, похоже, единственно правильный путь развития технологий. Фактическое внедрение, востребованность профессиональным сообществом — очень мощный стимул, ускоряющий разработку и утверждение спецификаций и, как следствие, совершенствование отрасли в целом.

Современные веб-стандарты являются открытыми — их свободное использование всеми желающими не ограничено никакими патентами и лицензиями, а перспективное развитие никак не зависит от сиюминутных прихотей коммерческих корпораций.

Можно сказать, что философия современных веб-стандартов основывается на трех китах:

  • разделении содержания, представления и поведения на уровне конечного кода веб-страниц, отправляемого сервером клиенту;
  • семантичности разметки;
  • валидности кода разметки и синтаксической корректности кода таблиц стилей и скриптов клиентской стороны.

Остановимся на каждом из них подробнее.

Принято считать, что веб-документ составляют четыре материи: содержание, структура, представление и поведение. Содержание — это, грубо говоря, «полезный груз» веб-страницы, тот текст, который вы видите, просматривая ее в окошке браузера. Содержание практически неотделимо от структуры, описывающей различные смысловые единицы контента: заголовки, абзацы текста, списки, определения, цитаты и прочее. Представление — гораздо более независимая от структурированного содержания категория. Оно описывает особенности отображения или воспроизведения контента. Примерами различных представлений могут служить внешние виды веб-страницы на большом экране монитора настольного компьютера или ноутбука, на маленьком экране мобильного устройства, на листе бумаги после распечатки. Помимо перечисленных нами визуальных представлений, могут быть и другие их виды. Так, воспроизведение текста страницы речевым браузером является аудиальным представлением этого документа. А если речь идет о выводе контента веб-страницы на механическую строку Брайля для незрячих людей или о печати этого документа на специальном брайлевском принтере, подразумеваются тактильные представления.

Чрезвычайно важно понимать, что структурированное содержание единственно, тогда как его представления множественны. Одна и та же веб-страница может выглядеть (или, в более широком смысле, быть воспроизведена) совершенно по-разному в различных условиях. Задача хорошего верстальщика — не препятствовать искусственно этой гибкости.

Поведение — это динамическое изменение содержания, структуры и представления веб-страницы в зависимости от действий пользователя или каких-либо других событий.

Если говорить о конкретных технологиях, то для структурирования контента веб-страниц в современном мире используется HTML, за управление представлением отвечает CSS, а задачи управления поведением возложены на JavaScript.

Семантика в языкознании — это значение, смысл слова, речевого оборота, грамматической формы. Применительно к HTML-разметке этот термин используется в похожем качестве. Семантичная (семантическая) разметка — это, в широком смысле, внимательное отношение к смысловой нагрузке тех или иных структурных единиц при написании кода. Базовый уровень семантики — использование структурных элементов HTML строго по назначению. Следующий, более тонкий уровень — грамотное именование классов и идентификаторов элементов, использующихся в CSS-коде, сообразно их смысловой нагрузке, но никак не особенностям визуального представления. Еще более высокий уровень — использование сверх основной HTML-разметки каких-либо дополнительных метаданных, облегчающих возможную машинную обработку контента (примеры средств реализации — микроформаты, Microdata и RDFa).

Валидность — соответствие кода формальным требованиям спецификаций — убережет разработчика от возможных неприятных неожиданностей, связанных, по крайней мере, с его собственными ошибками. Если вы относительно консервативны и не выходите в процессе разработки за рамки спецификаций, уже официально утвержденных в качестве рекомендаций W3C (например, XHTML 1.0 Strict и CSS2.1), в идеале необходимо стремиться доводить код до полностью валидного состояния. Валидность труднее обеспечить, если речь заходит об экспериментальных технологиях (например, HTML5 и CSS3). Общепринятой можно признать практику стремиться достигать абсолютной валидности кода разметки, а к таблицам стилей относиться более либерально, ограничиваясь обеспечением их синтаксической корректности. «Фундамент» HTML5 — словарь и грамматика языка разметки — относительно небольшая часть всей спецификации, которая уже в деталях проработана и не будет претерпевать принципиальных изменений. Многие свойства и значения, предусматриваемые в CSS3, разработчики пока вынуждены применять с вендорными префиксами, что автоматически делает таблицы стилей невалидными. Можно отметить, что валидность кода разметки куда как более важна, чем валидность таблиц стилей, ибо код разметки описывает самоценную сущность — структурированное содержание, а код таблиц стилей — всего лишь представление, которое не может существовать без содержания, и вариантов которого для одного и того же содержания теоретически может быть бесконечно много.

Ключевые концепции, кратко изложенные выше, важны, конечно же, отнюдь не сами по себе, а исключительно благодаря многочисленным положительным следствиям уважительного отношения к ним со стороны веб-разработчиков. Вот основные из таких следствий:

  • ускорение загрузки и рендеринга веб-страниц;
  • облегчение возможной машинной обработки контента;
  • бо́льшая гибкость в отношении различных сред и устройств вывода информации;
  • лучшая доступность контента веб-страниц для пользователей с ограниченными возможностями (в первую очередь имеются в виду незрячие и слабовидящие люди);
  • обеспечение доступности контента для пользователей устаревших, а также консольных и прочих «экзотических» браузеров;
  • гарантированная совместимость верстки с современными графическими браузерами и всеми последующими их версиями;
  • облегчение процесса разработки веб-сайтов.

Более развернуто о философии изящества современных веб-стандартов читайте в серии статей, опубликованной на сайте проекта WebHiTech: часть 1, часть 2, часть 3.

Артемий Ломов, WebHiTech