neděle 4. května 2008

Alt u obrázku (ne)povinný?

Už několikátý měsíc pokračuje debata na celkem banální téma. Týká se totiž jednoho jediného atributu. A přesto se výsledek zdá být v nedohlednu. Ano, bavíme se o tom, zda u obrázků má být atribut alt i nadále povinný či nikoliv.

Editor HTML5 Ian Hickson se spolu s dalšími snaží v pracovní skupině obhájit názor, že atribut alt by v HTML5 neměl být povinný. Výsledek? Pracovní skupina je stručně řečeno nejednotná.

Celá diskuse je již v tuto chvíli značně nepřehledná (vybírám jen několik vláken, ve skutečnosti je jich mnohem víc: alt and authoring practices, request for review of alt and alt value for authoring or publishing tools, testing the theory that required alt = bad, alt crazyness).

Cílem zastánců nepovinného altu je nejen odlišit situaci, kdy obrázek nese informaci a má mít svou textovou podobu (obrázek s altem) od obrázku, který tuto informaci nenese (obrázek bez altu), ale hlavně přiznat si, že se nejedná o věc strojově kontrolovatelnou, a že se tedy jedná o věc, která nespadá do základních vlastností (X)HTML jazyka jako takového, jako spíše do oblasti nástrojů pro kontrolu přístupnosti stránek. Tyto nástroje mohou validátor doprovázet (a HTML5 validátor jeden takový nástroj obsahuje, viz dále), ale měly by být jasně odděleny od syntaktické kontroly.

Ono se v (X)HTML nejedná o ojedinělý případ. Malé srovnání. Pokud na stránce použijete značku script, používáte něco, co jistě není přístupné, ale automaticky nelze určit, zda tím bude znepřístupněna celá stránka či nikoliv (až sem je asi podoba s obrázkem zřejmá). Specifikace vás ovšem nenutí vedle každé značky script povinně použít značku noscript (podobně jako alt u obrázku), ale místo toho jsou weboví vývojáři učeni používat skriptování tak, aby přístupnost stránek nebyla dotčena (a to se docela daří). Volitelná značka noscript je jen jednou z možností, jak toho dosáhnout.

Zastánci povinného altu jsou ovšem jiného názoru. Obě strany se tak snaží z webu udělat web přístupnější. Jen se nejspíš vzájemně nechápou. Jedni by rádi, aby webdesigneři byli nuceni psát atribut alt všude, zatímco ti druzí by rádi, aby webdesigneři používali atribut alt správně. Srovnání těchto dvou pohledů ponechám na čtenáři. Jsem sám zvědav, kdy se jim podaří nalézt společnou řeč.

Zkusil jsem si malý pokus. Vybral jsem si stránku, která je validní XHTML 1 Strict (první, která mě napadla, takže www.weblogy.cz, neberte si to nikdo osobně) a podíval jsem se na analýzu používání obrázků na této stránce. Použil jsem analýzu, která je součástí vyvíjeného HTML5 validátoru, ve výsledcích přeskočte HTML5 chyby (ty nás nezajímají, stránka není v HTML5 8-) a sjeďte až dolů k nadpisu Image report.



Jak sami můžete vidět, některé obrázky na stránce mají vyplněn atribut alt velmi vhodně, zatímco o řadě dalších se to říct nedá. Validátor (ne)vhodnost nerozezná. Otázkou (byť ne jednoznačnou) pak je, když i zkušení webdesigneři v tomto chybují, zda je stávající řešení altu vynucovaného specifikací a validátorem to správné.

Proto ať již debata na téma alt dopadne jak dopadne, jsem rád, že se tohle palčivé téma řeší. Byť bych byl mnohem radši, když by se neřešilo tak dlouho.

Související
Budu rád, pokud k problematice připojíte svůj odborný komentář, vyvarujte se ale prosím emotivních výjevů, stačí, že se na toto (zřejmě citlivé) téma občas objevují i u členů pracovní skupiny.

10 komentářů:

  1. Atribut ALT je de facto nepovinný, neboť pravdila přístupnosti v mnoha případech doporučují/přikazují mu přiřadit prázdnou hodnotu. Takže zbývá ho učinit nepovinným i de iure.

    OdpovědětVymazat
  2. podle mne by tento atribut měl být povinný, protože díky použití css by již dnes měly být všechny obrázky být použity jako "ilustrace" a obrázkové odrážky, obrázkové nadpisy a další obrázky použité jako součást designu by se měly řešit jako css pozadí příslušného prvku a ne jako tag img, navíc valná většina webů je již generována různými redakčními systémy a tudíž snadno generována

    OdpovědětVymazat
  3. Abych pochopil, kde se v tomto tématu bere prostor k diskusi, asi budu muset navštívit samotné thready...

    Protože pokud alt slouží k textové interpretaci sémantické hodnoty obrázku a někdo přitom hlásá, že alt by měl být povinný, zároveň tím hlásá, že každý obrázek nese [nepostradatelné] sdělení. Což je přece evidentně mylné.

    Taky nevím jak zřetelný je fakt, že z hlediska přístupnosti je existence altu s nadbytečnou informací kontra-produktivní...

    OdpovědětVymazat
  4. 2 kahi: nicmene v idealnim pripade by takovy obrazek (ktery nenese semantickou hodnotu) nemel byt vubec v markupu jako IMG a tudiz u nej otazka ALT/neALT odpada... takze ja bych to videl na povinny ALT.

    OdpovědětVymazat
  5. @Daniel Kvasnička: takže nějaký prostor tady přece jen bude. Co říkáš, zní rozumně. Problémem může být léty utvrzená konvence, že ať už je obrázek (který je součástí obsahu) sdělující anebo dekorativní/ilustrující, autor obsahu i cms k němu vždy přistupuje jako k obrázku ve smyslu img.

    K tomuto se doufám ještě někdo vyjádří, vypadá to na zajímavý problém...

    OdpovědětVymazat
  6. Velice trefné srovnání s (no)script ;-) Jinak jsem taky spíš pro nepovinnost, vynucený alt nevýznamového obrázku s prázdným obsahem mi jako dokonalost nepřijde.

    OdpovědětVymazat
  7. Už delší dobu si myslím, že povinný alt, který ovšem v případě dekorativního obrázku má mít podle pravidel přístupnosti prázdnou hodnotu, je totální nesmysl. Logické jsou dva závěry: buď ho ponechat povinný, ale potom by měl mít vždy vyplněnou hodnotu (tj. vůbec nepřipustit možnost nevýznamového obrázku), nebo ho nechat nepovinný. První variatna je idealismus, současný stav je zase paskvil.

    OdpovědětVymazat
  8. Zabudate, ze mali by sme pisat semanticky HTML kod, to znamena, ze ziadne obrazky v kode nie su pre design, teda nesu informacie. Design obrazky sa vkladaju cez CSS, a nie cez HTML.

    OdpovědětVymazat
  9. Mně povinný alt vůbec nevadí, když může týt i prázdný, tak je to OK. Je pravda, že chybějící atribut je to samé co prázdný, ale jinak proč ne. Takových věcí má HTML víc. Prostě jako v každém oboru, budiž standard a my se s ním nějak popereme, ale máme o co se opřít.

    OdpovědětVymazat
  10. Ještě by zasloužilo dodat, že v HTML5 není alt jediná možnost, jak přidat popis obrázku. Tou druhou možností je použít novou značku figure, do ní vložit obrázek a jeho popisek přidat do značky legend. V takovém případě může být často alt již opravdu i sémanticky zbytečný.

    K těm úvahám "obrázek bez informace do HTML nepatří" bych dodal, že to právě záleží na přístupu HTML a jak bude specifikováno. Pokud specifikace takovou možnost povolí (shodou okolností HTML5 se ji snaží povolit), pak je takové použití obrázku v naprostém pořádku. - Tedy v pořádku s ohledem na jazyk (X)HTML, zda je výsledek přístupný, to už spíše patří do pravidel přístupnosti.

    OdpovědětVymazat

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.