Вы здесь

Web Guidelines.nl

Версия системы: 
Друпал 6

Государственные органы и компании, сталкиваются с проблемами создания сайтов, которые наилучшим образом доступны для людей, браузеров и поисковых систем. Для создания доступных сайтов, есть международные соглашения, такие как WCAG. Голландское правительство собрало эти стандарты вместе, назвав сайт на котором они собраны Web Guidelines. Эти инструкции содержат рекомендации по созданию лучших сайтов.

До конца 2010 года, все правительственные сайты Голландии должны быть переделаны так, чтобы полностью соответствовать этим инструкциям. Значок сертификата слева показывает сайты, которые соответствуют всем 125 инструкциям. Недавно ICTU, институт основанный министерством по внутренним делам и связям королевства, который помогает улучшить сайты, решил перезапустить сайт Web Guidelines на Друпале. Информация на новом сайте предназначена для определённой целевой аудитории и определённым этапам реализации задачи. Разработчик или редактор могут теперь посмотреть инструкции, которые относятся к их деятельности. Новый сайт содержит тематические исследования, примеры создания определённых возможностей и примеры сайтов. Он так же служит инструментом, который позволяет автоматически проверить соответствие сайта 47 инструкциям из 125.

Почему Друпал

У ICTU было несколько причин для выбора Друпала в качестве новой CMS. Вот наиболее важные из них:

  • Сам сайт должен соблюдать все 125 инструкций. Так как некоторые платные CMS закрывают исходный код, то для них невозможно проверить все требования. Друпал был выбран не только потому, что он уже соответствует стандарту XHTML 1.0 Strict, но и потому, что у разработчика есть полный контроль над кодом
  • ICTU отдаёт предпочтение программам с открытым кодом. Нижняя палата парламента Голландии объявила, что использование открытых стандартов и программ с открытым кодом для нужд правительства и государственных учреждений, очень важно
  • ICTU нуждался в перспективном решении с хорошей поддержкой. Выбирая Друпал, компании избегают замкнутости на разработчика. Это означает, что они могут сменить организацию, которая занимается поддержкой, сохранив при этом полный контроль над кодом. Но ещё более важным было то, что у Друпала есть большое и активное сообщество, на которое можно положиться в оказании поддержки

Проблемы с которыми мы столкнулись

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

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

  • Фильтрация инструкций по терминам. Инструкции говорят о том, что URL должны быть понятными (нет параметров запроса или непонятных терминов). В Друпале фильтрация делается через экспонирование фильтра, что приводит к добавлению в URL амперсанда, что для этого сайта неприемлемо. Кроме того, дизайн требовал использования флажков и вкладок, а не раскрывающихся списков (как это сделано во Views). Чтобы получить нужный нам результат, мы написали модуль Termfilter
  • Слайды изображений, работающие без яваскрипта. Есть много дополнительных модулей, которые позволяют создавать слайды, но так как сайт не должен зависеть от CSS или использования в браузере пользователя яваскриптов, нужна была поддержка слайдов с выключенным использованием яваскриптов в браузере пользователя. Дополнительные модули используют в коде HTML параметр display:none, чтобы скрыть все изображения за исключением первого. Таким образом, был создан маленький модуль, который показывает все изображения без яваскрипта, а затем использует jQuery, чтобы скрыть изображения и показывать их слайдами. Если в браузере яваскрипты запрещены, то пользователь видит все изображения в прокручиваемом слое
  • Интеграция инструмента проверки с Друпалом. Скрипт проверки был написан на PHP 4 несколько лет назад и продолжает отлично работать. ICTU решил перезапустить сайт небольшими шагами, при этом графический дизайн и фильтрация инструкций имели приоритет. Это означает, что инструмент проверки пока не портирован для Друпала и PHP 5. Не было возможности интегрировать приложение на PHP 4 с Друпалом, без его переработки, поэтому, HTML и CSS нового сайта были применены к существующими инструменту. То же самое касается вики, которая в настоящее время работает на движке MediaWiki. Миграция на Wikitools выходит за рамки текущей фазы проекта, но она может быть сделана в будущем

Архитектура данных

Сайт использует документы нескольких типов: новость, инструкция, блог и страница. Тип «Страница» используется для основных страниц сайта и содержит CCK-поля. Поле содержания используется только в качестве анонса такой страницы, а основное содержание документа находится в CCK-поле. У каждой страницы есть подзаголовок, который также является CCK-полем.

Menu block используется для генерации дополнительного меню в левой колонке. CKEditor используется для удобства редактирования содержания и объединён с IMCE для вставки изображений. Для подсветки кода используется GeSHi Filter, который важен для нашего сайта, так как у нас есть много примеров HTML и CSS-кода.

Фильтрация инструкций по терминам

Как уже было упомянуто ранее, одной из проблем были экспонированные фильтры (в модуле Views), которые мы не могли использовать для фильтрации инструкции и в связи с чем написали модуль Termfilter, который использует POST-запросы, оставляя URL неизменным.

Кроме того, можно использовать для фильтрации термины всего словаря сразу, так как используются вкладки и радиокнопки. Это требование было вызвано тем, что нужно показывать как текущие инструкции на основе WCAG1, так и новые инструкции на основе на основе WCAG2, которые до сих пор обсуждаются.

В типе документов «Инструкция» используется шесть словарей: версия инструкции, роль, тема, фаза проекта, преимущества и уровень подтверждения. Модуль Termfilter использует эти словари для фильтрации, сортировки и показа документов. Используя сессии в браузере, параметры фильтра сохраняются и восстанавливаются, когда посетитель возвращается на сайт.

Faceted search

Мы использовали Acquia Search (решение на основе Solr), вместо стандартного поиска не только потому, что это хорошее решение для уточнения запроса, но и потому, что в нём используются несколько других удобных возможностей, таких как сортировка и предложения. Поступив таким образом, мы смогли предложить пользователям несколько путей, которыми они могут искать нужное им содержание.

Контактные данные

Разработкой проекта занимались следующие люди:

  • Baris Wanschers (BarisW), Drupal specialist at Sogeti
  • Dominque van Gimst (DomoSapiens), Drupal Front-end developer at Sogeti
  • Martijn Vermeulen (Marty2081), Project manager at Sogeti
  • Michèlle van Vlerken-Thonen, Functional/Graphical designer at ICTU
  • Paul Francissen, Project manager at ICTU

Использованные модули

Мы использовали большое количество модулей, которые разработаны сообществом и некоторые модули мы разработали самостоятельно:

  • Termfilter
  • Block ID
  • Banner rotator