Hlavní navigace

Akta X: Web Forms 2.0

11. 9. 2006
Doba čtení: 5 minut

Sdílet

Koncem srpna konsorcium W3C prostřednictvím své pracovní skupiny Web Application Formats zveřejnilo první pracovní verzi specifikace Web Forms 2.0. Jedná se o rozšíření funkčnosti formulářů v HTML 4 a důležitý krok na cestě k HTML 5. Původní iniciativy výrobců prohlížečů se posléze ujalo konsorcium W3C.

Koncem srpna konsorcium W3C prostřednictvím své pracovní skupiny Web Application Formats zveřejnilo první pracovní verzi specifikace Web Forms 2.0. Tento dokument definuje rozšíření webových formulářů dobře známých z HTML 4.x a XHTML 1.x. Nápad na rošíření nepochází z W3C, ale vzešel na půdě skupiny WHATWG, kde také dodnes probíhá jeho skutečný vývoj. W3C pouze Web Forms 2.0 převzalo a zařadilo do svého specifikačního procesu. Členové WHATWG také představují jádro pracovní skupiny Web Application Formats. WHATWG sdružuje především výrobce prohlížečů; hlavní slovo ve skupině mají lidé z Opery, Mozilly a Apple.

Web Forms 2.0 vycházejí, na rozdíl od některých jiných, poněkud „ufonských” projektů W3C, důsledně z potřeb praxe. Stávající formuláře (X)HTML už dlouho výrazně zaostávají za požadavky doby. Vytvoření komfortního webového uživatelského rozhraní tak obnáší napsání mnoha řádků procedurálního kódu a často různé ajaxové triky, což je pro většinu z nás neúnosně složité. Výrobci prohlížečů realisticky neusilují o to, aby současné formuláře ve webových prohlížečích nahradila úplně jiná technologie, jako například XForms. Místo toho se pokoušejí formuláře jen rozšířit o další potřebné vlastnosti. A aby se neopakovala historie, kdy se výbcům podařilo fragmentovat trh překotným vymýšlením nových „užitečných“ funkcí, snaží se WHATWG nejdříve navrhnout sadu společných rozšíření. Od W3C je chvályhodné, že se k tomuto částečně konkurenčnímu projektu postavilo čelem, uznalo jeho užitečnost a prosazuje Web Forms 2.0 svou autoritou jako standard. To je mimo jiné také šance, aby Web Forms 2.0 a podobná rozšíření akceptoval také Microsoft, který se ve WHATWG neangažuje. Dlouhodobým cílem je vznik nového standardu HTML 5 a odpovídající verze XHTML.

Teď už se podívejme, jaké hlavní novinky Web Forms 2.0 přinášejí. Nejviditelnější změny se týkají elementu input. K současným typům ( text, password, checkboxradio,

hidden, submit, file a image) přibývá hned 14 nových. Typy date, time, datetime, datetime-local, month, weeknumber,

range, email a url představují běžná vstupní pole pro specifické typy hodnot. Jejich názvy jsou dostatečně výmluvné. Další čtyři – add, remove, move-up a move-down  – mají zvláštní význam v modelu opakujících se prvků, o kterém bude řeč později.

Elementu input přibyly také nové atributy. Atributy min a max určují minimální a maximální možnou hodnotu zadanou do pole. Atribut step definuje přesnost datových, časových a numerických typů. Atribut required říká, zda je dané pole povinné. Některé typy mohou mít atribut pattern s regulárním výrazem, jemuž musí zadaná hodnota vyhovovat.

Použití nových typů a atributů včetně toho, jak by je budoucí prohlížeče mohly implementovat, ilustrují dva následující příklady:

<input type="number" name="count"
  min="0" max="10" step="2" required="required"/>
Web1
<input type="datetime" name="start"
  min="2006-09-07 12:00:00" max="2006-09-07 12:05:00" step="60"/>
Web2

Zajímavou novinkou je element output. Jednoduše a deklarativně by umožnil to, k čemu v současnosti musíme použít span, JavaScript a DOM; tedy měnit hodnotu textu v závislosti na hodnotách zadaných do formuláře. Máme-li tři numerické inputy pojmenované setup-fee, daily-rate a days, jednoduchý kalkulátor ceny mohl vypadat třeba takto:

<output name="price"
  onforminput="value = setup-fee.value + days.value * daily-rate.value">0</output>

Ne vždy autor webu vystačí se statickými formuláři. Typický je scénář, kdy k formuláři potřebujeme přidat sadu polí pro nový záznam, odstranit sadu, měnit jejich pořadí. V HTML 4 je to spousta zábavy. Web Forms 2.0 na tuto potřebu pamatují modelem opakujících se prvků. Sada prvků, s níž chceme manipulovat, musí být uzavřena v bloku, který musí mít atribut id a nový speciální atribut repeat. Právě podle jeho přítomnosti se pozná, že se jedná o opakovací blok. Hodnotou atributu repeat je buď literál „template“, nebo celé číslo. Podle to je blok buď šablonou pro další bloky, nebo běžným blokem s pořadovým číslem patřícím k učité šabloně (explicitně pomocí atributu repeat-template nebo implicitně svou pozicí). K samotnému provádění akcí s bloky slouží už zmíněné nové typy inputu add, remove, move-up a move-down.

Model opakujících se prvků je poměrně komplexní. Používá ještě řadu dalších atributů pro stanovení mezních podmínek a potřebná rozšíření modelu DOM. Místo složitého vysvětlování radši uvedu už jen jednoduchý příklad umožňující přidávat a odebírat řádky:

<tr repeat="template" id="row">
  <td><input type="text" name="jmeno_[row]" value=""></td>

  <td><input type="text" name="prijmeni_[row]" value=""></td>
  <td><button type="remove">Odstranit</button></td>
</tr>
<tr>
  <button type="add" template="row">Přidat řádek</button>

  <button type="submit">Submit</button>
</tr>

První přidaný řádek bude mít atribut repeat="2", vložené inputy se budou jmenovat jmeno_2prijmeni_2.

Cloud 24 - tip 1

Kromě zavedení nových ovládacích prvků, rozšíření funkčnosti těch stávajících a modelu opakování přinášejí Web Forms 2.0 ještě další důležité změny. Prvky už nemusí být vnořené ve formuláři (mohou se na formulář odkazovat atributem), formuláře se mohou nořit do sebe, tlačítko Submit dokáže odeslat více než jeden formulář. Důkladně je definována a popsána procedura odeslání formuláře. Upřesněn a doplněn byl model událostí. Zajímavou novinkou je možnost inicializace formuláře externími daty (XML).

Řekl bych, že specifikace Web Forms 2.0 řeší nejpalčivější aktuální problémy s webovými formuláři rozumným způsobem, který má dobrou naději na úspěch. Uživatelé by dále mohli využívat už nabyté znalosti, vendorům bude stačit rozšířit stávající implementace. Přitom je prakticky jisté, že Mozilla, Opera a Apple s tím nebudou zbytečně otálet. Klíčovým momentem pro osud nové generace HTML tak bude přístup Microsoftu. Standardizace u W3C zvyšuje její šance, ale nic nezaručuje. Nezbývá než doufat, že ignorování webových standardů přestává být v módě.

Byl pro vás článek přínosný?