Теперь, когда XHTML 2 перестал маячить на горизонте, какой синтаксис выбрать? Остаться на XHTML 1.0, или двинуться вперед на HTML 5? А может, вернуться к старому доброму HTML 4? Этот комикс немного все проясняет.
* не ром, и не баба — в оригинале «as ham is to hamster», поэтому он держит кусок мяса рядом с хомячком.
* Скажите спасибо принципу «по натоптанной тропинке» — в оригинале принцип называется «pave the cowpath».
«лишний раз напрячся» знаете если бы следовали по вашей логике, то интернэт сейчас был где-то на 2-3 млн. хостов. Разметка доступная даже домохозяйке, вот почему вэб стал таким успешным. А как обработать даные это задача разработчиков инструментов и компютеров.
предпочту более строгий формат, который не дает мне расслабится и сделать херню.
А нет такого формата :). У XHTML свои слабости — например, он позволяет сделать таблицу без tbody (чего не позволяет даже HTML:). Не говоря о том, что оба позволяют нагородить прорву вложенных таблиц с несемантичными id-ами и тому подобного ужаса.
В HTML5 как раз делается попытка отслеживать семантику на уровне conformance checker-а (напр., приоритет новых структурных элементов типа section и nav над безликими div-ами), посмотрим, насколько получится…
html позволяет таблицы без tbody. четвертый во всяком случае.
HTML4 позволяет не писать в коде tbody явно, но при парсинге оно все равно встраивалось (и встраивается) на свое законное место :). В XHTML (при XML-парсинге) оно опционально и в DOM, поэтому никогда не знаешь, как достучаться до таблицы из ее ячейки — как this.parentNode.parentNode или this.parentNode.parentNode.parentNode.
когда в принципе можно ограничится div'ами span'ами ссылками объектами и набором тегов для форм, а все остальное вынести в css.
Нельзя так делать (хотя текущие стандарты позволяют) — это будет ад для поисковиков (и рай для нечистоплотных сеошников;). Зря, что ли, умные люди за семантическую разметку борются?
потому, что хрен угадаешь, что очередной «домохозяйка» решил опустить в разметке.
Вот этого точно не будет, т.к. вне зависимости от того, что он хотел получить — получит он только то, что для этого случая прописано (да, захардкодано) в стандарте :)
Дело не в «доступности домохозяйкам» (это миф — ни одна домохозяйка не заглядывает в спеку;), а в устойчивости даже к домохозяйкам :). Как бы не издевался горе-кодер/редактор/секретарша над разметкой, по незнанию или по злому умыслу — на выходе браузер всегда сможет построить и отобразить более-менее вменяемую DOM-структуру. А с переходом на HTML5 — еще и однозначную DOM-структуру.
В любом случае не должен напрягаться пользователь. Если страница оказалась невеллформной — ему все равно, кто в этом виноват: горе-верстальщик, недогрузившийся сторонний скрипт (счетчик, к примеру), шальной китайский символ в чьем-то комменте, про который не подумал автор CMS, файрволл типа Аутпоста, вырезавший рекламный баннер «с мясом», или что-то четвертое. Юзер-то в этом по-любому не виноват! Почему же браузер должен делать крайним и непонятно за что наказывать именно его?
А непредсказуемости как раз больше не будет. Все ошибки станут однозначными и единообразными (не сразу, конечно, но к 2022-му — уж точно:). Да, мне нравится подход HTML5 :)
Ни в жисть. Пользователи лишь перешли бы на другие браузеры, которые не наказывают их за чужие грехи — и все пришло бы к тому же, что мы имеем сейчас. При самых лучших намерениях всех сторон…
Нет, аргумент скорее такой: «Вечный двигатель, конечно, штука хорошая — в теории, но вот его разработчики совсем забыли про трение… поэтому на практике будем совершенствовать проверенные и заведомо работающие ДВС» :)
Кстати, HTML5 сложнее, чем XML (хотя бы потому, что прекрасно может выражаться в том числе и его средствами — что, кстати, вскользь отмечено в комиксе;).
Потому что «не дать пользователю/файрволлу/НЛО/всем-всем-всем скриптам/всем-всем-всем ЦМСкам… и т.п. писать херню» — невозможно. Физически. Тем более на уровне браузера. Принудительный переход на XML-синтаксис и XML-парсинг был неплохой попыткой, но именно его неудачный опыт стал показателем.
А вот научить браузер однозначно и предсказуемо обрабатывать нештатные ситуации — да, аццки трудно (у WHATWGшников на это ушло больше 5 лет), но все-таки возможно.
1) аттрибуты и тэги в кавычках
2) значения аттрибутов в кавычках
Дальше до конца текста «атрибуты», все хорошо
Скорее посмотрите, что это он делает? Нравится.
3) если мне нравиться тайская кухня
4) HTML5 позволяет использовать любой синтаксис, который вам нравиться
5) мне нравиться синтаксис XHTML
Комикс неплохо нарисован, но чистым текстом то же самое было бы понять проще и быстрее. Единственный логичный мотив создания комикса — чтобы информация поступала медленнее для лучшего восприятия. Бррр…
Увы, там написано что большая часть откладывается в долгий ящик и перспективы неизвестны. Больше всего жаль именно xForms, который уже реализован в IE и FF хотя бы на уровне плагинов.
Минуточку, а кто обижает xForms? Ими занимается отдельная рабочая группа, не связанная с XHTML2, об их закрытии никто ничего вроде бы не говорил, работа там ведется активная (последняя новость — июнь этого года, запрос на перевод xForms 1.1 из CR в PR, что само по себе — признак неплохого состояния дел там). Опять же, разве кто-то мешает/запрещает интегрировать xForms c ныне здравствующим XHTML 1.1 и будущим XHTML5?
даже если вдруг, как-то, когда-то, кем-то будет внедрена поддержка xForms и RDF это будет не мейнстрим как в xHTML2, а периферия. Но даже этого не будет. Будет как с поддержкой XSLT. MS будет поддерживать необязательные в рамках XML-расширения, а Опера гнаться за очередным Acid.
Так любой XML в качестве базовой веб-разметки — уже давно «не мейнстрим, а периферия». Суровый факт. Что, впрочем, не мешает с успехом использовать его там, где это действительно нужно и выгодно. Не говоря уже об экспериментальных решениях, где простор для фантазии ничуть не сузился.
Ну а сам XHTML2 на мейнстрим никогда особо и не претендовал (в отличие от XHTML 1.x), а последние 2-3 года он и вовсе был даже не периферией, а очевидным тупиком (практически ноль развития, демонстративное отсутствие поддержки со стороны разработчиков браузеров и т.п.).
А причем здесь доктайп? Браузеру, чтоб воспринимать ее как XML, этого недостаточно. Посмотреть, как эта страница поведет себя в виде настоящего XHTML, можно вот так.
Так-так-так! Значит, в HTML5 можно будет и так и сяк и этак?
И, мол, нравится мне кавычки — пишу кавычки, нравится регистр — пишу в каком хочу?
Спасибо за такую свободу! Но ведь какая проблема для парсеров! Я пишу так, а другой — совершенно подругому. Никакого строгого синтаксиса. Сложнее парсить.
Фокус в том, что правила парсинга — в т.ч. для явно ошибочных случаев, типа доктайпа посреди текста — четко прописаны в самом стандарте в виде однозначного дерева выбора. Собственно, именно в этом главное отличие HTML5 от др. стандартов, а не в дополнительных тегах и коротком доктайпе. И полное текстовое описание этих правил укладывается в 370 кБ, соответственно, программа, реализующая их, явно будет в разы меньше (вполне сопоставимо с парсером XML). Все проблемы уже решены — знай себе кодируй! :)
Интересно почему присутствие слешей, полные атрибуты и т.д. до сих пор так плотно ассоциируются только с xhtml? html позволяет писать коряво, но не заставляет. И вообще в рекомендации есть пункты о том что все правила xhtml можно и нужно использовать в самом html.
Как это упущен? Именно это, по сути, и сделано в HTML5! Два равноправных синтаксиса сериализации, XPath-запросы для HTML DOM и внедрение SVG/MathML в HTML-документы, роли элементов и микроданные… чего еще не хватает для счастья?
Дизайнеры уже давно не имеют отношения к разметке, «борьба дизайнеров с программистами» сейчас идет на поле CSS. Пока, по моим ощущениям, счет где-то примерно равный… :)
Разве HTML5 является валидным XML-документом? Каюсь, детально стандарт ещё не изучал, но именно это считаю самым важным. В случае XML ИМХО проще и создавать документы, и парсить, и добавлять новые расширения. А «прошитые» XPath-DOM и прочие добавки — это хорошо, но не так гибко.
У HTML5 есть вариант сериализации в виде веллформного XML (т.н. «XHTML5»), соответственно, любые расширения, внедрение сторонних неймспейсов и прочие XML-ные радости там доступны. Вот только браузеры (особенно самый распространенный, как обычно)...
Само собой опциональная XML-совместимость имеет место быть, но лучше бы обязательная. Ещё неплохо бы принудительно перевести всех юникод, но это я уже совсем размечтался. :)
Там не «опциональная совместимость» (а-ля XHTML1.x→HTML), а четкое и однозначное разделение по типу контента. Берешь text/html — забываешь про XML, берешь application/xhtml+xml — добро пожаловать в мир неограниченной расширяемости с обязательной веллформностью (иначе XML-парсер просто не поймет). В принципе, браузеры (кроме IE) сейчас так и работают.
комментарии (77)
А нет такого формата :). У XHTML свои слабости — например, он позволяет сделать таблицу без
tbody(чего не позволяет даже HTML:). Не говоря о том, что оба позволяют нагородить прорву вложенных таблиц с несемантичными id-ами и тому подобного ужаса.В HTML5 как раз делается попытка отслеживать семантику на уровне conformance checker-а (напр., приоритет новых структурных элементов типа section и nav над безликими div-ами), посмотрим, насколько получится…
tbodyявно, но при парсинге оно все равно встраивалось (и встраивается) на свое законное место :). В XHTML (при XML-парсинге) оно опционально и в DOM, поэтому никогда не знаешь, как достучаться до таблицы из ее ячейки — какthis.parentNode.parentNodeилиthis.parentNode.parentNode.parentNode.Нельзя так делать (хотя текущие стандарты позволяют) — это будет ад для поисковиков (и рай для нечистоплотных сеошников;). Зря, что ли, умные люди за семантическую разметку борются?
Вот этого точно не будет, т.к. вне зависимости от того, что он хотел получить — получит он только то, что для этого случая прописано (да, захардкодано) в стандарте :)
А непредсказуемости как раз больше не будет. Все ошибки станут однозначными и единообразными (не сразу, конечно, но к 2022-му — уж точно:). Да, мне нравится подход HTML5 :)
Кстати, HTML5 сложнее, чем XML (хотя бы потому, что прекрасно может выражаться в том числе и его средствами — что, кстати, вскользь отмечено в комиксе;).
Кстати, с точки зрения SGML (по правилам которого теоретически должен был парситься HTML4), слеши в одиночных тегах — вполне себе говнокод ;)
А вот научить браузер однозначно и предсказуемо обрабатывать нештатные ситуации — да, аццки трудно (у WHATWGшников на это ушло больше 5 лет), но все-таки возможно.
«что спецификация XTHML 2…»
трибуты и тэги в кавычках2) значения ат
трибутов в кавычкахДальше до конца текста «атрибуты», все хорошо
Скорее посмотрите, что это он делает? Нравится.
3) если мне нравит
ься тайская кухня4) HTML5 позволяет использовать любой синтаксис, который вам нравит
ься5) мне нравит
ься синтаксис XHTMLНапример, таким, как я.
«Как морская свинка — и не морская и не свинка»
Новый блокбастер от W3C — холливар xhtml 2 vs. HTML 5… ах курто!?
Ваш вариант мне нравится больше :-)
Ну а сам XHTML2 на мейнстрим никогда особо и не претендовал (в отличие от XHTML 1.x), а последние 2-3 года он и вовсе был даже не периферией, а очевидным тупиком (практически ноль развития, демонстративное отсутствие поддержки со стороны разработчиков браузеров и т.п.).
Особенно задбавно это читать на странице с xHTML DOCTYPE :)
Полная локализация :-)
И, мол, нравится мне кавычки — пишу кавычки, нравится регистр — пишу в каком хочу?
Спасибо за такую свободу! Но ведь какая проблема для парсеров! Я пишу так, а другой — совершенно подругому. Никакого строгого синтаксиса. Сложнее парсить.
Дизайнеры уже давно не имеют отношения к разметке, «борьба дизайнеров с программистами» сейчас идет на поле CSS. Пока, по моим ощущениям, счет где-то примерно равный… :)
text/html— забываешь про XML, берешьapplication/xhtml+xml— добро пожаловать в мир неограниченной расширяемости с обязательной веллформностью (иначе XML-парсер просто не поймет). В принципе, браузеры (кроме IE) сейчас так и работают.По-моему, за Comic Sans уже пора тупо убивать.