HTML-стандарт однозначно определяет основную структуру Web-документа. Язык HTML является подмножеством языка описания документов SGML (Structured Generalized Markup Language), таким образом, html-документ — это текстовый документ, состоящий из html-кодов и основного текста документа. Для просмотра этого документа необходим WEB-браузер — специальная программа для интерпретации и корректного отображения страницы на экране.

Что такое стандарт HTML?


* HTML был первоначально разработан Tim Berners-Lee и популяризован браузером Mosaic, разработанным NCSA. В течение 90х гг. он буквально расцвёл в связи с бурным развитием Web. Было время, когда веб-разработчики вынуждены были использовать html-стандарт 2.0 (был разработан под эгидой Internet Engineering Task Force (IETF) для упорядочения общепринятых положений в конце 1994 года), который поддерживал только форматирование текста и встраивание простой графики.
* В 1995 году были опубликованы некоторые предложения по расширенному стандарту HTML 3.0, которые стали использоваться как неофициальные HTML-рекомендации, воплотившиеся в различных браузерах.
* В мае 1996 года появился стандарт версии 3.2. За стандарт несет ответственность организация — WWW-Консорциум (W3C - world wide web consortium), она представляет собой объединение представителей промышленности и науки.
* 18 декабря 1997 года вышел первый релиз W3C спецификации на HTML 4.0. Второй выпуск (24 апреля 1998 года) содержал некоторые редакторские корректировки.
* 24 Декабря 1999 года вышел стандарт HTML 4.01 — исправлены некоторые ошибки предыдущего стандарта – 4.0
* Наличие стандарта предполагает необходимость в специальной программе (собственно VALIDATOR), которая проверяет наличие в HTML-документе нарушение спецификаций, согласно которой составлен документ, если эти нарушения там действительно есть.

Что такое Валидатор?
определение:
Validator: a conforming SGML parser that can find and report a reportable markup error if (and only if) one exists.
Валидатор: анализатор соответствия стандарту SGML, который находит и сообщает о подлежащей отчету ошибке разметки, если (и только если) она существует.

ISO 8896, параграф 15.4.

Таким образом HTML-система является валидирующей HTML-системой, если
1) она является валидирующим SGML-анализатором согласно ISO 8879, п.15.4;
2) она способна обрабатывать любой согласующийся с HTML документ;
3) она находит и сообщает об ошибке в HTML, если она существует;
4) она не сообщает об ошибке в HTML, если она не существует.

ISO/IEC 15445:2000/DCOR 1:2001(E), параграф 2.2.

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

Два самых распространённых браузера для Windows отображают страницы примерно одинаково, отличаясь лишь в таких деталях, как поля и отступы. Браузеры для Macintosh или *никсов обычно отличаются от этих двух более глобально. Очевидная выгода наличия стандарта в том, что проконтролировать одну спецификацию значительно легче, чем многие браузеры.
цитата:
«...Для людей с проблемами зрения HTML предоставляет многообещающие возможности уравнять их в правах с обычными людьми при использовании базового графического пользовательского интерфейса Windows. Табличная модель HTML включает атрибуты для пометки каждой ячейки, чтобы поддержать высококачественный текст для речевого интерфейса. Эти же атрибуты могут использоваться при поддержке автоматизированного импорта и экспорта данных таблиц в базы данных или электронные таблицы...»

Многие разработчики (преимущественно начинающие веб-дизайнеры) могут не согласиться с необходимостью соответствия кода спецификации: «Валидатор оставляет после себя тоскливые сайты, убивает творчество». Такое мнение возникает от простой лени. Корректный HTML-текст вполне допускает динамику, мультимедийные объекты, использование сценариев и т.д.; просто все эти эффекты можно сделать грамотно, а можно — неграмотно. Надо также помнить, что во всякой творческой области надо сначала изучить правила, а уже потом суметь превзойти их. Кроме того, даже опытные разработчики не застрахованы от ошибок, мы все можем допускать опечатки или забывать закрыть тег. Валидатор способен отследить подобные ошибки и явным образом указать место с некорректным форматированием.

Приведем конкретные примеры ошибок, которые определяются валидатором:
<P><I>ISO 8896, параграф 15.4.</P></I> — неправильно
(Error: start tag was here).
<P><I>ISO 8896, параграф 15.4.</I></P> — правильно.

<P><IMG SRC="гиф.gif" alt="аль"> вставлен текст</P> — неправильно
(Error: element "P" not allowed here; possible cause is an inline element containing a block-level element )
<IMG SRC="гиф.gif" alt="аль"><P> вставлен текст</P> - правильно.

Если вы пришли к тому, что вам необходимо проверить ваш код на соответствие спецификации, прочтите несколько советов:

Где взять валидатор?


Валидатор в форме веб-страницы предлагается на http://validator.w3.org. Он основывается на SP Кларка.

Есть также и валидатор на http://htmlhelp.com/ . Он тоже основывается на SP, хотя и немного изменённом. Авторами декларируется, что он более строг в оценке и объявляет потенциально опасные, хотя и допустимые места (скажем, незакрытый тег с необязательным закрытием). Предлагают исходники валидатора

Доступный подо все платформы бесплатный валидатор можно скачать с сайта Дж. Кларка (http://www.jclark.com/sp/). Вместе с парсером/валидатором в поставке прилагается потоковый нормализатор.

W3C раздаёт исходники валидатора на http://validator.w3.org/, но это, на самом деле, не валидатор. Это лишь адаптация кларковского валидатора к веб-интерфейсу, исполненная на перле. В описании этой адаптации недвусмысленно сказано, что следует иметь на машине кларковский валидатор. Еще ссылки:
· http://ugweb.cs.ualberta.ca/~gerald/validate/
· http://www.webtechs.com/html-val-svc/
· http://www2.imagiware.com/RxHTML/

Можно ли назвать валидатором инструмент из HomeSite – Validate Document?

Разработчики Allaire HomeSite объявляют, что что «…проверяющая программа выпускается ими под названием «валидатор» сугубо из коммерческих соображений…», и настоящий валидатор выпускаться ими не будет.

Программа, идущая в комплекте с HomeSite, нарушает определение валидатора: она находит и показывает ошибки, которые не были допущены, и не находит ошибок, которые были допущены.
Вот пример её неправильных действий:
а) <img src="/img/g1x1.gif" alt=""><img src="/img/g1x1.gif">
Реакция: нет реакции.
В действительности, здесь ошибка: не выставлен ALT второго IMG.
б) <br />
Реакция: ошибка.
В действительности, этот тег возможен в рамках XHTML.

Стремление к безупречности — первый признак профессионализма, и нет необходимости ориентироваться на популярные, однако далекие от совершенства html-кода порталы. Возможно, менеджеры подобных сайтов, проанализировав статистику посещений, выяснили, что 99% приходящих пользователей увидят все так, как предполагал дизайнер... Возможно, авторы сайта намеренно исключают из числа своих посетителей пользователей с ограниченными возможностями... однако следует помнить такие понятия, как гуманизм и требования закона. С появлением официального стандарта из-за нарушений спецификации есть опасность попасть в суд по обвинению в недоступности сайта для тех, кто не может использовать «обычный» браузер. Хотя в регионах стран бывшего СНГ законодательство довольно ограничено в этом отношении, в просвещённом мире вопрос решается лучше. Доступность понемногу приобретает силу закона. Валидатор не гарантирует доступности (потому что не может быть заменой здравого смысла), но помогает обеспечить должную меру поддержки всех пользователей.

Удачных сайтов и безупречного кода вам, уважаемые разработчики!

24.08.2007