XHTML си отива – идва HTML5

Square

Наскоро един колега писа по въпроса за избора на DOCTYPE декларацията на HTML документите и основните коментари бяха, че в момента масово се използва XHTML, но вероятността той да загуби позиции за сметка на бързо развиващия се HTML5 става все по-голяма. И ето, че днес има вече официално изявление по въпроса от W3C(световният уеб консорциум), който се грижи за уеб стандартите. Най-важното в това изявление е, че XHTML си отива безвъзвратно и идва новата версия на HTML – версия 5. Както пише във въпросната публикация, работната група за XHTML2 ще съществува до края на годината, след което прекратява дейността си. Това от своя страна означава, че остава да работи единствено групата по стандартизирането на HTML5 и тази версия на езика за уеб програмиране ще е бъдещето в нашата професия.

Предварителните ми впечатления от бъдещия стандарт са изключително позитивни, което се дължи на новостите, които предлага и които улесняват изключително работата на уеб разработчиците, но както казват братята руснаци: „Поживем — увидим!“.

Още по темата:
 Публикацията на W3C – About the future of XHTML
 Дискусията при Michel – XHTML 1.0 или HTML 4.01 (HTML 5)?

Comment

17 Replies to “XHTML си отива – идва HTML5”

  1. Всъщност, хората от XHTML 2 ще „прелеят“ към (X)HTML 5, което е добре; тоест, групите се сливат един вид и ще концентрират усилия върху новия (X)HTML 5 стандарт. А така и така беше ясно, че XHTML 2 не отива никъде…

    Харесвам HTML 5 – единственото, което малко ме притеснява в момента е, че не става ясно какво точно става с „хикса отпред“ – тоест, с варианта XHTML 5. Самият ръководител на екипа от W3C, който води HTML 5 working group (доколкото знам), в момента не препоръчва използването на XML/XHTML при новия стандарт (?), което ми звучи малко странно… Тоест, той не препоръчва XHTML 5, а само HTML 5, а това определено сякаш разклаща позициите на XHTML разновидността.

    ( http://xhtml.com/en/future/conversation-with-x-html-5-team/ )

    А пък лично на мен XHTML ми харесва повече, заради това, че налага по-стриктен стил на писане (всеки таг, който се отвори, трябва да бъде затворен; атрибутите са в кавички; etc.)… и за момента продължавам да предпочитам XHTML 1.0 Transitional/Strict:)

  2. @ Michel – Наистина работата по XHTML2 няма да бъде отхвърлена и части от нея ще се включат и в (X)HTML 5 стандарта, което би било най-нормалното решение, при положение, че самия XML има толкова много приложения в уеб и не само, но на мен ми се искаше все пак надграждането да продължи от XHTML1 именно заради по стегнатия стил на писане, който прави подредбата на всеки един документ лесна за предвиждане и съответно при работа в екип вероятността да се омаже нещо намалява, при условие, че се спазват стандартите от всички в екипа разбира се.

  3. Всъщност въобще не е вярно, че XHTML си отива. Просто вместо да се работи по стандарта XHTML2, който и без това буксува отдавна и никой няма желание да го поддържа, ще се работи по HTML5. НО HTML5 има и XML – съвместима разновидност – XHTML5 – която се различава точно толкова от HTML5, колкото XHTML1 от HTML4.1 – таговете трябва да се затварят.

    И на мен по-ми харесва да пиша XHTML – въпреки, че в HTML5 не могат да се оставят незатворени тагове, по-чисто ми се струва да затворя и единичните тагове като img, input, br и т.н. Основниат мотив срещу използването на XHTML е, че съдържанието не се изпраща като application/xml+xhtml, а като text/html, което прави X-а излишен, но това е нещо, с което мога да живея. Вече обмислям да пиша HTML5, но не съм намерил време да започна с експериментите.

  4. @ Гонзо – Аз се надявам XHTML скоро да не си отива. От друга страна наистина има логика в това, след като съдържанието се изпраща като text/html, X-а да е излишен, но благодарение на него се наложи така масово съобразяването със стандартите и изграждането на безтаблични структури на уеб документите и по някакъв начин явно влагам и известна доза емоция в цялата тази история.
    А доколкото виждам в блога ти, вече си започнал експериментите, като си вкарал някои нови елементи, които са част от CSS3 и ще вървят заедно с HTML5 стандартите – @font-face и column-count(-moz-column-count). 😉

  5. Е, със CSS3 се забавляваме отдавна, но за сега нищо с HTML5. Едно уточнение – тъй като XHTML 1 беше просто XML – съвместима версия на HTML 4.1, спокойно можеш да мислиш за XHTML 5 като за продължение на XHTML 1. Не мисля, че XHTML 2 щеше да ни е от огромна полза – твърде различни концепции от заложените в досегашните спецификации. Съгласен съм с Мишел, че изоставянето на тази спецификация и съсредоточаването върху HTML 5 е добре. дано само не чакаме наистина до 2022 😉
    HTML 5 Won’t Be Ready Until 2022. Yes, 2022

  6. Писането на XHTML 5 обаче (ще) бъде проблем – няма да има специален doctype за XHTML 5 разновидността на HTML 5, ами ще се налага самият документ да бъде предоставян като application/xhtml+xml MIME type. Тоест, вариантът „Пиша XHTML, но сервирам като text/html“, който беше възможен при XHTML 1.0, вече няма да бъде достъпен. А както знаем, IE (за версия 7 и по-ниска, със сигурност; за версия 8 не знам) не поддържа application/xhtml+xml, така че реално, дизайнерите няма да имат възможност да пишат XHTML и да го публикуват като text/html.

    Самият HTML 5, тъй като е по-близо до HTML 4.01, позволява по-свободно кодиране – таговете за параграф може да не се затварят, дори таговете за елементи от списък (LI) може да не се затварят също, атрибутите може да не са в кавички; а това не се харесва на всички – например, аз предпочитам да затварям всички тагове. И тъй като HTML 5 ще съществува основно в разновидност HTML, а не XHTML, то и съответно, ако проверите кода си с валидатора на W3C, ако сте забравили да затворите някой таг, той няма да ви уведоми за грешката, тъй като това не е грешка изобщо (според новия стандарт). Което би могло да доведе до редица проблеми, за които май засега нямам решение … :-/

    Така или иначе, мисля, че за момента ще поразуча новия стандарт, но ще продължа да пиша XHTML (като text/html MIME type), защото предпочитам по-стриктното му кодиране…

    Малко ми се вижда странното да няма дори някакъв по-стриктен DOCTYPE вариант за html 5, за хората, които предпочитат малко по-добре подредения и проверен код, но няма как… В W3C не смятат това за важно, и XHTML реално става неизползваем при HTML 5 разновидността (заради IE)…

    (май темата е доста обширна)

    (а невъзможността да се пише и проверява (всъщност, да се пише може, но да се провери не може) за по-строго подреден код при HTML 5 е една от причините да не викам „ура“ като повечето дизайнери в момента… просто имам навика, който си изградих с xhtml 1.0 – и ми допадаше това, че ако забравя да затворя таг, например, валидаторът ме известяваше… вече няма да е така при новия стандарт…)

  7. Мишел, не съм съгласен! По въпроса за сервирането на XHTML като text/html, и до сега това не е правилно, но всички го правим, нали? Положението едва ли ще се промени и в бъдеще.

    Да, HTML 5 е наследник на 4, но в пета версия доколкото знам таговете за параграф и елемент от списък трябва да се затварят. Да, няма специален DOCTYPE, но той и без това е необходим единствено за да се накара браузъра да ползва standards mode.

    Според мен нищо не ти пречи да продължиш да пишеш правилен и добре структуриран код, а и никой браузър няма да се оплаче от това.

  8. @Гонзо:

    XHTML да се сервира като text/html не е правилно, но в това няма нищо страшно, а и всеки го прави. Въпросът е, че като валидираш XHTML 1.0 документ, ако има незатворени тагове, те ще бъдат показани като грешки (които можеш да коригираш). HTML 5 обаче позволява незатворени тагове, и при валидиране грешка не се появява. Има и други разлики в синтаксиса (по-свободен е при HTML4/5).

    Създай нов HTML5 файл, постави вътре, например, 1-2 параграфа, които са затворени, и един параграф, който да не е затворен. Може да сложиш и неподреден списък (UL), в който част от елементите да са затворени, а друга част – да не са затворени. Запиши документа като test.html или нещо подобно и го пусни през валидатора на W3C. Ще видиш, че незатворените тагове няма да бъдат показани като проблемни (а самият HTML 5 ще бъде разпознат коректно, ако си поставил в началото:

    <!DOCTYPE html>

    Тоест, всеки е свободен да пише стриктен код, но ако дори и случайно забрави да затвори някакъв таг, и т.н., няма как да разбере за това, защото според HTML 5, кодът му ще е валиден и в двата случая…

    На мен лично, това не ми допада.

    При XHTML не е така. Ако забравиш да затвориш таг за параграф, дизайнът няма да се развали или нещо такова, но валидаторът коректно ще ти посочи грешката. А с HTML 5 (поне за момента) няма да има такъв вариант.

    И последно, HTML5 няма да има XHTML вариант в истинския смисъл на думата (както при XHTML 1.0), тъй като за него няма да има специален doctype, а ще се налага да посочиш, че файлът ще се сервира като application/xhtml+xml което пък очевидно няма да възможно, имайки предвид, че никоя версия на IE преди IE7 не поддържа подобно сервиране; което пък означава, че ако държиш да затваряш всички тагове, да слагаш атрибутите в кавички и т.н. и да можеш да провериш, дали си направил всичко коректно, ще се наложи да ползваш XHTML 1.0; или да се надяваш до ~ 2020 година, когато ще пуснат HTML 5, отново да може да се валидира стриктността на кода, която научихме от XHTML 1.0 стила на кодиране…

    Сорри че малко дълго се получи… 🙂

  9. Ммда, по въпроса за валидилането съм съгласен с теб. Наистина е кофти, че единствения начин да кажеш на валидатора, че това е XHTML, е да го сервираш като такъв. Но като се замислиш, технически това е правилно. Но това според мен не значи, че „HTML5 няма да има XHTML вариант в истинския смисъл на думата“, а просто че се различават по mimetype, а не по doctype. А ако искаш все пак, ето първото, което намерих, за content negotiation:
    Serving up XHTML with the correct MIME type.

    Не бях пробвал какво казва валидатора за HTML 5 документи, но довечера ще направя няколко проби.

  10. Направи проби и ще видиш… 🙂 Мисълта ми беше, че дори и да искам да пиша по-стриктен код, и после да го проверя дали е валиден, при HTML 5 това е по-трудно, защото за него и затворените и незатворените параграфи и елементи от списък са валидни… Иначе, няма проблем да се пише с xhtml или html синтаксис, и двата ще са валидни при html5 (което е добре и зле; май разделението xhtml 1/ html4 не беше толкова лошо)…

  11. Явно темата предизвиква доста горещи дискусии в уеб средите, не само по нашите земи 🙂 . И имайки предвид факта, че привържениците на XHTML са много по активни се надявам да успеем да се преборим за вариант, в който да се уредят проблемите с писането на стриктен код и неговата валидация, а дали това ще е под някаква форма на специaлен DOCTYPE или възможност за избор на различен режим на валидиране на кода през валидатора на W3C, поне според мен не е чак толкова важно.

  12. Тъкмо това се обсъжда в момента, виж последните коментари в същата публикация! 🙂

  13. Да виждам, че и ти си се влючил във веселбата 🙂 .
    Явно не е лесно да се въведат нови стандарти за език, който се ползва от хиляди хора по света, а на мен наскоро ми мина мисълта „Какво толкова чакат, че се налага през 2009 да се съобразяваме със стандарти, основата на които е замислена още преди 2000-2001, период от време, който за уеб технологиите си е цяла вечност.“

  14. @Michel, снощи на validator.nu вече имаше възможност да се валидира XHTML 5 чрез избор на вида документ, а не според content-type. Направих някои проби с (X)HTML5, с X-а трябва да се внимава, валидатора се оплаква от разни неща, но по-надълго, като си поиграя повече.

    @Ангел, не мисля, че е лошо това, че стандартите се задържат дълго време – това според мен значи, че са „стабилни“ и вършат работа. В интерес на истината, HTML 4 / XHTML 1 си вършат чудесна работа за повечето сайтове, в повечето случай ограниченията са от към възможностите на CSS 2.1.

  15. @ Гонзо, и аз съм на мнение, че не е нужно да се правят генерални промени през сравнително кратки срокове, особено когато това засяга толкова много хора. Мисълта ми беше по-скоро за това, че постоянните кръпки, които се добавят в един момент стават пречка и това е най-изразено при опитите да се изгладят различията в поведението на браузърите, чрез разни фискове и скриптове и т.н. Един нов стандарт ще ни даде решение на много от тези усложнения, но както се вижда ще породи нови, с които да се борим. Обаче за мен и това няма да е проблем, защото ако успяваме да подкараме всеки код без дори малко да се поизпотим над някакви проблеми по него, каквито в момента ни поднася любимия IE ще ни бъде много скучно 🙂 .

    Хвърли едно око и на това: http://www.sitepoint.com/article/html-5-snapshot-2009/
    На 2-рата страница от статията има много лесно javascript решение за IE браузърите, което се справя със новите тагове, които са непознати за тях, а много ме зарадва факта, че като валидирах примера към статията (http://www.sitepoint.com/examples/html5_0709/with-comments.html) и валидатора си го разпозна като HTML5 документ 🙂 .

    А CSS-а, макар и тясно свързан с HTML-а, си е отделна тема, не по-малко интересна от тази, за която може да си заформим скоро някъде подобна дискусия.

  16. Да, таз статийка трябва да съм я чел 😉 HTML 5 спецификацията описва подробно как браузърите да рендват разни неща, и това е едно от основните и предимства в сравнение с предишните. Различията в поведението на браузърите по отношение на HTML-а се дължат точно на липсата на такова описание и съответно всички са правили reverse-engineering на поведението на тези преди тях, не мога да намеря къде го четох това, май Ian Hickson обясняваше някъде…

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *