Догма W4 - подробности и пояснение

Приложение 10. Расширения

Весь код, влияющий на вид веб-документа, должен быть вынесен в отдельные файлы, на которые следует ссылаться из head-блока документа.

Запрещается опредеять стили с помощью тега <style>; они могут содержать только директивы @import. Использование атрибута style="" также запрещено.

Не допускается помещать код скрипта в тег <script>. Скрипты должны размещаться во внешних файлах, которые затем можно подключать к документу. Едиственным исключением является чужой код, который нельзя поместить в head-блок (напр., реклама и т.п.). Код в атрибутах тегов (напр., onmouseover="") должен быть кратким и простым.

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

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

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

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

Документ не должен требовать от пользователя установки дополнительного модуля для расширения функциональности браузера. Если документ содержит расширение, которое не будет работать без такого модуля, это расширение должно быть отключено, а его информационное наполнение должно быть передано альтернативным способом (см. также Информационное наполнение). Автоматическая установка программного обеспечения категорически запрещается, даже если браузер поддерживает такую функцию.

Более того, пользовательские настройки браузера нельзя изменять или игнорировать в коде или разметке документа.

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

Скрипт не должен менять определенные пользователем настройки без запроса со стороны пользователя. Любое действие, выполненное вне документа, как то изменение размера и положения окна, закрытие окна или прерывание работы приложения, добавление закладки и т.д., разрешается только в ответ на действие пользователя при условии, что он был уведомлен об этом (см. также Ссылки).