1 апреля 2007 года этот пост был действительно сверстан на XHTML 2 и даже с грехом пополам работал в разных браузерах с разными глюками. Комментарии все это время принимались, но явно не показывались. Конечно, это была шутка, и Software Maniacs ни на какой XHTML не переходит :-).
XHTML2-вариант поста доступен для истории здесь. С Первым Апреля!
Перечитывал тут комментарии к своим статьям в категории XHTML и долго над ними размышлял. С одной стороны, конечно, и с поддержкой XHTML в браузерах не так все хорошо, как хотелось бы, и W3C, вроде, тоже уже не вкладывает в это направление свой вес... Но с другой стороны, если кто и "виноват" в этой ситуации, то это не W3C и уж точно не сам XHTML, а те, кто все это время только обещал, что XHTML когда-нибудь будет, но ничего для этого не делал. Если бы мы смелее стали таки использовать новые стандарты, глядишь и не сидели бы сейчас с необходимостью поддерживать HTML следующий десяток лет.
Короче говоря, я понял, что был неправ, и решил сделать шаг вперед: перевести softwaremaniacs.org на XHTML. Получилось это довольно легко, правда не на всем сайте. Подробности дальше...
Чтобы не томить вас ожиданием, призываю заглянуть в исходник той страницы, которую вы сейчас читаете (если вы читаете это в фид-ридере, то надо, разумеется, зайти на сайт :-) ).
Как видно (и как многие догадались из заголовка статьи), я выбрал именно XHTML 2. Причиной этому послужило то, что XHTML 1 все таки наследует от HTML слишком много старых кривых решений, в то время как XHTML 2 — это новый язык разметки с четкой идеологией.
В процессе перевода как раз изменение XHTML-кода было самым приятным:
- ссылки можно ставить с любого элемента, поэтому вместо странной конструкции
<li><a href="">
можно писать просто<li href="">
, вычистилась куча тегов<a>
- многие безликие
<div>
заменились на<section>
- уровень заголовков теперь задается не номерами (
<h1>
,<h2>
), а вложенностью элементов<section>
- вместо несемантически классов появились роли элементов (
role="main"
,role="navigation"
,role="contentinfo"
) - наконец-то вместо просто
<ul>
для навигации используется navigation list —<nl>
.
В итоге код выглядит гораздо логичней.
Не обошлось, правда, и без парочки ложек дегтя. Некоторые происходят из того, что XHTML 2 еще все таки в процессе разработки, а некоторые из-за того, что мой браузер (Firefox 2) не поддерживает некоторые элементы XHTML 2. Но я надеюсь, что в следующей версии с этим будет гораздо лучше. Ложки дегтя, в итоге, такие:
- Слегка увеличился код в заголовке страницы, хотя это копейки...
- Отчего-то отказался работать официальный CSS, рекомендуемый для XHTML2, пришлось позаимствовать его с одной странички
- Firefox не поддерживает активацию ссылок на XHTML2-элементах, поэтому с той же странички пришлось умыкнуть XBL-документ, который автоматически добавляет всем элементам с href ссылки, реализованные с помощью XLink (гениально!)
- Для XHTML2 еще не написан DTD, поэтому не получается проверить его на валидность.
- Из-за этого же пришлось вручную дописать прямо в страницу, что атрибуты "id" — это именно идентификаторы элементов, иначе в CSS не работает указание "#some_element".
- В CSS также заменил все ".classname" на более универсальный "[class~=classname]".
- Пришлось отказаться от скриптов — не заработали. Больше всего жалко подсветку синтаксиса :-(. Видимо, надо это будет на серверной стороне делать.
- Title страницы не показывается в заголовке окна.
- Больше всего повозился с формой комментариев. Хотел конвертировать ее в XForms, скачал дополнение к Firefox'у с его реализацией, почитал несколько тьюториалов, но так и не заставил работать (в XHTML1, кстати, работает). Поэтому пока форма работает в старом XHTML1-виде, который с помощью namespace'а внедрен в XHTML2-документ. XML — крутая штука, что ни говори!
- В IE6 форма, правда, не работает совсем и есть проблемы с CSS'ом. Но я надеюсь их решить в ближайшее время с помощью скрипта "ie7" Дина Эдвардса, который кучу CSS2-конструкций реализует для IE. (Да и честно говоря, по статистике у меня IE всего 6%, поэтому это меня не сильно беспокоит.)
В общем, без особенных проблем и за исключением досадных мелочей страница теперь выглядит точно так же, как и в HTML! Осталось теперь остальной сайт перевести...
Комментарии: 56
Странно, в тексте ни одна ссылка не нажимается. Firefox 2.0.0.3
Всё прогрессивное человечество давно возвращается к HTML. Вот например здесь: http://www.w3.org/html/. Обрати внимание на дату :)
W3C Launches New HTML Working Group
W3C is pleased to announce the new HTML Working Group, chartered to create the next HTML standard with the active participation of browser vendors, software developers, and content designers. "It's time to revisit the standard and see what we can do to meet the current community needs, and to do so effectively with commitments from browser manufacturers in a visible and open way," said Tim Berners-Lee, W3C Director.
The voluminous feedback has been compiled into the Architectural vision for HTML/XHTML2/Forms Chartering document.
A particular effort has been done to foster the participation of everyone. If you are in the mood to get involved, please, visit the HTML Working Group home page.
** * March 7th, 2007**
В IE7 страница выглядит ужасно - текст растянут на весь экран, списков достоинств/недостатков нет (идет сплошной текст без кода), формы комментария нет совсем.
Вообщем, как-то не очень этот XHTML2 смотрится в ослике...
что-ж, не знал, что я пользуюсь несуществующим браузером.
Есть и ещё одна проблема: как известно в Firefox если нажать на ссылку средней кнопкой мыши, ссылка откроется в новой вкладке. Со ссылками здесь такого не происходит.
Свершилось! Наконец-то людей не беспокоит совместимость с IE :)))
Но увидев первоначально сайт в IE7, был сииильно удивлен :)
Иван, в IE6 выглядит просто никак. :)
Однако, смело. ;) Интересно, долго ли будут тянуть с его принятием?
И будет ли в FF3 поддержка нормальная? Или такая же, как и во втором?..
Респект, хотя в ИЕ, конечно, страшно выглядит =)
Что называется - аффтар жжет! То так рьяно отстаивать HTML, а теперь... А что же натолкнуло тебя на сей странный и непонятный :) шаг?
Ваня, не стоило напиваться на мой день рождения :) Пользователи IE не поймут :-D
С первым апреля!
Ага. Покой нам только снится! И вас с 1ым апреля, Иван! =) А жаль... что это только шутка! %)
А нет, глянь те вы и вправду. =) Но думаю, это только на сегодняшний день! 8D
С 1-ым апреля Вас, Иван! :)))
Иван, странно, но клик колесиком мыши вообше не работает в ff2. Впрочем, в Opera тоже.
Видимо из-за этого:
1 апреля? :-)
http://softwaremaniacs.org/blog/?p=241
Не подскажешь, как рассекретить этот линк? :)
Не надо остальной сайт :-).
В Opera 9 не работают ссылки (почему то не заполнилась форма комментария). Странно что страница не проходит валидацию на validator.w3.org, мне кажется DTD тут не должен играть большой роли (т.е. вообще). Так же данная часть сайта (это страница) потеряла возможность разворачиваться по ширине.
Вообще тема интересная, спасибо что не оставляешь её. Буду регулярно следить. А ты случайно не сталкивался с конвертерами (Python) XHTML в HTML? Было бы удобно верстать сайт в одном формате, а затем автоматом конвертировать его для "HTML браузеров".
..bw
отличненько. теперь в опере (по крайней мере в 9.02) не работают ссылки. прогресс, бле.. =(
а! точно, сегодня же первое апреля...
скоро ли все назад вернете?
Ай, красавец, шутка удалась, интересно одно, сколько готовил это всё? :)
Отсутствие title сразу бросилось в глаза: и в ридере, и в заголовке окна браузера, и уж тем более в названии вкладки. Неудобно...
Кстати, насчет HTML. Стандарт подразумевает возможность рендеринга частично загруженного кода? Иными словами, HTML — потоковый по стандарту или ad hoc?
XHTML это не подразумевает, т.к. документ должен быть XML-валидный, а, следовательно, — загруженный до конца.
С первым апреля!
Респект и уважуха =)))
Я сейчас собираюсь переделать структуру своего сайта, и буду шаблон переписывать. Так Вы навели меня на мысль, переписать его под xhtml2 =)
Интересно что перестала работать средняя кнопка мыши, которая обычно открывала ссылку в новам табе в FF 2.0
Первое апреля, никому не верю :)
Полагаю, дата опубликования поста не случайна :).
Ну вот же ж! ;)
Правда не пойму почему автора так тянет то в одну крайность, то в другую? Почему если не устаревший HTML, так сразу ещё не вышедший XHTML2?
Собственно, ведь XHTML 1.1 как раз и создан, для того, чтобы в ожидании официальной спецификации второй версии уже сейчас отказаться от HTML.
Мне кажется именно использование версии 1.1 является наиболее оправданным в данный момент.
Offtop: интересно не задержится ли выход второй версии XHTML из-за возвращения к трудному ребенку HTML?
И вас с первым апреля.
Смелый шаг. Но мне не совсем ясна его цель. Мотив да, а вот с целью проблема. Ведь это же кодинг ради кодинга... Плюс проблемы, пусть не серьезные но все же.
З.Ы. Так что же у нас впереди, HTML5 или XHTML2? :)
Еще небольшая проблема это то, что в статус-баре не видно, куда ведет ссылка - но с улучшенной семантикой документа это совершенно не проблема! Зато теперь можно с помощью быстрых и лекговесных библиотек парсить ваш сайт и затем преобразовать его хоть в HTML, хоть и даже в plain text. За XHTML будущее, и я рад, что вы тоже осознали это.
В Сафари тут страх божий.
Почему-то далеко не все обращают внимание на дату и на то, что эта страничка - обычная статическая, и со всем остальным сайтом никак не связана :)
Хорошая шутка :)
Странно, но при просмотре Оперой 9.10 нет возможности перейти по ссылкам.
мда...код дейсвительно стал красивее... вот только Konqueror издевательски изменяет курсор над ссылками, а открывать не хочет:( а насчет "виноватых" правильно - надо действовать самим, никто не придет и не скажет что нужно использовать XHTML!
Иван, утром отправил вам скрин этой страницы в Safari...
А тут вот вспомнил, что сегодня оказывается такой день... :) В общем, и вас с первым апреля!
И Вас с первым апреля!
(утирая платком слёзы) Спасибо Вам... В это тяжёлое время... потеплело на душе...
В копилку ложек дёгтя: в Firefox в XHTML2-документах не открываются ссылки в новом табе по средней кнопке мышки. Правда, это чисто браузерный глюк: по Ctrl+клик открываются.
Просматривая комментарии через blogs.yandex.ru: при чём здесь первое апреля, если XHTML - второй :(
без title выглядит браузер както-то криво на панеле задач
Блин, повёлся
Иван Григорьевич!
Да не сбивали бы Вы с пути праведного отроков неразумных, душею мягких и извилиной неокрепших... Даже в такой знаменательный день... )))
Я рыдал... )
Ха-ха. Столько людей повелось на эту шутку.
В опере 9.20 (билт 8762) - кажется, последняя версия, - не работают ссылки. Совсем :(
Всем спасибо за комментарии! You made my day :-)
Пара ответов:
Идея пришла где-то на позапрошлой неделе, а готовил что-то около 4-5 часов. Больше всего времени отняло осознание, что XHTML2 не валидируется просто потому что DTD пустой, а также попытки заставить работать XForms. Реально, в XHTML1-документе формочка работала, а в XHTML2 — никак. пришлось внедрять XHTML1 внутрь XHTML2 :-)
Задуман потоковым. Больше того, еще и весь CSS построен вокруг этой идеи.
Вот таки нет. XML требует, чтобы парсер бросил парсинг, как только встретит ошибку well-formed'ности, но не запрещает использовать данные из частично распарсенного документа прямо по ходу дела. Собственно, основной метод парсинга XML — SAX — работает как раз по потоковому принципу, выдавая элементы по мере нахождения.
Отчасти это впечатление, что XML исключает progressive rendering, подогревалось багом в Gecko, который там был с начала времен. Но его недавно пофиксили, правда ни в одном релизнутом браузере фикс еще не появился.
Именно! Поэтому я это и не поддерживаю :-)
Честно говоря, вначале подумал, что это — Первоапрельская Шутка :). И даже в исходнике страницы ожидал увидеть, мол, "С Первым Апреля!" :).
Однако, был приятно удивлён ;)... Читать Ваш сайт всё интереснее и интереснее!..
I love this blog!!! :)
Здорово развел :-).
А то думал пропадет день - ни одного прикола.
Угу...
Я уже было обрадовался...
Отважный шаг, я бы не рискнул сейчас переходить на XHTML2, хотя и начал все верстать только валидно и только дивами еще пару лет назад, поэтому наверно и не рискнул бы.
"XML — крутая штука, что ни говори!" - здорово, что вы его наконец оценили. :)
"по статистике у меня IE всего 6%" :) !!!
Ну не знаю, у меня SeaMonkey 1.1.1, там версия Гекона вроде даже постарее, но все ссылки работали исправно.
В Opera 9 не работают ссылки (почему то не заполнилась форма комментария).
В Опере 9.2 (8767) форма заполнилась нормально, а вот ссылки не работали, да.
Хотя интересно было почитать, я не вдавался так в особенности XHTML2, а если честно, то вообще никак не вдавался :)
Насколько я помню, то для этого есть атрибут xml:id. Но честно, я не проверял.
Помоему, это просто "черный PR" со стороны Ивана.