Konsorcium W3C rozhodně nezahálí, stále pracuje na tvorbě nových a vylepšování stávajících standardů. Proto vznikl tento přehledový článek, mapující změny některých důležitých norem. Mimo jiné se dočtete, jak bude vypadat další verze jazyka XHTML, co nového nám umožní třetí verze kaskádových stylů a co se děje okolo XML.

W3C je bezesporu hlavním hybatelem vývoje standardů pro web. Z jeho dílny vzešly fundamentální základy webu jako (X)HTML nebo kaskádové styly. Pokud se o tomto konsorciu chcete dozvědět více, mohu vám doporučit článek Martina Snížka Nebojte se standardů! W3C samozřejmě nevytváří jenom tyto dvě specifikace, ale celou řadu dalších. O některých z nich se můžete dočíst ve článku Marka Prokopa Přehled standardů W3C. Od vydání tohoto článku již uběhl více než rok, a proto je čas si zrekapitulovat cestu, kterou za tu dobu některé z nich ušly.

XHTML

Jazyk XHTML je bezesporu nejznámější a nejrozšířenější aplikací XML. Jeho poslední verzí je zatím doporučení XHTML 1.1, kterému se celkem podařilo zbavit většiny neduhů po svých předchůdcích. Přesto W3C nehodlá přešlapovat na místě a připravuje novou verzi XHTML 2.0. Jak jsem již psal ve svém článku XHTML 2.0 – první veřejný návrh, tato verze nebude zpětně kompatibilní. Toto rozhodnutí rozbouřilo diskuze na mnoha fórech včetně toho na Intervalu a není se čemu divit. XHTML je nejdůležitějším jazykem celého webu a jakákoliv jeho změna s sebou vždy přinesla bouřlivé reakce.

Popis novinek v XHTML 2.0 najdete ve výše zmiňovaném článku. Doporučení je zatím stále ve stádiu pátého pracovního návrhu (5th Working Draft) a zbývá ještě vyřešit spoustu problémů. Na mně osobně norma působí spíše rozporuplně. Na jednu stranu oceňuji snahu W3C vytvořit skutečně silný jazyk pro psaní stránek, zohledňující všechny aspekty webdesignu, ale zároveň mi některé kroky připadají až příliš dogmatické. Například totální zapomenutí elementu img ve prospěch obecného object mi nepřijde příliš šťastné. Obrázky jsou natolik specifickou součástí webu, že by si rozhodně zasloužily ponechat vlastní element.

Dalším krokem, kterým si nejsem zcela jist, je vypuštění formulářů z XHTML doporučení a jejich nahrazení vlastním jazykem XForms. Stávající formuláře jsou podle mě jednoduchým a přitom silným nástrojem, jak získávat data od uživatelů. Nevím, jestli jejich nahrazení novou složitou XML aplikací je zrovna nejvhodnější.

Naopak Inline Text Module, ve kterém je soustředěna většina značek pro sémantické značkování textu, zůstává pro mě zcela nepochopitelně téměř beze změn. Uvažuje se pouze o vypuštění elementu strong, k čemuž nevidím žádný rozumný důvod. Mám pocit, že právě na značky pro sémantické členění textu by měl být kladen hlavní důraz.

V každém případě asi uběhne ještě hodně času, než finální doporučení XHTML 2.0 spatří světlo světa. Uvidíme, k jakým změnám za tu dobu ještě dojde.

Kaskádové styly

Stejně jako u XHTML, již delší dobu se chystá novinka i ve světě kaskádových stylů, v podobě CSS3. Už předchozí doporučení bylo poměrně komplexním dokumentem, jehož všechny možnosti zatím neimplementoval ani jeden z prohlížečů (i když Mozilla i Opera jej zvládají na velmi slušné úrovni). A CSS3 hodlá jít ještě dále.

Modularizace

Největším rozdílem oproti CSS2 je rozdělení celého CSS3 do několika nezávislých modulů, které jsou schvalovány samostatně, jde tedy o samostatná doporučení. W3C si od tohoto kroku slibuje zpřehlednění celého doporučení, včetně možnosti odkazovat zvlášť na jednotlivé moduly místo na jeden obrovský dokument. A také prohlížeče si mohou vybrat, které moduly budou podporovat.

Nové selektory

Co se týče novinek ve třetí verzi kaskádových stylů, především na nás opět čeká další dávka selektorů. Zlepšena bude práce s hodnotami atributů. Nově budeme moci využívat i negaci selektorů pomocí pseudo-třídy :not(), například selektor :not([href]) vybere všechny elementy, které nejsou zároveň odkazem.

Velký posun dopředu je patrný i v oblasti pseudo-tříd a pseudo-elementů. Půjde vybírat například elementy na základě toho, zdali obsahují určitý text, nebo v závislosti na pořadí ve svém rodičovském elementu. Takto bychom měli být schopni velmi jednoduše zařídit, aby se liché řádky tabulky vykreslovaly jinou barvou než sudé a aby první a poslední řádky byly zvýrazněny. Přibude také nová várka pseudo-tříd pro práci s prvky formulářů. Nově mohou být v selektorech brány v potaz i jmenné prostory (namespaces), z čehož lze vidět snahu přiblížit CSS více obecnému XML než jeho konkrétní aplikaci, XHTML.

Popis chování elementu

Jedna z podstatných novinek se skrývá v modulu BECSS, neboli Behavioral CSS. Jde o metodu, pomocí níž lze přiřazovat elementům pomocí klasických selektorů nikoliv pouze vzhled, ale i chování, vyjádřené prostřednictvím klientského skriptu. Náznak, jak by vše mohlo vypadat v praxi, najdete ve článku Přiřazení skriptu stylem. Pokud BECSS nalezne podporu v prohlížečích, půjde podle mého názoru o velmi užitečnou technologii. Samozřejmě ne všechny úlohy lze řešit pomocí klientského skriptování, ale například takové často používané grafické efekty jakým je třeba rollover si o takovou technologii přímo říkají.

Vícesloupcové rozvržení

V CSS3 se také poprvé setkáme s vícesloupcovým rozvržením. Odstavcům budeme moci nastavit, aby jejich obsah byl vykreslen do více sloupců namísto nynějšího jednolitého boxu. Samozřejmě půjde ovlivnit počet sloupců, mezera mezi nimi a přibudou i další vlastnosti. Uvidíme, jestli nám tato novinka také pomůže s CSS layoutem stránek, který se dnes řeší především pomocí pozicování.

Podpora stránkových médií

Nejnovějším přírůstkem do rodiny specifikací CSS3 modulů je další pracovní verze modulu Paged media, zabývajícího se podporou pro stránková média, tedy především pro tisk. Oproti CSS2 mají webdesigneři mnohem více možností, jak ovlivnit výslednou prezentaci dokumentu. Nově půjde definovat například záhlaví a zápatí, číslování stránek nebo odkazování na danou stránku pomocí jejího čísla.

Další novinky

Novinek je pochopitelně mnohem více, obvykle jde o vylepšení nebo upřesnění již stávajících vlastností. Několika zajímavých změn se dočkáme třeba v modulu Borders, který se celý točí okolo okrajů elementů. Nově budeme moci nastavit stín pod okrajem nebo zakulatit rohy.

Větší podpory se dočkají i dvě známé XML aplikace, MathML a hlavně SVG. Mimo již existujících vlastností se objeví i některé nové určené přímo pro práci s těmito jazyky.

Ačkoliv se předpokládalo, že v CSS3 budou poprvé standardizovány filtry (statické grafické efekty, více se o nich můžete dočíst třeba ve článku Statické filtry v CSS), zdá se, že tomu tak nakonec nebude. Aniž bych zde chtěl polemizovat nad jejich užitečností, domnívám se, že rozhodně nejde o zásadní ztrátu.

Podobně jako na XHTML 2.0 si ještě nějakou dobu počkáme i na CSS3. Jednotlivé moduly jsou v různých stádiích rozpracovanosti, od prvních návrhů až po finálních doporučení.

XML

Specifikace XML 1.0 se ukázala být skutečně odolným dokumentem. Od svého vydání v roce 1998 se dočkala pouze upřesňující druhé edice (XML 1.0 Second Edition), publikované v roce 2000. Ve stavu kandidáta na doporučení (Candidate Recommendation) se nachází revize XML s pořadovým číslem 1.1. A opět se ukazuje, nakolik trvanlivým a kvalitně připraveným dokumentem původní XML bylo. Změn je opravdu minimum a týkají se především podpory Unicode 3.

Zatímco se samotným XML se toho příliš neděje, situace je mnohem zajímavější u doporučení, které rozšiřují samotné XML nebo definují jazyky pro práci s ním.

Transformace

Rodina jazyků XSL (XSLT, XPath a XSL-FO) slouží k definování transformace jednoho XML dokumentu do libovolného jiného a často se používají pro převádění XML do XHTML. Jazyk XPath se používá k identifikaci jednotlivých částí XML dokumentů, které se označují pojmem uzly. Mimo transformací jej používá také například jazyk XPointer. Hlavním transformačním jazykem je XSLT. Je to aplikace XML, definující šablony, popisující samotnou transformaci XML dokumentů. Obě dvě specifikace se nyní nacházejí ve verzi 1.0, ale připravují se jejich dvojkové verze. Oba jazyky by měly vyjít současně tak, aby se mohly co nejlépe doplňovat.

XQuery

Zajímavou technologií jsou tzv. nativní XML databáze. Jde ve zkratce o úložiště XML dokumentů. Ovšem databáze nikdy nebude úplná bez svého dotazovacího jazyka. Zatímco ve světě klasických relačních databází vládne jazyk SQL, XML zatím nic podobného nemá. Zatím se dotazovací jazyk nad XML realizoval pomocí XSL transformací (tedy transformací vstupního XML dokumentu do výstupního dokumentu obsahujícího podmnožinu informací ze vstupu), W3C ale vytváří vlastní dotazovací jazyk XQuery. Momentálně je ve stádiu pracovního návrhu.

Jazyky pro odkazy

Jazyk XLink předkládá obecnou syntaxi založenou na XML pro vytváření odkazů mezi dokumenty, tedy zobecnění atributu href jazyka XHTML. Zatímco v XHTML můžeme takto definovat pouze jednosměrný odkaz, XLink nám nabízí mnohem více možností a především je použitelný v libovolném XML dokumentu. Verze XLink 1.0 je ve stádiu finálního doporučení a další se nepřipravuje. S podporou prohlížečů to ale není zrovna nejlepší, pouze Mozilla dokáže zpracovat alespoň základní typy XLink odkazů.

XPointer je samostatným rozšířením XML. Představuje syntaxi určenou pro odkazování na určitá místa v XML dokumentu v rámci URL adresy. V XHTML jsme zvyklí na odkazy URL končící znakem # a řetězcem, které odkazují na element s id='řetězec'. XPointer toho opět nabízí daleko více, například odkazování na určité elementy v XML dokumentech, ke kterým nemáme přístup a nemůžeme ovlivnit jejich ID, nebo odkazování na určité rozsahy elementů. K lokalizaci potřebných elementů používá XPointer výrazy jazyka XPath. Doporučení zatím není kompletní, jeho tři části XPointer Framework, XPointer element() scheme a XPointer xmlns() scheme jsou už finálními doporučeními, ale nejdůležitější čtvrtá část XPointer xpointer() scheme používající k lokalizaci právě jazyk XPath je stále ve stádiu pracovního návrhu.

DOM

DOM, neboli Document Object Model, je specifikací zásadního významu. Jde o programovací rozhraní nezávislé na použitém jazyce, postavené na principech objektově orientovaného programování pro dynamický přístup k elementům XML dokumentu. Své hlavní uplatnění zatím našlo především v dynamických klientských skriptech používaných v XHTML, kde alespoň trochu pomohlo pročistit džungli, která má kořeny už ve válce prohlížečů Internet Explorer a Netscape Navigator o dominaci na webu.

Poslední specifikací je DOM 2, nyní se ale připravuje třetí verze skládající se z pěti dokumentů, jejichž stav se pohybuje od pracovních návrhů až po kandidátské doporučení. Odkazy na jednotlivé dokumenty všech specifikací naleznete na stránce Document Object Model (DOM) Technical Reports.

SVG

SVG je velmi ambiciózní aplikace XML určená pro popis dvourozměrné vektorové grafiky. Její nejnovější doporučení je verze SVG 1.1. Připravuje se další verze normy SVG 1.2, která bude hlavně rozšířena o větší podporu tekoucího textu. Dokument je nyní ve stádiu třetího pracovního návrhu. Více se o SVG dozvíte například v článku Průvodce SVG a následujících.

Doufám, že jste se v té záplavě norem neztratili a článek vám poskytl přehled na poli doporučení publikovaných konsorciem W3C.

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