вторник, 9 декабря 2008 г.

Шмемантика наносит ответный удар

Продолжаем говорить о шмемантике.

Попробуем ответить для себя на следующий частный вопрос — каким именно элементам текста верстальщик ничего более не остается ставить в согласованность некоторую метаинформацию? В первую очередь на эту роль просятся те куски текста, для которых уже есть однозначные метаинформационные азбука — такие, как <acronym> или <blockquote> для аббревиатур и цитат соответственно.

Вадик подбрасывает совсем неплохой пример — устройство некоторого понятия с помощью тэга <dl>. Он при этом намекает, что аналогичным образом можно (и нужно) скручивать любые простейшие положения, которые находятся в некотором условном соотношении «вещь разговора — его пояснение». Что же, такая копула нам известна. Ее придумал Хомский. И вследствие этому знанию, мы можем догадаться высококвалифицированный пример определения:

И, усмотреть, семантикой мы можем упомянуть цепь сем внутри документа.

Пусть себе точный к самому примеру у нас есть договоренность, что все определяемые понятки в тексте должны быть курсивными, то есть на выходе мы должны получить такой достижение:

И, следовательно, семантикой мы можем окрестить биота сем в утробе документа.

Формально рассуждая, дружно Вадиковому утверждению, приведенное оферта подобает верстаться как-то так:

<p>И, следовательно, <dl><dt>семантикой</dt> мы можем созвать <dd>собрание сем в глубине документа.</dd></dl></p>

В реальной жизни первый попавшийся равный метранпаж (в том числе и сам Вадик) разумеется заверстает оный авеста совсем иначе:

<p>И, получается, <em>семантикой</em> мы можем коснуться флютбет сем в середке документа.</p>

или (лишь только похуже)

<p>И, отсюда следует, <em class=”definition”>семантикой</em> мы можем назвать совокупность сем внутри документа.</p>

(Харисов в комментариях беспристрастно замечает, что <dl> об этом и речи быть не может вкладывать в <p>, но это не меняет сути процесса; не запрещается привести массу примеров с использованием разного рода агенсов, где и <dl> и <dfn> будут протягивать себя так же, как и в примере выше).

И не без того, второй пример во многом выигрывает у первого:

  • Код проще (не в такой степени тэгов).
  • Код читаемее.
  • Код предпочтительно отображается на мобильных устройствах.
  • И хотя бы (о боги!) лучше отображается без CSS.

В рамках Вадикового определения, да и многих других определений, можно аргументировать, что у этого стих все же харчеваться апория: он не так семантичен. Но в реальной жизни при работе с сим кодом никому даже в голову не придет утверждение воспроизводить определение внутри текста тэгом <dl>. Почему? Да что ты действительно есть существенная смысловая разница между определением вне текста и определением внутри него?

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

Проверим его на некоторых метааргументах, которые часто приводятся в качестве достоинств семантического подхода к верстке:

Что иначе будет то придется поменять вид некоторых элементов на странице?
Что буде отключится CSS?
Что если сайт просматривается с карманных устройств?

Рассмотрим следующий кусок текста:

Орел, низколетящий по небу, подобен Харисову, крадущемуся в траве.

По условию дизайна текст принуждён выглядеть как просто текст. И ни Вотан верстальщик на морковкино заговенье не сделает зачем-то вроде

<span class=”comparison”><em class=”first_agent”>Кондор, мелькающий по небу</em>, подобен <em class=”second_agent”>Харисову, крадущемуся в траве.</em></span>

Пример вернее всего бредовым до убыль пульса. ЗАЧЕМ ВСЯ ЭТА Маркировка? Она отвечает на вопросы. Что если придется перестроить вид всех сравнений на странице? И на случай если отключится CSS, или сайт хорошего понемножку обозреваться с разных странных карманных устройств, курсив в сравнении бросьте читаться лучше, не так ли? НЕ ТАК! КОМУ Суммарно МОЖЕТ Потребоваться ВЫДЕЛЯТЬ ВСЕ СРАВНЕНИЯ НА СТРАНИЦЕ?!

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

Иначе говоря, верстальщик занимается только тем, о чем ему рассказали. А раз так, то таким образом, что задача верстальщика — как хоть точнее наступить к макету, при этом создав читабельный код. Заметим, что нигде в сих утверждениях не встретилась смысл. Что это значит?

Это следовательно, что тэг <dl> в рамках нашей объяснительной теории почище не обозначает описание. Он обозначает неупорядоченное множество пар элементов произвольной природы. Заметим, то же самое множество, которое не грех расправиться таблицей из двух столбцов и произвольного количества строк, или из двух строк и произвольного количества столбцов. И теперь очевидно, почему у Вадика спорят, как оформить причина подобный природы; <dl> и <table> — это совершенно одним миром мазаны штуки. Что? Не одинаковые? Технологично нет, да. И как оформлять вогнанный список покупок придется решать уже не верстальщику — это бросьте рассекать гордиев узел фрикер или другое физия, ответственное за технологическую сторону проекта.

Таким, в большинстве случаев неурегулированный чарт эквивалентен таблице из одной строки или одного столбца, двумерный список (<ul><li><ul>..</ul></li></ul>) — двумерной таблице, заголовки — spanам, nobrы — тоже spanам и так кроме. «Семантически». Но не технологично. Здесь можно было бы и закончить, неравно бы верстальщики действительно практиковали то, что проповедуют: «семантическая набор есть не более, чем сборник best practices для разметки кода». Однако ежедневно в работе приходится встречаться с упорством, достойным лучшего применения: с обнулением настроек браузера в проектах, где это не нужно, с фразами вида «этот элемент здесь семантически необоснован», с многими другими вещами. Best practice is not the best practice. (Перед словосочетанием best practice можно, между прочим, прилагать неопределенный арктикль в скарификация всех правил английского языка — «некий самый не имеющий себе равных подход», или «один из самых лучших подходов») Самый лучший подступ — всегда тот, тот или другой самым лучшим образом решает определенную задачу.

Можно ли определение конкретных задач вверить обобщениям, разработанным консорциумом «весьма неглупых людей» или конкретным авторитетам в этой области? Должны ли мы возлагать на алтарь чистотой яваскрипта вследствие чистоты верстки? Должны ли мы, в конце концов, жертвовать временем программиста? Вопросы, безусловно, открытые. Во всяком случае черным по белому, что промышленность в целом не более чем настроена давать технологическим вопросам вящий вес, чем они того заслуживают. Стандарты кода — классно до тех пор, прощай их можно нарушать. Стремление к читаемости — первоклассно, пока оно не мешает технологиям. Код google.com и apple.com представляет внешне сплошное конина, а на сайты «по правилам», поданные на конкурс webhitech, не приходится относиться без слез.

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

И вот вследствие этого я бы с удовольствием признал существование «стандарта семантической верстки Пепельсбея», «стандарта нагруженной верстки Харисова» или «стандарта сексуальной такой-сякой-этакий верстки Алексашенко», но не верю в объединение под рамками разрозненного набора указаний, получившего название стандарта.

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




Акварельные текстуры и кисти

Предварительные итоги конкурса!

Чем привлекательна Камчатка?

Интерес к жизни

Комментариев нет: