» Форма входа

»Мoy-weB ver.4.1

» Статистика

Главная » 2008 » Август » 28 » Semantic web. Заметка о логичной и нелогичной верстке

Semantic web. Заметка о логичной и нелогичной верстке
28.Авг.2008 | 14:49:25
Semantic web. Заметка о логичной и нелогичной верстке

В прошлых материалах мы рассматривали общие вопросы разработки веб-сайтов
- планирование веб-сайта, анализ целей и задач, разработка
информационной архитектуры веб-проекта, базовые навигационные элементы
и т.д. А сейчас - тема для веб-разработчиков, дизайнеров,
верстальщиков, всех, кто создает веб-страницы, веб-сайты - для себя,
для пользователей, для заказчиков ли, для поисковых машин... Небольшая
заметка о логичной и нелогичной верстке.


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


В irc канале webmascom (интересующимся – искать на
irc.ircinfo.ru) один из участников дискуссии озвучил следующую
информацию: "нет большого смысла ждать от браузеров корректной
реализации display: table;, поскольку нет смысла в его
использовании". Имелось ввиду, что для вывода табличных данных должно
использовать стандартный html-тег table, и, с другой стороны,
использовать для визуального дизайна, в частности, к примеру, для
злополучной 3-колоночной верстки display: table – это тот
же самый возврат к табличной верстке (имитации табличной верстки), т.е.
- неправильно с точки зрения семантики web, типа - "назвали таблицы
дивами и радуемся".


Тогда и стал вопрос по поводу того, что же такое "семантика в web". Тем же участником дискуссии было предложено официальное такое определение: "(от греч . semantikos - обозначающий):


  1. значения единиц языка.
  2. То же, что семасиология, раздел языкознания, изучающий значение единиц языка, прежде всего слов.
  3. Один из основных разделов семиотики."

О как! Не то, чтобы не понятно, но хотелось услышать более...
близкое к css определение. Попыталась сформулировать нечто следующее
(просто поток сознания):


"Я так понимаю, что если не путаться в терминах (семасиология, семиотика) - то, к примеру, если я закрою глаза и прослушаю
открытую страницу, озвученная информация будет достоверной. Так? Т.е.
если мне браузер говорит: Таблица, а в ней - заголовок (в th)
- Прайс - то дальше будут табличные данные - название, цена... Описания
стилей или назначенные id/class в этом случае браузер мне надиктовывать
не будет. Вот. Т.е. если он дойдет до дива, в котором назначен display:table, он прочтет только содержимое этого дива, но диктовать мне табличную структуру не будет, так? Тогда где нарушение семантики?"

Что же касается злополучного вопроса о трехколоночном футере, стабильном и кроссбраузерном, без использования display: table; - было предложено использовать метод "отрицательных полей" (по статье на вебмасконе http://webmascon.com/topics/coding/43a.asp).
Однако. Отрицательные поля - такой же обман браузера, как и в случае
использования стилевых свойств типа display:table! Поэтому - выбор
между двумя нарушениями логики - типа по вкусу как мне кажется.


В рамках семантических реализаций был супер главным оператором
канала озвучен вывод урока: "сегодняшний урок: не важно, что мы там
напишем в CSS, главное, чтоб ul был списком" (в первоначальной реализации звучало так: "сегодняшний урок: не важно, что мы там напишем в CSS, главное, чтоб ul
выглядел как список", что не соответствует тем требованиям, которые
предъявляются к семантической разметке – она не должна выглядеть, она
должна быть – ее можно озвучить словом, словами).


Semantic Web - это вообще интереснейший проект, продвигаемый директором w3c.org, одним из основателей Web, и более внятно и подробно (определение, цели и задачи, плюсы и минусы) лучше прочесть на официальном портале семантической паутины на сайте консорциума или же в русскоязычной википедии. Однако
великое и прекрасное будущее сети, видимо, еще достаточно далеко от
нынешних разработчиков. Давайте немного поговорим об основах -
стандартном html.


По определению HTML — Hypertext Markup Language
(Язык Разметки Гипертекста) - это язык, предназначенный для описания
форматирования текста, задания ссылок и других элементов веб-страниц. В
нём используются стан­дар­ти­зи­ро­ван­ные "тэги", такие как <HEAD> и <BODY>,
смысл и способ интерпретации которых задан универсально
WWW-Консорциумом. К сожалению, современные разработчики, зачастую, не
стремятся к изучению и соблюдению стандартов (не забывая при этом
обижаться и злобить на разработчиков браузеров, которые так же не в
полной мере те же стандарты блюдут, что, мол, "кривой браузер неверно
отображает мою страницу", и старая больная тема - сделать
кроссбраузерный, не разваливающийся и не расползающийся сайт). Более
того, некоторые, довольно матерые интернетчики демонстративно
игнорируют осовные требования к разметке страницы, намеренно рекомендуя
новичкам "не возиться" с правильным, но трудно форматируемым
документом, "не морочиться" с изучением документации, а сделать "как
все" - поскольку главное - чтобы документ отображался в сегодняшних
браузерах прилично, а начинающий дизайнер при этом - не переутомился,
побыстрее сдал проект и забыл как о заказчике сайта, так и о его
пользователях.


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


Код был примерно следующим: в блоке (div с длинным и сложным описанием стиля) располагался тег параграфа P, внутри которого - картинка, т.е. примерно следующее:




<div id="Layer8" style="position:absolute; left:161px; top:-410px; width:141px; height:598px; z-index:1;">

<p align="left"><img src="images/shvarz.jpg" width="138" height="600"></p>

</div>


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


Однако что говорит консорциум о правильном использовании тега параграфа?


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




...

<img src="images/shvarz.jpg" width="138" height="600"><br>

...


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


И вот ведь странно... я не являюсь фанатом css и блочной верстки, и
настаивать на какой-то конкретной модели не буду - да верстайте как
хотите, однако странно - даже если не говорить о semantic web, зачем же
рекомендовать начинающему разработчику использовать лишние теги для
верстки параграфы/таблицы, усугубляя изрядным стилевым описанием, когда
достаточно сделать по стандарту, (как в приведенном выше примере -
добавить перенос строки после иллюстрации)? Решение, которое является
избыточным, не может быть правильным.


Действительно, решение вставить картинку в тег параграфа не
противоречит логике разметки, когда картинка является иллюстрацией к
тексту параграфа. Однако противоречие наблюдается, когда в параграф
включают картинки "элементов дизайна" интерфейса страницы. А теперь
воспользуемся приведенным в начале заметки методом анализа
семантической верности разметки и попробуем прочесть то самое
неправильное решение smile голосовым, к примеру, браузером, для ленивых
или плохо видящих, к примеру, пользователей: "а сейчас будет новый
параграф текста: оп-па, картинка для оформления страницы; а сейчас -
следующий параграф: оп-па, еще одна картинка для оформления страницы".
И как? логично?

Категория: Статьй и уроки | Просмотров: 510 | Добавил: CorsaR
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]