[K.42] Císařovy nové značky – Webylon.info
  • TwitterRSS
  • Domů na Webylon
  • Kritika W3C
  • Evangelizace, HTML 5
  • Císařovy nové značky 14. května 2012 Zdá se, že moderní webdesign dokáže v každé epoše vývoje specifikací vyhmátnout něco divného a malicherného a vykřesat z toho navzdory zdravému rozumu perspektivního zajíce v pytli. Specifikace HTML 5 přináší nejen řadu zajímavých novinek, ale též zdravě svěží formální důkladnost. I přesto se mezi čerstvě vylíhnutými kodéry utváří hustá mlha falešných předpokladů, jak za dob tuhé XHTML evangelizace. Inovací, jejíž důležitost bývá nejvíc přeceňována, jsou nové sémantické blokové elementy. Moderní kodér: Používám <footer>. Moderní rýpal: Proč? Moderní kodér: Protože teď se to tak dělá. Jdu s dobou. Kam že kráčí ta doba? Neviditelná tkanina Smyslem HTML elementů je vyznačovat obsah stránky tak, aby stroj porozuměl, jak má tento obsah sdělovat návštěvníkovi. Z tohoto pohledu nemá smysl používat značky, kterým stroj nerozumí, nebo které nenapomáhají tomuto účelu. Hypertextový jazyk si již v dávných dobách vypěstoval imunitu vůči neznámým jevům. Prohlížeče se naučily neznámé značky víceméně ignorovat a neznámým atributům nepřisuzovat žádný význam. V průběhu dějin byl zpravidla záchranný systém neškodný, případně nabízel pohodlnou cestu k té nejlepší možné alternativě — zejména u elementů jako <noscript>, <object> či <video>. S nástupem masové podpory CSS v prohlížečích se HTML proměnilo v mnohem přehlednější jazyk. Základní strukturu stránky už netvoří tabulky, ale elementy <div> a <span>, jejichž výchozí způsob prezentace je nezajímavý, a proto jsou vydatně přestylovávány. Tvůrce HTML 5 napadlo, že sortiment těchto nezajímavých strukturálně důležitých elementů rozšíří. Vzali statistiku nejčastěji používaných tříd a stvořili letitému blokovému <div>u kupu mladších bratříčků. Což vůbec není špatný nápad, nicméně je zapotřebí jej vnímat v širších souvislostech. Žádné spodní prádlo V souladu s nadčasovými ideály World Wide Webu si musíte položit otázku: Jak zareaguje prohlížeč, který <article>, <header> či <section> vůbec nezná? Moderní kodér: S tím počítám, mám v hlavičce magický skript a ten vše rozchodí i ve starším Exploreru. Moderní rýpal: Ale co jinde? Moderní kodér: Žádné jinde neexistuje. Moderní rýpal: Co když se ten skript nenačte? Co když narazíš na něco, s čím nepočítá? Moderní kodér: Lidi, kteří teď používají starší Explorer, stejně jednou umřou. Neznámost elementu může mít mnoho podob. Některé můžou být neškodné, jiné mohou vadit. V Internet Exploreru do verze 8 lze rozběhat stylování neznámých elementů JavaScriptem. V Mozillách, Operách, Chromech a nových Explorerech je můžete stylovat bez omezení prakticky odjakživa. Většinový návštěvník se zapnutým JavaScriptem a zapnutými styly tedy nemusí poznat, že kouká na něco, co prohlížeč nezná. Hurá! Moment. O to tedy jde? To je ten velký gól HTML 5? Že si nastylujete jinak nazvaný <div>? To je toho… to jste přeci mohli udělat i dřív — vyrobit si úplně vlastní elementy a dodrátovat si je do prohlížečů neoplývajících přirozenou znalostí. Vymyslet si vlastní Okouzlující HTML… <!okouzlující html> <blok> <nadpis>Hello World!</nadpis> <odstavec>This page is valid Charming HTML!</odstavec> </blok> Říkáte si, že by to byla hloupost? Hm. Možná. V čem je <footer> lepší? Kvalitní značková látka Jednou z očividných předností elementu <footer> je posvěcení konsorcia. Prakticky vzato: projde vám validátorem. Je přeci všeobecně známo, že co je validní, to by mělo všude fungovat… nebo ne? Ve světle rozšiřování HTML se ukazuje, jak slepě se mnoho let budovala důvěra ve spásné účinky validity. Nová udělátka nového HTML nezačnou zázračně fungovat ve chvíli, kdy se zrodí v návrhu specifikace, nehledě na to, zda betaverze validátoru radostně zezelená. Pokud se specifikace i s validátorem vyvíjejí rychleji než cílová zařízení, nemůžete se o ně opírat jako o stabilní měřítka kvality. Krom toho je HTML 5 pořád jen pracovní návrh. Stejně jako kdysi bylo HTML 3 se svými <fig> a <lh>. Konsorcium si nejspíš nedovolí <footer> zrušit (riskovalo by, že o tom napíšu článek), ale zkuste si čistě hypoteticky představit možné důsledky, kdyby se tak stalo. Vážíte-li si formální správnosti, měli byste i ctít formální status nedokončené specifikace. Okázale vyjádřený význam S elementem <footer> se pojí určitá sémantika. Lépe řečeno: standardizovaná jednotná sémantika — v tom se liší od mého okouzlujícího elementu <odstavec>. Jednotná sémantika jde někdy někde nějak k něčemu možná využít. Alespoň teoreticky [K.38]. Jenže vtip je v tom, že nové elementy v HTML 5 nevznikly na základě poptávky po lepším obecném zpracování stránek, ale na základě statistik sestavených z již existujících stránek. Žádná zbrusu nová forma pro obsah, jen pouhý odraz té dosavadní formy. Sjednocuje se něco, co už částečně jednotné je, akorát na jiné úrovni. Pokud někdo skutečně potřebuje vyzobávat patičku z obecné stránky, tak už dávno kouká na <div class="footer">. Nemá žádný důvod čekat na HTML 5. Užívání elementu <footer> mu akorát nyní trochu přidělá práci. Nemluvě o kodérech, kteří nadšeně začnou užívat nové elementy špatně. Věříte-li v blahodárné účinky strojového zpracování HTML, vězte také, že v té neurčité množině strojů nepochybně pořád žije něco, co nové značky zcela ignoruje — podobně jako starší prohlížeč. Elegance sama Kód s elementem <nadpis> je nádherný. No dobře, připouštím, že i ten <footer> vypadá pěkně. Názorně a samopopisně. Kódu můžou porozumět i méně odborně zdatní lidé, kteří by se jinak <div>ům divili. Je skoro škoda, že elegance HTML kódu vesměs nikoho nezajímá. Tvůrce šablony stejně potřebuje blíže porozumět HTML a zejména podivnostem ze světa CSS — tím je laik tak jako tak ze hry. Nakonec každý, kdo zkoumá kód, pochopí i <div class="footer">. Potíž tkví samozřejmě v tom, když se sejde spousta <div>ů najednou. Potom si musí příčetný kodér najít nějakou berličku: buď si osedlá chytrý editor, nebo důsledně odsazuje, případně i poznámkuje… <div class="header"> Hlavička. </div><!-- /header --> <div class="article"> Článeček. </div><!-- /article --> <div class="footer"> Patička. <div class="wheel-clamp"> Botička. </div><!-- /wheel-clamp --> </div><!-- /footer --> Máte-li v kódu skutečně mnoho <div>ů, nové blokové elementy vám trochu pomohou v zorientování. Ale opravdu jen trochu. Ani to není skutečný důvod, proč je kodéři začínají používat. Rozdíl patrný jen urozeným Novinka, která nemá vůbec žádný praktický přínos, by se měla krčit v koutě a tiše čekat na lepší časy, třebaže rizika s ní spojená jsou na první pohled maličká. Nekrčí se, protože evangelizační mašinérie vycítila velkou událost a s ní spojený hlad po změnách. Takže se nám na hrobu slavného XHTML 1 nafukuje další (v podstatě totožná) bublina — lidi používají jazykové konstrukce, které nemají dostatečnou skutečnou podporu, ale souhrou okolností nepůsobí viditelné potíže. A používají je především proto, aby dali najevo, že patří do klubu. Sobě navzájem předstírají inovaci. Zbytečné divadlo. Moderní rýpal: I já jdu s dobou, také používám HTML 5. Moderní kodér: Nevěřím, nikde nevidím <!doctype html>. Specifikace HTML 5 si bere pod svá křídla i dokumenty deklarující zastaralý <!doctype>. Jediný důvod, proč vůbec <!doctype html> obsahuje, je zpětná kompatibilita — prohlížeč z něj nemá odhadovat verzi. Všichni jdeme s dobou. Není nutné jít jí naproti. Konsorcium se snaží udělat z pojmu „HTML 5“ jeden supermoderní balíček (podobně, jako se snažilo secvaknout CSS s XHTML), což je zavádějící maškaráda. Na něco je příliš brzo, na něco ne. Vždyť je nahý! Tento článek používá Okouzlující HTML, zobrazte si zdroj. Ale že mu to sluší, co? « [K.41]» [K.43] 2004–2014 © Chamurappi