Nedávno jsem narazil na poměrně zajímavý článek na serveru xhtml.com popisující změny v připravovaných verzích značkovacích jazyků HTML 5 a xHTML 2. Některé z nich vypadají opravdu zajímavě, jiné jsou podle mého názoru nesmyslné a spousta z nich je pouze "vata"... Článek jsem přeložil na nabídnu Vám ho k přečtení na svém blogu.

XHTML 2

Novým elementem v jazyce XHTML 2 budou takzvané Navigační seznamy. Podle mého názoru se ovšem nejedná o nějaký výrazný krok kupředu, ale pouze náhradu za striktními specifikacemi zavržený element:

<nl>
    <label>Navigace</label>
    <li href="#">Úvodní stránka</li>
    <li href="#">Link</li>
    <li href="#">Link</li>
    <li>Neaktivní link</li>
</nl>

Definičním seznamům, skládajících se z elementů <dl> (definition list)<dt> (definition term) <dt> (definition description), bude přidán element <di>, jehož účelem bude rozdělení souvisejících termínů do podskupin:

<dl>
    <di>
        <dt>center</dt>
        <dt>centre</dt>>
        <dd>a building dedicated to a part. activity</dd>
        <dd>a point equidistant from its ends</dt>
    </di>
    <di>
        <dt>key</dt>
        <dd>metal device used to open a lock</dd>
        <dd>pitch of the voice</dd>
    </di>
</dl>

Jakýkoli element může být hypertextový odkaz. V XHTML 2 může mít nyní jakákoli značka atributhref, který z ní učiní hypertextový odkaz. Zda-li je tento krok dobrý, nebo špatný, můžeme zatím pouze spekulovat... Je ale od pohledu jasné, že element <a> byl vývojáři odepsán.

<li href="/index.php">Úvodní stránka</li>

Elementy b, i, tt, small, big, acronym dále nebudou podporované. Původní článek uvádí i font, basefont a iframe, ale ty již nejsou obsaženy ani ve specifikaci striktního xhtml 1.0, takže není nutné se nad tím dále pozastavovat...

Další krok, který nepovažuji za nejchytřejší. Pokud <b> má být nahrazeno <strong> em, <i> za <em> <acronym> za <abbr>, není to nic jiného než ochuzování jazyka, a slučování značek s mírně odlišným významem. I to, že<b>je nesémantická značka a <strong> je důraz má svůj význam, a já osobně nevidím důvod, proč vždy jednu ze dvou značek zakázat.

Nová struktura nadpisů: v následující ukázce se uvedená zjednodušená struktura nadpisů a odstavců, jak se používá nyní.

<h1>...</h1> 
<p>...</p>
<h2>...</h2>
<p>...</p>
<h3>...</h3>
<p>...</p>
<h4>...</h4>
<p>...</p>
<h5>...</h5>
<p>...</p>
<h6>...</h6>
<p>...</p>

Konstrukce nadpisů v XHTML 2 bude oddělena značkou <section>, která bude nahrazovat nadpisy nižších úrovní:

<h>...</h>
<p>...</p>
<section>
    <h>...</h>
    <p>...</p>
    <section>
        <h>...</h>
        <p>...</p>
        <section>
            <h>...</h>
            <p>...</p>
        </section>
        <h>...</h>
        <p>...</p>
    </section>
    <h>...</h>
    <p>...</p>
</section>

Nový element pro výstup strojopisem <blockcode> bude sloužit jako náhrada za kombinaci tagů <pre> <code>:

<blockcode>
function ct(text){
  if (p=document.getElementById('comment')){
    p.focus();
    ;p.value+=" "+text;
  }
}
</blockcode>

Přidány nové atributy: Namísto horizontální linky <hr> bude použit separator. (Poznámka: v článku nebyl "separator" už více popsán.) Nový atribut role bude sloužit vyhledávačům pro jasnější orientaci na stránce.

To by bylo ve zkratce asi vše, co jsem se v článku dočetl o XHTML 2. Některé změny si mi líbí, jiné mi připadnou nesmyslné. Časem možná uvidíme...

X/HTML 5

Narozdíl od XHTML 1, 2, a HTML 4.01, X/HTML 5 bude možné zasílat jak s mime type text/html, tak application/xhtml+xml popřípadě application/xml. V prvním případě půjde o HTML 5, v druhém o XHTML 5. Dokument nebude muset obsahovat doctype v pravém slova smyslu a jazyk bude definován atributem lang. Jednoduchá kostra dokumentu napsaného v HTML 5 by mohla vypadat například nějak takto:

<!DOCTYPE html>
<html lang="en-GB">
  <head> <title> Lorem </title> </head>
  <body>
    <blockquote>
       <p> Lorem ipsum dolor sit amet </p>
    </blockquote>
    <p>
     Lorem ipsum dolor sit amet
    </p>
  </body>
</html>

Element header bude sloužit pro vymezení hlavičky webu: (poznámka: někoho asi trkly do hlavy ty věčně se opakující div id="header") :)

<header>
  <h1>Nadpis první úrovně</h1>
  <h2>Nadpis druhé úrovně</h2>
</header>

Přidán element dialog, sloužící pro zápis konverzace:

<dialog>
  <dt>George</dt>
  <dd>Condi! Nice to see you. What´s happening?</dd>
  <dt>Condi</dt>
  <dd>I have the report here about that new leader of China</dd>
  <dt>George</dt>
  <dd>Great, lay it on me.</dd>
  <dt>Condi</dt>
  <dd>Hu is the new leader of China.</dd>
  <dt>George</dt>
  <dd>That´s what I want to know.</dd>
  <dt>Condi</dt>
  <dd>That´s what I´m telling you.</dd>
  <dt>George</dt>
  <dd>That´s what I´m asking you. Who is the new leader of China?</dd>
  <dt>Condi</dt>
  <dd>Yes</dd>
  <dt>George</dt>
  <dd>I mean the fellow´s name.</dd>
  <dt>Condi</dt>
  <dd>Hu.</dd>
</dialog>

Element figure: bude sloužit jako obdoba titulku například k fotografii, jak tomu bývá v tištěných publikacích (noviny, časopisy):

<figure>
  <legend>Credit: Media Inc., 2007</legend>
  <img src="smith.jpg" alt="Photo: J. Smith" />
</figure>

Nový element m sloužící pro zvýraznění vyhledávaných frází - po vyhledání například slova "lorem" se vypíše kód v následující podobě:

<p><m>Lorem<m> ipsum dolor sit amet...</p>

Změna výzamu značek<i> <small> budou mít dále odlišný význam. Význam <i> už nebude pouze text kurzívou, ale například slovo řečené jiným tónem hlasu, vyňaté z kontextu, či termín z jiného jazyka.<small>bude používám například pro © Copyright.

Předdefinované třídy: X/HTML 5 bude obsahovat některé předdefinované třídy, které budou mít namísto použití v CSS další sémantický význam. Například "error", "example", "issue", "note", "search", "warning". Sám tento krok příliš nechápu, navíc to bude velké omezení tvůrců stránek při používání libovolných tříd pro CSS. (Což je i uvedeno v originálním článku jako jedna z nevýhod.) Navíc při kombinaci rezervovaných slov a vlastních tříd může vzniknout zmatek:

<p class="copyright">
 Copyright bude rezervované slovo, bude mít zvláštní význam.
</p>

<p class="important">
 Příklad třídy, která nic neznamená. 
</p>

<p class="important copyright issue">
 A co teď?
</p>

Element font: i v X/HTML 5 bude stále podporován element <font>. Bude to právě kvůli WYSIWYG editorům. Proč ale mají výjimku?

Podpis WYSIWYG editorů: weby vytvořené ve WYSIWYG editorech budou muset mít v meta tagu přesně uvedeno jméno a verzi programu.

<meta name="generator" content="Sample Editor 1.0 (WYSIWYG editor)" />

Tohle byl pouze výčet některých novinek a změn v připravovaných jazycích. Během čtení originálního článku mě ale stále vrtala hlavou jedna otázka... IE? :) Sousta drastických změn, mnoho nových elementů, ale jaká bude jejich podpora? Vždyť ještě ani XHTML 1 se správným mime-type není v dnešní době dobře použitelné. Pro Operu či Firefox nebude problém pochopit nové elementy, a vývojáři se jistě rádi přizpůsobí, jenže starý známý protivný soused Internet Explorer si opět bude dělat to, co si v té své tvrdé palici usmyslí...

Zdroje: xhtml.com, whatwg.org