V srpnu vydalo W3C první veřejný pracovní návrh nového standardu XHTML 2.0. Okamžitě se na mnoha diskuzích strhly bouřlivé debaty o smysluplnosti a hlavně užitečnosti nového standardu. Podívejme se tedy, co nám tento první návrh poodhaluje z budoucnosti HTML.

Zpětná kompatibilita

Největší rozruch vyvolal hned úvod návrhu. W3C zde jasně deklaruje, že se nepředpokládá, aby XHTML 2.0 bylo zpětně kompatibilní se svými předešlými verzemi! Rozruch okolo tohoto tvrzení je pochopitelně značný. Podívejme se ale na tento fakt realisticky. Celá historie HTML je protkána velkým množstvím různých nekompatibilit a prohřešků vůči standardu. V době souboje IE s Netscapem bylo do HTML přidáno množství elementů zobrazitelných pouze na dané platformě. Až „s křížkem po funuse“ přidávala W3C tyto nestandardní značky a funkce do svého standardu, aby vůbec byly její normy použitelné. A právě díky tomu, že tyto elementy byly vytvářeny živelně a často naprosto samoúčelně, mohly spatřit světlo světa perly typu blink, marquee a mnohé další. Teprve v XHTML se W3C podařilo dostat zpět pod kontrolu syntaxi (díky jasným pravidlům daným XML) a verzí XHTML 1.1 postupně odbourat všechny nešvary, které si s sebou XHTML přineslo z minulosti.

Nyní se W3C snaží podobnému vývoji předejít a rozvoj normy XHTML držet pevně ve svých rukou. Proto tedy jasně předem deklaruje, že XHTML 2.0 nebude zpětně kompatibilní. To je podle mně správný postup, je však důležité, aby W3C do nové normy přidalo skutečně použitelné funkce a aby změny nebyly samoúčelné. Jen tak bude mít XTHML 2.0 skutečně smysl.

Jaké změny oproti předchozím verzím přinese XHTML 2.0? Nejprve je nutno zopakovat, že norma se nachází ve stavu prvního veřejného návrhu. Celý dokument je zatím nehotový a je pravděpodobné, že některé věci budou přidány a jiné se možná ve finálním znění ani neobjeví. Bohužel sekce „Změny oproti XHTML 1.1“ prozatím v dokumentu chybí, proto se v následujících odstavcích zmíním pouze o tom, co mne v návrhu normy zaujalo.

Vše je odkazem

Jedna z největších změn se týká Common Attribute Collection (kolekce běžných atributů), která sdružuje atibuty společné pro drtivou většinu elementů. Do té je totiž nově zařazen i atribut href. Což znamená jediné, každý element může být zároveň odkazem! Takže místo klasického <a href="http://www.interval.cz"> <strong> Interval </strong> </a> můžeme nyní psát přímo <strong href="http://www.interval.cz"> Interval </strong>. Přitom je v návrhu zachován i element a, takže nakonec bude na webmasterovi, kterou možnost použije. Tato změna mi připadá vcelku zajímavá, uvidíme, jak se uchytí v praxi.

Obrázek jako objekt

Poněkud kontroverzní změnou je naprosté zrušení elementu img. Obrázky se nyní vkládají podobně jako další multimediální objekty pomocí značky object:

<object data=“pic.gif“ type=“image/gif“>
Nějaký text suplující atribut alt
</object>

Přestože je tento krok vcelku logický, nepřipadá mi příliš správný. Obrázky jsou natolik specifickou a často používanou součástí webu, že si podle mého názoru zaslouží svoji vlastní značku. Uvidíme, jak bude tato změna nakonec vypadat v konečném návrhu normy.

Prezentační modul

Z prezentačního modulu konečně zmizely všechny pozůstatky minulosti. Již zde nenaleznete elementy b, big, i, small, tt. Zůstaly pouze sub, sup a hr. Za tímto výrazným zeštíhlením prezentačního modulu je jasně patrná snaha o prosazení oddělení obsahu od vzhledu.

Textový modul

V textovém modulu došlo také k několika změnám. Element q (krátký řádkový citát) byl přejmenován na quote, ale funkci plní pořád stejnou. (O významu jednotlivých elementů textového modulu se můžete dozvědět více v článku Martina Snížka Logické strukturování HTML dokumentu.)

Mnohem důležitější změnou je označení elementu br jako deprecated (překonaný) ve prospěch nové značky line. Tento krok zatím ve mně vyvolává rozporuplné pocity. Na jednu stranu je pravda, že br je jedním z nejvíce zneužívaných prvků jazyka, který často supluje CSS, ale dokážu si představit případy, kde bych se bez tohoto elementu obešel jen ztěží. Poněkud zmateně je definována i náhrada této značky, line:

Element line představuje pododstavec. Byl vytvořen jako strukturovaná náhrada elementu br. Obsahuje kus textu, který má při vizuálním zobrazení začít na novém řádku a na konci odřádkovat. Zdali se text rozdělí na více řádku nebo nikoliv závisí na dané stylové hodnotě.

Co to znamená v praxi? Element line se bude používat například pro kratší řádky, u nichž si můžeme být jisti, že nepřesáhnou rozměr řádku:

<!– původní způsob –>
    <p>
    první řádek<br />
    druhý řádek<br />
    třetí řádek
    </p>
<!– nový způsob –>
    <p>
    <line>první řádek</line>
    <line>druhý řádek</line>
    <line>třetí řádek</line>
    </p>

Poslední změnou v textovém modulu je přidání dvou nových značek h, section. Element h má v podstatě stejnou funkci jako známé h1-h6, vytváří nadpis. O tom, nakolik je důležitý, ovšem rozhoduje počet zanoření do značky section. Více snad vysvětlí následující příklad:

    …
    <body>
    <h>Toto je nadpis nejvyšší úrovně. Není vnořen do žádné sekce.</h>
    <p>…</p>
    <section>
       <h>Toto je nadpis druhé úrovně. Je vnořen jednou do značky section.</h>
       <p>…</p>
       <h>Další nadpis druhé úrovně.</h>
       <p>…</p>
       <section>
          <h>Nadpis třetí úrovně.</h>
          <p>…</p>
       </section>
    </section>
    </body>
    …

Zatímco značky h1-h6 klasifikují pouze nadpis a nijak neurčují, v jaké úrovni je odstavec, ke kterému se vztahují, pomocí vnořování značek section můžeme relativně snadno určit úroveň jak odstavci tak i jeho nadpisu. Zůstává však otázkou, zda tento mechanismus bude skutečně použitelný nebo v dokumentech pouze nastolí zmatek.

XHTML menu

Nově byly přidány značky nl, name do modulu seznamů. Jejich význam vysvětluje W3C následovně: „Navigační seznamy definují kolekci volitelných položek pro vykreslení „navigačního„ menu.“ Tímto je do XHTML vložen poměrně silný nástroj, jak vytvořit menu bez použití skriptovacího jazyka. Nadefinujme si takové jednoduché menu:

<nl>
   <name>Menu</name>
   <li href=“#polozka1″>První položka</li>
   <li href=“#polozka2″>Druhá položka</li>
   <nl>
      <name>Podmenu</name>
      <li href=“#polozka3″>Třetí položka</li>
      <li href=“#polozka4″>Čtvrtá položka</li>
   </nl>
</nl>

Podle návrhu normy by měl vizuální prohlížeč na začátku zobrazit pouze položku Menu. Po vybrání této položky se rozbalí menu čítající odkazy První položka a Druhá položka a položku Podmenu. Po vybrání této položky se rozbalí další podmenu s odkazy Třetí položka a Čtvrtá položka. Je tedy zřejmé, že v každé značce nl musí být uzavřen i jeden element name definující jméno daného menu.

Pevně doufám, že tento mechanismus bude skutečně dobře použitelný na různých platformách. Odstraní tak jednu z největších potíží tvůrců webu, vytváření skutečně funkčních a použitelných nabídek. Také bude velmi důležité, aby takto definovaná menu byla dostatečně variabilní a ovladatelná, aby se například pomocí CSS daly vytvářet nabídky jedinečného vzhledu.

Přestože je XHTML 2.0 teprve ve stavu prvního veřejného pracovního návrhu, je již nyní jasné, že půjde o velký krok stranou od stařičkého HTML. Jestli to bude ale zároveň krok správným směrem, ukáže až finální návrh.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět