Přístupnost webu II: Jak na správnou strukturu HTML

V prvním článku „Jak správně na přístupnost webu“ našeho seriálu jsem vám popsal základní informace o tom, co byste měli při návrhu webu pro nevidomé a další hendikepované skupiny vědět. V dnešním článku Vám ukáži rozdělení HTML layoutů, jejich specifika a jak správně HTML dokument strukturovat.

HTML šablony

HTML data webu ve zdrojovém kódu zpravidla obsahují ze shora definici DTD (Doctype), poté HTML hlavičku

a ve spodní části tělo HTML dokumentu , my se zaměříme zejména na část dokumentu, kde jsou obsažena zobrazovaná data tj. tělo HTML dokumentu a dnes na její specifickou část HTML šablonu (angl. layout) bez ohledu na to, jaká data web obsahuje.

HTML šablona každého webu obsahuje zejména rozdělení objektů jako je menu, datový obsah či boční panely a patička. Aby bylo čtení co nejjednodušší pro naší cílovou skupinu, je potřeba dostat v HTML kódu důležité, základní informace o stránce, co nejvýše.

HTML šablony si můžeme pro naše potřeby rozdělit do 3 typů:

1. Rámy

Každý objekt šablony je zobrazován v tagu a pomocí atributu „src“ je načítán z externího HTML souboru. Rámy, jsou již dávnou historií a dnes pro neaktuálnost této technologie se běžně nepoužívají. Načítání externích souborů tak, abychom nemuseli např. hlavičku, a hlavní menu na každé stránce, ručně vypisovat, doporučuji spíše řešit na straně serveru, kde k tomu jsou k dispozici mnohem lepší nástroje, např. skriptovací jazyk PHP a jeho funkce „include()“ a „require()“.

2. Tabulka

Objekty jsou ve stránce rozděleny skrytou tabulkou tagem

, jeho řádky a jednotlivými buňkami v řádku
. Tabulka nám jednoduše zajistí správné pozice a roztažnost bez použití CSS stylů. Tento způsob se zdá být velice jednoduchý pro nováčka v oboru, ale je velice nepraktický v případě, kdy chceme objekty po HTML kódu posouvat či přehazovat bez poškození grafiky webu.

3. Divy

Každý objekt šablony je zabalen do tagu

a CSS styly jsou objekty umisťovány do grafiky. Divy jsou dnes nečastěji používané pro rozdělení objektů po grafice webu. V CSS stylech si můžeme „hrát“ a jednoduše prohazovat objekty v grafice tak, že například to, co vidíme v HTML kódu úplně dole, zobrazíme v grafice úplně nahoře apod. Prohazování objektů nám zjednoduší práci s rozdělením důležitého objektu pro zdravého uživatele a pro nevidomého. Budeme tento typ brát jako dnešní standard a budeme se jím zabývat i nadále.

Jak na správný HTML dokument

Každá strana webu, má dle mezinárodních standardů obsahovat hlavní nadpis stránky

, ten má být na každé stránce webu unikátní a použit právě jednou. Tag h1 nesmíme použít ve stránce vícekrát. Hlavní nadpis bychom pro nevidomé měli dát hned pod tag a to tak, aby byla hendikepovanému návštěvníkovi ihned na začátku čtení dokumentu sdělena informace na jaké stránce, se která informace nachází. Pod Hlavním nadpisem by měly být hlavní data, které chceme uživateli přednést (např. když zobrazujeme článek na webu, tak text článku by měl mít v HTML kódu hned po hlavním nadpisem). Pod hlavními daty by se měla nacházet navigace (menu), které umožní uživateli další postup po webu. Až teprve po zobrazení těchto důležitých informací by měly následovat boční panely zobrazující reklamní bannery, nedůležité informace apod.

Jak správně usazovat objekty po grafice webu


Obrázek 1 – Grafické schéma ukázky

Naším dnešním cílem v ukázce bude vytvořit základní šablonu dle schématu. HTML dokument tedy bude obsahovat v horní části menu (horizontální menu). Po levé straně budeme mít Hlavní data (text) stránky, tento objekt musí být roztažitelný směrem dolů, dle objemu dat v objektu. Po pravé straně budeme mít Boční panel, pro umístění např. reklamních bannerů či nedůležitých informací. Každý web by měl mít také patičku, do které se vkládá např. definování autorských práv.

Pomocí CSS stylů „Float“


Obrázek 2 – Klasické využití Float

Ve zdrojovém kódu na obrázku 2 vidíme dnes běžný zdrojový kód HTML dokumentu, který je dle standardu W3C správně, ale pro nevidomého předkládáme Menu s Reklamním bannerem před daty, které ve skutečnosti chtěl vědět. Musí tedy zbytečně čekat, až mu hlasový syntezátor přečte informace výše uvedené, než se dostane k informaci, kterou chtěl a pak doufat, že čekání nebylo zbytečné a dostal důležitou informaci.

Absolutní pozicování a přehození pořadí objektů


Obrázek 3 – Absolutní pozicování

Na obrázku 3 vidíme HTML dokument s využitím absolutního pozicování. Tímto stylem zápisu můžeme upřednostnit v pořadí náš hlavní nadpis stránky s hlavním textem stránky před ostatními objekty, přitom v grafice pro zdravého uživatele zobrazujeme Menu stále v horní části stránky. Pokud objektu nastavíme v CSS stylech position:absolute; říkáme tím, že objekt bude nastaven v pozici od horního levého rohu prohlížeče a můžeme poté využít styly top a left.

Pokud jeden z rozměrů nenastavíme, tak se bere z aktuální pozice objektu, můžeme této funkcionality využít v případě, kdy chceme jako v tomto případě dostat v grafice objekt úplně nahoru nastavením position:absolute;top:0;

Pro objekty hlavní text stránky a boční panel, musíme poté nastavit odsazení shora dle výšky menu pomocí margin-top. Pro zachování roztažnosti objektu s hlavním textem je potřeba patičce opět nastavit vyčištění float CSS stylem clear:both. Nevidomému hlasový syntezátor začne ze shora číst hlavní nadpis a hned poté hlavní text stránky, uživatel tedy není trápen pro něj nedůležitými informacemi.

A co SEO?

Pokud použijeme absolutní pozicování a do hlavního nadpisu stránky (html tag „h1“) vložíme klíčové slovo, na které chceme optimalizovat stránku pro vyhledávače, připravíme si vhodně strukturovaný a optimalizovaný text do objektu pro hlavní text stránky. Tak jsme vyhráli dvakrát, protože jsme připravili stránku pro jednoduché čtení hendikepovanými uživateli a ještě jsme si pomohli u marketingové záležitosti jako optimalizace pro vyhledávače.

Na další díly seriálu se můžete těšit po Novém roce.