Hlavní navigace

Akta X: Web Forms 2.0

Petr Cimprich 11. 9. 2006

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.

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ě.

Našli jste v článku chybu?

11. 9. 2006 9:05

vd (neregistrovaný)
Bohuzel myslim, ze ten kdo videl duvod uz presel, kdo ho nevidel (nevidi) neprejde ani v budoucnu. V tom je cely problem. Bohuzel v reklame v New York Times nemuzete pres celou stranku napsat: "MSIE je SRACKA, protoze nedodrzuje standardy! Spred FireFox. Take web back!" Kdyby Microsoft chtel, tak potrebne upravy kodu MSIE 6 zahrne do nejakeho service packu, bohuzel misto toho pridal jen (z pohledu webdesigneru) blokovani otevirani oken a nejakou radoby ochranu proti phisingu.

12. 10. 2008 10:05

Rudidlo (neregistrovaný)
DO W3C se dokáže každý trefovat, stejně jako do jejich členů (např. do Microsoftu, který se na tvorbě doporučení taktéž podílí).

Microsoftu není vytýkáno, že jejich prohlížeč nedodržuje standardy. Microsoftu je hlavně vytýkán sprasený box model, který musí řada webdesignerů opravovat pomocí různých mnohdy nevalidních hacků.

A co se kritiky W3C stran rušení některých elementů nebo atributů týče - jednak máme k dispozici doctype a můžeme generovat (X)HTML/XML kód dle vlastního výběru. V programo…



Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Platební brány a EET? Stále s otazníkem

Platební brány a EET? Stále s otazníkem

Vitalia.cz: Vláknina: Rozpustná, nebo nerozpustná?

Vláknina: Rozpustná, nebo nerozpustná?

Podnikatel.cz: Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Vitalia.cz: Jak koupit Mikuláše a nenaletět

Jak koupit Mikuláše a nenaletět

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: Dárky v podnikání. Jak je uplatnit v daních?

Dárky v podnikání. Jak je uplatnit v daních?

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu