Документация Лаборатории Веб-Зайн
Перевод и адаптация: Веб-Зайн
Вы просмативаете рабочую редактируемую версию документа. Специально об изменения в данном документе не сообщается.
Данный документ является базисом для других разрабатываемых документов. На основе частей данного документа следует разрабатывать документы, конкретизирующие отдельные части текущего документа. Данный документ не является нормативным, а является информативным документом и носит рекомендательный характер.
ISO (международная организация по стандартизации) и IEC (международная комиссия по электротехнике) формируют специализированную систему для международной стандартизации. Национальные органы власти, которые состоят в ISO или IEC, участвуют в разработке международных стандартов с использованием технических комиссий, создаваемых соответствующей организацией для решения определённого круга задач. ISO и IEC взаимодействуют в областях, интересы в которых у них пересекаются. Другие международные организации, правительственные и неправительственные, в связке с ISO и IEC также принимают участие в работе над решением задач.
Международные стандарты редактируются в соответствии с правилами, определёнными третьей частью директив ISO/IEC.
В области информационных технологий ISO и IEC сформировали объединённый технический комитет ISO/IEC JTC 1. Принимаемые комитетом черновые варианты международных стандартов пересылаются национальным органам власти для голосования. Для публикации международного стандарта необходима поддержка более 75% делегатов, участвующих в голосовании.
Приложения А и Б также являются нормативной частью международного стандарта.
Данный международный стандарт подвергся необходимой адаптации, которая включает в себя некоторую переработку структурной части документа, исключение некоторых частей оригинального документа или включение тех частей, которых не было в оригинальном документе. Такие части выделены в документе дополнительно, как показано в текущем примере блока текста. Удалённые части документа не показаны, но чаще всего ими являются дополнительные нормативные (а не информативные) части, которые не представляют интереса конечным читателям. Для подтверждения того факта, что автор адаптации не искажает никаких фактов, читатель может ознакомится с оригинальной версией документа.
Данная адаптация является всецело информативным документом, созданным на основе оригинального документа; все пометки об изменениях оригинального документа были опущены, так как оригинальный документ рассматривается как цельное руководство, которое и является материалом для адаптации. В данной адаптации выделяются лишь те блоки, которые были внесены автором (или авторами) адаптации. Адаптация, как и оригинальный документ, распространяется под лицензией GNU GPL.
В ноябре 1996 года нам дали доступ на редактирование международного стандарта ISO/IEC 15445:2000 для HTML, который известен как ISO-HTML. Формальная спецификация, которую мы разработали для экспертов SGML, которые, по сути, уже знакомы со всеми тонкостями семейства международных стандартов SGML, была опубликована 15 мая 2000 года. Однако, мы хотели, чтобы стандарт стал доступным и для простого читателя, не тратившего всё своё время на чтение или составления стандартов SGML. Это руководство пользователя создано, чтобы помочь людям, у которых есть намерения разрабатывать высококачественные IT-приложения во всемирной паутине и устанавливать высокие стандарты дизайна и управления документами. Мы предполагаем, что читатель уже знаком с рекомендациями W3C для HTML 4.01, но быть экспертом в SGML ему не обязательно.
Мы получили помощь от многих людей в течение разработки международного стандарта и руководства пользователя. Многие члены рабочей группы IETF HTML помогали нам в описании формального введения к ISO-HTML. Нам также содействовали члены и организации-участницы консорциума W3. Мы сотрудничали с рабочей группой W3, которая разработала рекомендации HTML и по рекомендации которой мы стали использовать рекомендации как один из источников цитирования. Рабочая группа ISO/IEC, ответственная за SGML, помогла нам определить цели, преследуемые в данной документе, и обеспечила сотрудничество с W3C. Отдельные слова благодарности стоит сказать Dave Raggett, который принял взял на себя ответственность «Приглашённого Эксперта» в данной разработке и помог встать ISO-HTML в один ряд с другими спецификациями W3C.
Все права на оригинальный документ принадлежат Роджеру Прайсу и Девиду Абрахамсону.
Ниже приведён текст лицензии GNU GPL.
This guide is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Имена правообладателей не должны быть использованы в рекламных или иных целях без согласования с самими правообладателями.
Документ описывает стандарт ISO/IEC 15445:2000, права на который принадлежат IETF, W3C (MIT, Inria, Keio) и ISO/IEC.
Гипертекстовый язык разметки (HTML) — это приложение международного стандарта ISO 8879, стандартного обобщённого языка разметки (SGML). Он предоставляет простой путь для структурного представления гипертекстовых документов и для размещения ссылок на другие документы. Элементы, связывающие вместе несколько документов и называются ссылками. Они могут быть представлены читателям таким образом, что простой клик перебрасывает их на просмотр документа, на который ссылается текущий. У читателя возникает впечатления перемещения от одного документа к другому. Такой простой пользовательский интерфейс теперь является общепринятым; можно сказать, что именно поэтому Web стал таким популярным.
В гонке безумного развития, множество качеств SGML, таких как дисциплина и «практика зрелости», были потеряны; разработчики браузеров добавляли дополнительные возможности в язык разметки: новые теги и новую семантику для них. Это привело к появлению документов, полноценный просмотр которых был возможен лишь на ограниченном числе браузеров. Обычным делом для браузера стало автоматическое исправление синтаксических ошибок, допущенных автором документа, которое абстрагирует читателя от возможного неправильного отображения таких документов.
Международный стандарт был разработан так, чтобы авторы могли создавать простой гипертекст для Web, а также могли быть уверенными в правильном их отображении браузером. ISO/IEC 15445 представляет собой ядро языка, которое должно поддерживаться всеми соответствующими браузерами, системами валидации и внедрения. Данный международный стандарт является уточнением рекомендацией консорциума HTML 4.0; он содержит дополнительный набор правил, которые позволят в будущем более осмысленно использовать рекомендации от W3, прибегая лишь к применению зрелых черт языка и используя всю мощь SGML. Документы, соответствующие международному стандарту, также соответствуют и предоставляемым W3C строгим наборам DTD к HTML.
ISO-HTML исключает (опускает) все нерекомендованные возможности языка, возможности, которые играют лишь косметическую роль и любые другие нестабильные (несозревшие, непринятые сообществом, являющиеся спорными, недоступными для некоторых групп пользователей) возможности. Такой шаг был сделан как подготовка к ожидаемому массовому внедрению таблиц стилей (CSS) авторами и разработчиками браузеров. Некоторые необязательные возможности — например, опускание некоторых частей разметки — были также удалены для создания более надёжных, дисциплинированных, правильных документов, с учётом существующей практикой SGML. Это ни в какой мере не сможет повлиять на выразительность языка в целом.
Данный международный стандарт даёт чёткое разделение систем соответствия и систем валидации. Система соответствия работает корректно, когда обрабатывает документы, соответствующие данному международному стандарту, но нет особых критериев правильной работоспособности при несоответствующих документах. Более мощной является система валидации: она обнаруживает все ошибки SGML и HTML в документе и исходя из этого делает вывод о валидности данного документа как документа ISO-HTML. Часто браузеры являются системами соответствия, тогда как следует применять валидацию. Такие браузеры (или иные подобные инструменты) и являются причиной неработоспособности или низкого качества некоторых сайтов.
Примечание: системы соответствия недостаточно для валидации документа ISO-HTML.
Данный международный стандарт не определяет процедур обработки ошибок для UA (браузеров): он лишь подчёркивает важность валидации документа на первом этапе, нежели исправление ошибок на последующих этапах. Сейчас подобным образом поступают лишь некоторые браузеры (не в ISO-HTML, а в XHTML), если отсылать им документ с использованием заголовка application/xml+xhtml (или других подобных). Только тогда в работу вначале включается система валидации, а уже после положительного её результата идёт полноценная обработка представленного документа. Если браузер получает документ с заголовком, к примеру. text/html, то документ не будет проверятся на валидность и будет произведена его обработка с учётом существующих в нём ошибок.
Ниже представлен минимальный ISO-HTML документ:
<!DOCTYPE html PUBLIC "ISO/IEC 15445:2000//DTD HTML//EN"> <html> <head> <title>Минимальный базовый документ ISO-HTML</title> ... другие элементы заголовка ... </head> <body> <p>Параграф</p> ... другая часть документа ... </body> </html>
Несмотря на то, что ISO-HTML предоставляет такие упущения (с точки зрения XML или строгого XHTML), как незакрытые теги (или элементы с опущенными закрывающими тегами), он определяет несколько больше, нежели сама спецификация W3, то есть, по сути, является более строгим. Возможность игнорирования закрывающий тегов могла быть следствием характера анализируемого на то время документа или желание предоставить авторам документа более простой путь к их созданию.
Чтобы читателям было удобнее ориентироваться в данном руководстве, в документе повсеместно предоставлены ссылки на соответствующие моменты рекомендации W3C HTML 4.01.
Помимо рекомендации HTML 4.01, существует более строгая рекомендация XHTML, с которой вы можете также ознакомится на сайте консорциума.
Международный стандарт чётко разделяет соответствующие документы, системы валидации, системы соответствия и соответсия набору символов (charset).
Чёткое разграничение систем валидации и систем соответствия является крайне важным.
Система валидации — это такая система, которая способна проверить тот факт, что документ содержит корректный HTML. Если документ является корректным (содержит корректный HTML), валидатор выносит соответствующую решение; в противном случае — производит поиск ошибок в документе. В настоящее время понятие проверки документа как таковое очень сильно искажено: авторы считают, что браузеры можно использовать для проверки своих документов, хотя на самом деле браузеры не способы выполнять подобные действия.
Я проверил мою страницу в своём браузере: она работает!
— подобным образом рассуждают авторы большого числа документов, что приводит к появлению большого количества ошибок в документах.
Валидатор обязан включать в себя функции SGML-парсерса, так как ISO-HTML утилизирует большое количество возможностей низкоуровневого SGML. Системы соответствия не обязаны включать в себя подобную функциональность, так как они исходят из утверждения, что документы, которые они обрабатывают, уже подверглись процедуре валидации.
Примечание: система соответствия может находить некоторое (даже большое) число ошибок в неправильном документе и сообщать о них пользователю, но такая система не будет являться системой валидации до тех пор, пока она не сможет обнаруживать все ошибки.
Документ, соответствующий международному стандарту, должен удовлетворять следующим требованиям:
html;Другими словами, документ должен иметь следующую структуру:
html;В терминах SGML, символы пробела включают в себя символы RS (record start [начало записи]), RE (record end [окончание записи]), SEPCHAR (tab) и SPACE (пробел, непосредственно). Также, символы пробела включают в себя комментарии ISO-HTML. Термин «символы пробела» может быть несколько неочевиден применимо к комментариям, но в данном случае символы пробела (или наборы символов) трактуются как символы, не несущие никакой смысловой или структурной нагрузки в документе.
Проще говоря, нас следует записать декларацию типа документа и единственный элемент html, которые могут быть обособлены с любой стороны (сверху или снизу) любым количеством пробелом и/или комментариями.
Система может называться системой валидации, если она:
Международный стандарт не указывает, как следует системе валидации оповещать об ошибках: данное решение остаётся полностью на совести разработчика подобной системы.
Примечание: для обнаружения ошибок в документах ISO-HTML порой бывает недостаточно обычного SGML-парсера. Обработка SGML-парсером является лишь первым шагом на пути валидации документа и необходимо проводить дополнительные проверки.
В соответствии с требованиями ISO-HTML, системы валидации должны отображать текст, который чётко идентифицирует их как системы валидации. Его следует помещать в презентациях, обучающих системах, печатных изданиях и на других материалах.
Идентифицирующий систему валидацию текст: HTML validating system conforming to International Standard ISO/IEC 15445 — HyperText Markup Language, and International Standard ISO 8879 — Standard Generalized Markup Language (SGML).
Примечание: права на текст идентификации принадлежат ISO/IEC, но его можно использовать без указания обратной ссылки на ISO/IEC.
Ни ISO, ни IEC не предоставляют никаких услуг сертификации, не поставляют иконок-маркеров для идентификации систем валидации или систем соответствия. Использование иконок-маркеров ISO и IEC запрещено без разрешения соответствующей организации.
Система соответствия — это такая система, которая способна обрабатывать все документы, удовлетворяющие требованиям данного стандарта.
Данный международный стандарт специально не говорит о методах обработки несоответствующих документов. Основная надежда на то, что разработчики высококачественных Web-приложений будут проводить валидацию созданных документов перед их публикацией, а браузеры (или иные UA) будут их обрабатывать как документы, соответствующие стандарту.
Тем не менее, благоразумно со стороны разработчика системы соответствия было бы подстраховываться на случай обработки поломанных (несоответствующих, неправильных, нарушенных) документов. Не следует никогда пренебрегать безопасностью пользователя.
Документирование систем соответствия, во многом, не отличается от документирования систем валидации. Единственное различие заключается в тексте идентификации подобных систем: An HTML system conforming to International Standard ISO/IEC 15445—HyperText Markup Language.
В документации не следует подразумевать, что систему соответствия можно использовать для валидации HTML-документов.
Декларация SGML, предоставляемая данным международным стандартом, призывает использовать UCS (ISO/IEC 10646).
Следующие определения принимаются при работе с международным стандартом:
href, расположенная после символа # (RFC 1866).Примечание: все определения SGML применимы также и к ISO-HTML.
Помимо этого, следует разграничивать тип элемента и непосредственно элемент, который является экземпляром определённого типа элемента (по аналогии с классами и экземплярами классов).
Следующий список сокращений используется на протяжении всего руководства:
Данный международный стандарт был создан для удовлетворения следующих требований:
id вместо атрибута name).font).За основу для определения элементов данным стандартом взята коллекция типов элементов рекомендации W3C HTML 4.01. Все элементы, которые считаются нестабильными, либо элементы, которые не удовлетворяют требованиям стандарта, должны быть исключены из коллекции типов элементов.
Все элементы, которые не попали в нижеследующий список, не входят в ISO-HTML.
Ниже описаны типы элементов и их семантика, определённые (нормативно) в рекомендации W3C.
abbr — аббревиатура;acronym — акроним;b — полужирный стиль текста;bdo — мультинаправленный текст;br — перевод строки;caption — заголовок таблицы;cite — цитата (указание источника);code — программный код;dd — содержание определения;del — удалённое содержимое;dfn — определение (экземпляр);div — разделение документа (блок);dl — список определений;dt — заголовок определения;em — смысловое выделение;fieldset — група элементов формы;form — форма;hr — горизонтальный разделитель;i — курсивный стиль текста;ins — добавленное содержимое;kbd — ввод с клавиатуры;legend — метка группы элементов формы;li — элемент списка;meta — метаинформация документа;ol — сортированный список;optgroup — группа элементов списка пользовательского ввода;option — элемент списка пользовательского ввода;p — параграф;param — параметр встраиваемых объектов;pre — предформатированный текст;samp — примера вывода чего-либо;select — список пользовательского ввода;span — контейнер общего назначения;strong — сильное смысловое выделение;sub — подстрочный текст;sup — надстрочный текст;textarea — область пользовательского ввода;tfoot — подвал таблицы;thead — заголовок таблицы;thead — заголовок таблицы;title — заголовок документа;tt — моноширный стиль текста;ul — несортированный список;var — переменная.Если вас смущает количество элементов, то стоит напомнить, что это список элементов, принятых из рекомендации в данное руководство. Остальные элементы (в списке ниже) прошли определённую адаптацию
Ниже представлен список элементов, принятых и адаптированных данным руководством.
a — ссылки источника и цели;address — адрес автора;area — регион карты изображения;blockquote — цитата;body — тело документа;button — механизм ввода;col — свойства колонки таблицы;colgroup — свойства группы колонок таблицы;head — заголовок документа;html — определение экземпляра документа ;h1 — заголовок основной части документа;h2 — заголовок раздела;h3 — заголовок подраздела;h4 — заголовок подподраздела;h5 — заголовок небольшого подраздела;h6 — заголовок наименьшего подраздела;img — изображение;input — поле для пользовательского ввода;label — метка поля формы;link — взаимоотношения документов ;map — карта изображений на стороне клиента ;object — простой агент (посредник) для внедрения ;q — цитата;style — спецификация стиля ;table — таблица;tbody — тело таблицы;td — ячейка таблицы;th — головная ячейка таблицы ;tr — строка таблицы.Рекомендация W3C HTML 4.01 определяет некоторое количество атрибутов, которые не попали в данное руководство: они используются для описания стилевого представления, нежели структуры. Другая возможная причина исключения — нестабильность или отсутствие интереса со стороны разработчиков (редко используемые атрибуты).
align — исключён со всех элементов;alink — исключён со всех элементов;alt — исключён с элемента input;archive — исключён с элемента object;background — исключён с элемента body;bgcolor — исключён со всех элементов;border — исключён со всех элементов;cellpadding — исключён с элемента table;cellspacing — исключён с элемента table;char — исключён со всех элементов;charoff — исключён со всех элементов;clear — исключён с элемента br;compact — исключён со всех элементов;coords — исключён с элемента a;height — исключён со всех элементов;hspace — исключён со всех элементов;link — исключён с элемента body;name — исключён с элементов form и img;noshade — исключён с элемента hr;nowrap — исключён с элемента td;rules — исключён с элемента table;shape — исключён с элемента a;size — исключён с элемента hr;src — исключён с элемента input;start — исключён с элемента ol;style — исключён со всех элементов;target — исключён со всех элементов;text — исключён с элемента body;type — исключён с элементов li, ol и ul;usemap — исключён с элемента input;valign — исключён со всех элементов;value — исключён с элемента li;version — исключён с элемента html;vlink — исключён со всех элементов;vscape — исключён со всех элементов;vwidth — исключён со всех элементов.Помимо этого, руководство считает нецелосообразным использовать встроенные в структуру документа действия, поэтому исключаются все атрибуты, через которые можно определять действия на скриптовых языках:
onblur;onchange;onclick;ondblclick;onfocus;onkeydown;onkeypress;onkeyup;onload;onmousedown;onmousemove;onmouseout;onmouseover;onmouseup;onreset;onselect;onsubmit;onunload.