Blame accessibility-devel-guide/cs/index.docbook

Packit 1470ea
Packit 1470ea
Packit 1470ea
Packit 1470ea
Packit 1470ea
Packit 1470ea
Packit 1470ea
Packit 1470ea
Packit 1470ea
]>
Packit 1470ea
Packit 1470ea
<book id="index" lang="cs">
Packit 1470ea
<title>Vývojářská příručka ke zpřístupnění GNOME</title>
Packit 1470ea
<bookinfo>
Packit 1470ea
<abstract role="description">
Packit 1470ea
<para>Příručka ke zpřístupnění GNOME je určena pro vývojáře, kteří chtějí mít jistotu, že výsledek jejich programování bude přístupný širokému okruhu uživatelů. Příručka také pokrývá řadu požadavků článku 508 vlády USA.</para>
Packit 1470ea
</abstract>
Packit 1470ea
<copyright><year>2008</year> <holder>Vincent Alexander</holder></copyright>
Packit 1470ea
<copyright><year>2001, 2002</year> <holder>Calum Benson, Brian Cameron, Bill Haneman, Padraig O'Briain, Sharon Snider</holder></copyright>
Packit 1470ea
<publisher role="maintainer"> 
Packit 1470ea
<publishername>Dokumentační projekt GNOME</publishername> 
Packit 1470ea
</publisher>
Packit 1470ea
<legalnotice id="legalnotice">
Packit 1470ea
<para>Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU Free Documentation License (GFDL), verze 1.1 nebo jakékoli novější verze vydané nadací Free Software Foundation, bez neměnných oddílů, bez textů předních desek a bez textů zadních desek. Kopie GFD můžete najít <ulink type="help" url="ghelp:fdl">zde</ulink> nebo v souboru COPYING-DOCS dodávaném s touto příručkou.</para>
Packit 1470ea
<para>Tato příručka je součástí kolekce příruček GNOME, distribuovaných pod licencí GFDL. Pokud chcete tento dokument šířit odděleně od kolekce, musíte přiložit kopii licence dle popisu v sekci 6 této licence.</para>
Packit 1470ea
<para>Řada názvů užívaných firmami ke zviditelnění jejich produktů nebo služeb jsou registrované ochranné známky. Na místech, kde jsou tyto názvy v dokumentaci použity a členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se jedná o ochrannou známku, je takový název psán velkými písmeny celý nebo s velkým písmenem na začátku.</para>
Packit 1470ea
<para>DOKUMENT A JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM USTANOVENÍM: <orderedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>DOKUMENT JE POSKYTOVÁN V PODOBĚ „JAK JE“ BEZ ZÁRUKY V JAKÉKOLIV PODOBĚ, NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENÁ VERZE, JE BEZCHYBNÝ, NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL NEBO NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, NEBO JEHO UPRAVENÉ VERZE, LEŽÍ NA VÁS. POKUD KVŮLI TOMUTO DOKUMENTU, NEBO JEHO UPRAVENÉ VERZI, NASTANE PROBLÉM, VY (NIKOLIV PŮVODNÍ AUTOR NEBO JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE JAKÉKOLIV NÁKLADY ZA NUTNÉ ÚPRAVY, OPRAVY ČI SLUŽBY. TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST TÉTO LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ, PODLE TÉTO DOHODY, POVOLENO TENTO DOKUMENT UŽÍVÁT ANI UPRAVOVAT; DÁLE</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O PŘEČIN (VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, KTERÝKOLIV PŘISPĚVATEL NEBO KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z TĚCHTO STRAN ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ ŠKODY JAKÉHOKOLIV CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ FUNKCE POČÍTAČE NEBO JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE K POUŽÍVÁNÍ TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI TAKOVÉHOTO POŠKOZENÍ.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</orderedlist></para>
Packit 1470ea
</legalnotice>
Packit 1470ea
 
Packit 1470ea
<authorgroup> 
Packit 1470ea
<author><firstname>Vincent</firstname> <surname>Alexander</surname> <affiliation> <orgname>Dokumentační projekt GNOME</orgname> </affiliation></author>
Packit 1470ea
<author><firstname>Calum</firstname> <surname>Benson</surname> <affiliation> <orgname>Dokumentační projekt GNOME</orgname> </affiliation></author>
Packit 1470ea
<author><firstname>Brian</firstname> <surname>Cameron</surname> <affiliation> <orgname>Dokumentační projekt GNOME</orgname> </affiliation></author>
Packit 1470ea
<author><firstname>Bill</firstname> <surname>Haneman</surname> <affiliation> <orgname>Dokumentační projekt GNOME</orgname> </affiliation></author>
Packit 1470ea
<author><firstname>Padraig</firstname> <surname>O'Briain</surname> <affiliation> <orgname>Dokumentační projekt GNOME</orgname> </affiliation></author> 
Packit 1470ea
<author><firstname>Sharon</firstname> <surname>Snider</surname> <affiliation> <orgname>Dokumentační projekt GNOME</orgname> </affiliation></author>
Packit 1470ea
</authorgroup>
Packit 1470ea
<revhistory>
Packit 1470ea
<revision><revnumber>Vývojářská příručka V2.24.0 ke zpřístupnění GNOME 2.24</revnumber> <date>září 2008</date> <revdescription> 
Packit 1470ea
<para role="author">Dokumentační projekt GNOME</para> 
Packit 1470ea
<para role="publisher">Dokumentační projekt GNOME</para> 
Packit 1470ea
</revdescription></revision>
Packit 1470ea
<revision><revnumber>Vývojářská příručka V2.24.0 ke zpřístupnění GNOME 2.24</revnumber> <date>září 2008</date> <revdescription> 
Packit 1470ea
<para role="author">Dokumentační projekt GNOME</para> 
Packit 1470ea
<para role="publisher">Dokumentační projekt GNOME</para> 
Packit 1470ea
</revdescription></revision>
Packit 1470ea
</revhistory>
Packit 1470ea
<releaseinfo>Tato příručka popisuje pracovní prostředí GNOME ve verzi 2.24.</releaseinfo>
Packit 1470ea
<legalnotice> 
Packit 1470ea
<title>Ohlasy</title> 
Packit 1470ea
<para>Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k pracovnímu prostředí GNOME nebo této příručce, postupujte dle instrukcí v <ulink type="help" url="ghelp:user-guide?feedback">kapitole Ohlasy v uživatelské příručce GNOME</ulink>.</para>
Packit 1470ea
</legalnotice> 
Packit 1470ea
</bookinfo>
Packit 1470ea
<chapter id="gad" status="draft">
Packit 1470ea
<title>Co je to zpřístupnění</title>
Packit 1470ea
<para>Zpřístupnění znamená pomoc lidem s postižením, aby se mohli účastnit běžných každodenních činností. Což zahrnuje práci a využívání služeb, věcí a informací. Součástí GNOME jsou knihovny a podpůrný základní rámec umožňující lidem s postižením používat veškerou funkcionalitu uživatelského pracovního prostředí GNOME.</para>
Packit 1470ea
<para>Ve spojení s asistenčními technologiemi – hlasovým rozhraním, čtečkou obrazovky, alternativním vstupním zařízením, apod. – v případě potřeby mohou lidé s trvalým nebo dočasným postižením i navzdory svému postižení používat pracovní prostředí GNOME a aplikace. Asistenční technologie se mohou hodit i ostatním lidem, když jsou mimo domov nebo kancelář. Například v dopravní zácpě můžete využít hlasový vstup a výstup ke kontrole své elektronické pošty.</para>
Packit 1470ea
<para>Asistenční technologie získávají informace od aplikací pře API ATK (Accessibility Toolkit), který můžete najít v modulu atk v repozitářích GNOME. Díky tomu, že je podpora pro API zpřístupnění vestavěná ve widgetech GNOME, měly by vaše programy pro GNOME fungovat s asistenčními technologiemi poměrně dobře i bez nějakého přispění z vaší strany. Například umí asistenční technologie automaticky číst popisky widgetů, které ve svém programu nastavujete tak jako tak (např. pomocí zavolání funkce jako je <function>gtk_label_set_text()</function> nebo <function>gtk_button_new_with_label()</function>). Umí také zjistit, jestli je k widgetu přiřazena nějaká vysvětlivka a použít ji k popisu widgetu uživateli.</para>
Packit 1470ea
<para>Když věnujete trochu úsilí navíc, může váš program fungovat s asistenčními technologiemi ještě lépe. Mimo toho, že tím pomůžete jednotlivým uživatelům, zatraktivníte tím svůj výtvor také pro vládní a školské zakázky, nehledě na to, že zpřístupnění v těchto případech mnohdy požaduje zákon.</para>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Typy postižení</title>
Packit 1470ea
<para>Jen v samotné české republice je odhadem přes milión lidí s postižením, kterým může být používání počítače ztíženo kvůli nepřístupnému návrhu softwaru. Globálně má okolo 8 % lidí, který používají webové stránky, nějaký druh postižení. Jednotlivá postižení spadají do některé z těchto kategorií:</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para><emphasis>Zraková postižení</emphasis> – může se pohybovat od zhoršeného vidění (včetně, mimo jiné, šerosleposti, silné krátkozrakosti nebo dalekozrakosti, barvosleposti a tunelového vidění) po úplnou slepotu. Špatná volba velikosti textu a barev a úlohy vyžadující přesnou koordinaci ruky a oka (jako pohyb myší) mohou těmto lidem způsobovat problémy.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para><emphasis>Pohybové postižení</emphasis> – pro uživatele se špatným ovládáním svalstva nebo svalovou distrofií může být obtížné používat standardní klávesnici nebo myš. Například nemohou zmáčknout dvě klávesy současně nebo mohou s větší pravděpodobností zmáčknout klávesu nechtěně.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para><emphasis>Sluchová postižení</emphasis> – může se pohybovat od schopnosti slyšet nějaké zvuky, ale nedokázat rozpoznat slova, po úplnou hluchotu. Aplikace, které podávají podstatné informace jen ve zvukové podobě, mohou těmto uživatelům působit problémy.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para><emphasis>Poruchy rozpoznávání a jazykové</emphasis> – mohou se pohybovat od dyslexie po obtíže s pamatováním věcí, řešením problémů nebo chápáním a používání mluveného či psaného jazyka. Komplikované nebo nekonzistentní zobrazení či špatná volba slov mohou těmto uživatelům ztížit používání počítače.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para><emphasis>Poruchy vnímání</emphasis> – určité druhy světel nebo zvuků mohou způsobit u vnímavějších uživatelů epileptický záchvat.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="gad-how-it-works">
Packit 1470ea
<title>Jak zpřístupnění funguje v GNOME</title>
Packit 1470ea
<para>ATK (Accessibility Toolkit – sada nástrojů zpřístupnění) popisuje sadu rozhraní, která musí být implementována v komponentách GUI, aby byly přístupné. Rozhraní jsou nezávislá na vývojářských sadách – implementaci je možné napsat pro libovolnou množinu widgetů, jako je GTK, Motif nebo Qt.</para>
Packit 1470ea
<para>Implementace pro widgety GTK je v modulu nazývaném GAIL (GNOME Accessibility Implementation Library), který je dynamicky načítán za běhu aplikacemi GTK. Když je načten, tak části vaší aplikace, které používají standardní widgety GTK, budou mít základní úroveň zpřístupnění, aniž by bylo v aplikaci potřeba cokoliv upravovat. Když knihovna GAIL není načtená, budou mít widgety GTK výchozí implementaci zpřístupnění, která v podstatě nevrací žádné informace, i když formálně vyhovují API ATK. Aplikace, které používají ovládací prvky Bonobo, zejména ty nezpracovávané, rovněž načtou kód pro podporu zpřístupnění z modulu libgail-gnome. To, jestli aplikace v pracovní prostředí GNOME automaticky načte nebo nenačte knihovny s podporou zpřístupnění, závisí na hodnotě klíče <application>gconf</application> „/desktop/gnome/interface/accessibility“. Pravdivostní hodnota „true“ zapne podporu pro asistenční technologie a aplikace, které volají gnome_program_init automaticky za běhu načtou příslušné knihovny zpřístupnění. Aplikace čistě s GTK+, například ty, které používají gtk+, ale nejsou slinkovány s libgnome, musí spoléhat na hodnotu proměnné prostředí GTK_MODULES, která musí být nastavená na „gail:atk-bridge“, aby se zapnula podpora asistenčních technologií.</para>
Packit 1470ea
<para>Většina asistenčních technologií, které běží v jiných pracovních prostředích, zjistila, že je z historických důvodů potřeba se starat o složitý mimoobrazovkový model běžící aplikace založený na zachytávání událostí OS, o používání nepodporovaných OS a aplikačních funkcí a API a o silně nepřenositelné techniky. To udělalo z podpory asistenčních technologií něco snadno rozbitelného a značně závislého na OS a aplikaci, nebo dokonce verzi aplikace. Oproti tomu v pracovním prostředí GNOME jsou všechny informace požadované AT poskytovány běžící aplikací přes základní rámec přístupnosti do SPI (Service Provider Interface) nezávislého na použité nástrojové sadě. SPI poskytuje prostředky pro unixové asistenční technologie, jako je čtečka obrazovky a lupa obrazovky, aby získaly informace o zpřístupnění od běžících aplikací přes jednotné a stabilní API, a ve většině případů dokáže vyloučit potřebu mimoobrazovkového modelu. Podpora zpřístupnění pro aplikace je „zabudovaná“ v nástrojové sadě pro vývoj aplikací pomocí příslušného API (např. ATK pro většinu nativních aplikací v jazyce C a Java Accessibility API pro aplikace v jazyce Java) a exportována do běžného rozhraní „AT-SPI“ přes příslušný „most“ (viz schéma níže).</para>
Packit 1470ea
<figure id="gad-architecture">
Packit 1470ea
<title>Architektura zpřístupnění v GNOME</title>
Packit 1470ea
<mediaobject><imageobject><imagedata fileref="figures/GNOME_desktop_Accessibility.png" format="PNG"/></imageobject> <textobject><phrase>Schéma architektury zpřístupnění v GNOME</phrase></textobject></mediaobject>
Packit 1470ea
</figure>
Packit 1470ea
<para>Vestavěná podpora zpřístupnění v GNOME znamená, že aplikace vytvořené pomocí standardních widgetů GNOME dostávají podporu pro asistenční technologie „zdarma“ za předpokladu, že widgety nejsou používány neobvyklým způsobem, které by byl v konfliktu s touto vestavěnou podporou.</para>
Packit 1470ea
<para>Widget gtk+/GNOME je zpřístupněný, pokud dodržuje obecná pravidla zpřístupnění uvedená v tomto dokumentu a implementuje rozhraní ATK odpovídající jeho roli v uživatelském rozhraní. Implementace ATK jsou poskytovány pro standardní widgety nástrojové sady GNOME (např. nezastaralé widgety gtk+ a GNOME) a nové widgety, které jsou jednoduše odvozeny ze stávajících widgetů GTK+ nebo GNOME, patřičnou podporu zpřístupnění většinou zdědí. </para>
Packit 1470ea
<para>Ačkoliv vestavěná podpora zpřístupnění v GNOME poskytuje podstatnou funkcionalitu bez nutnosti úpravy částí kódu speciálně pro zpřístupnění, aplikace často vylepšují výchozí popisy pro některé widgety a přizpůsobují je na míru konkrétnímu účelu aplikace pomocí přímého volání metod ATK v aplikaci. Například, ve většině případů by aplikace měly přidat nebo změnit textové popisy u widgetů pomocí příslušného volání funkce ATK, aby asistenční technologie mohly popsat jejich účel nebo stav uživateli. Více informací viz <link linkend="gad-coding-guidelines">Příručka ke kódování s podporou zpřístupnění</link>.</para>
Packit 1470ea
<para>Pokud vaše aplikace používá vlastní widgety, můžete mít nějakou práci s předáváním vlastností těchto widgetů asistenčním technologiím. Více informací viz <link linkend="gad-custom">Zpřístupnění vlastních komponent</link> a <link linkend="gad-api-examples">Příklady, které používají API zpřístupnění</link>.</para>
Packit 1470ea
<para>Další informace ohledně GTK/GTK+ jdoucí více do hloubky najdete v <ulink url="http://library.gnome.org/devel/gtk">referenční příručce GTK+</ulink>, v <ulink url="http://live.gnome.org/GAP/AtkGuide/Gtk">příručce k ATK v části o GTK</ulink>, ve <ulink url="http://library.gnome.org/devel/gtk-tutorial/stable/">výuce GTK+ 2.0</ulink> na webu GNOME a v oficiálních <ulink url="http://library.gnome.org/devel/gtk-faq/stable/">častých dotazech a odpovědích GTK+</ulink>.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="dev-start">
Packit 1470ea
<title>Rychlý úvod pro vývojáře</title>
Packit 1470ea
<para>Zde je pár věcí pro začátek:</para>
Packit 1470ea
Packit 1470ea
<section id="dev-start-1">
Packit 1470ea
<title>Jak si mohu ověřit, jestli je má aplikace přístupní či nikoliv?</title>
Packit 1470ea
<para>Abyste správně začali, podívejte se nejdříve na <link linkend="gad-overview">Jak udělat aplikace v GNOME přístupné – přehled</link>. Než začnete psát kód, získejte přehled v <link linkend="gad-ui-guidelines">Pokyny k uživatelskému rozhraní ohledně podpory zpřístupnění</link> nebo v <link linkend="gad-coding-guidelines">Příručce k programování s podporou zpřístupnění</link>. Kontrolní seznam pro testování, až skončíte s psaním kódu, najdete v <link linkend="gad-checklist">Kontrolní seznam pro uživatelské rozhraní</link>.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="dev-start-2">
Packit 1470ea
<title>Jaké jsou nejběžněnší nástrahy?</title>
Packit 1470ea
<para><link linkend="gad-checklist">Kontrolní seznam pro uživatelské rozhraní</link> pokrývá všechny oblasti, které jsou občas přehlédnuty ve stádiu návrhu.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="dev-start-3">
Packit 1470ea
<title>Jak můžu udělat běžné věci v ATK?</title>
Packit 1470ea
<para>Stručný seznam běžných volání ATK najdete <link linkend="gad-api">zde</link>.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="dev-start-4">
Packit 1470ea
<title>Jak můžu udělat složitější věci v ATK?</title>
Packit 1470ea
<para>Další informace viz <link linkend="gad-custom">Zpřístupnění vlastních komponent</link> a <link linkend="gad-api-examples">Příklady, které používají API zpřístupnění</link>.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="dev-start-5">
Packit 1470ea
<title>Úvod do ATK, AT-SPI, GAIL a GTK+</title>
Packit 1470ea
<screenshot>
Packit 1470ea
<mediaobject><imageobject> <imagedata fileref="figures/gaa.jpg"/> </imageobject> <textobject> <phrase>Architektura zpřístupnění v GNOME</phrase> </textobject></mediaobject>
Packit 1470ea
</screenshot>
Packit 1470ea
<para>ATK je sada nástrojů, které používá GNOME k zajištění přístupnosti pro uživatele, kteří potřebují speciální podporu, aby mohli používat svůj počítač. ATK je používáno nástroji, jako je čtečka obrazovky, lupa obrazovky a vstupní zařízení, zajišťujícími plnohodnotnou práci v pracovním prostředí alternativními způsoby. Další informace viz <ulink url="http://java-gnome.sourceforge.net/4.0/doc/api/org/gnome/atk/package-summary.html">projekt ATK na SourceForge</ulink> a <ulink url="http://library.gnome.org/devel/atk/stable/">knihovna ATK</ulink>.</para>
Packit 1470ea
<para>AT-SPI je hlavní rozhraní služby, přes kterou se asistenční technologie dotazují a přijímají upozornění od běžících aplikací. Kompletní API si můžete projít <ulink url="http://library.gnome.org/devel/at-spi-cspi/stable/">zde</ulink>. Doplňující materiály jsou dostupné od <ulink url="http://accessibility.kde.org/developer/atk.php#coreclasses">komunity KDE vyvíjející zpřístupnění</ulink>.</para>
Packit 1470ea
<para>GAIL (GNOME Accessibility Implementation Library) je implementací rozhraní zpřístupnění definovaného v ATK. GTK je nástrojová sada, která je již namapovaná na ATK pomocí modulu GAIL. Licenci, věci ke stažení a další informace můžete najít <ulink url="http://www.t2-project.org/packages/gail.html">zde</ulink>. Jako vynikající zdroj informací pro pokročilé využití ATK  slouží i <ulink url="ftp://ftp.gnome.org/pub/GNOME/sources/gail/">zdrojový kód GAIL</ulink>. Ještě by vás mohla zajímat <ulink url="http://library.gnome.org/devel/gail-libgail-util/stable/">referenční příručka GAIL</ulink>.</para>
Packit 1470ea
<para>GTK+ je knihovna pro vytváření grafického uživatelského rozhraní. Funguje na řadě platforem unixového typu, ve Windows a na zařízeních používajících framebuffer. GTK+ je vydána pod licencí GNU Library General Public License (GNU LGPL), která umožňuje flexibilní licencování pro klientské aplikace. GTK+ má objektově orientovanou architekturu napsanou v jazyce C, která umožňuje maximální pružnost. Je napsáno napojení na další jazyky, včetně C++, Objective-C, Guille/Scheme, Perl, Python, TOM, Ada95, Free Pascal a Eiffel.</para>
Packit 1470ea
<para>Další informace o GTK/GTK+ jdoucí více do hloubky najdete v <ulink url="http://library.gnome.org/devel/gtk">Referenční příručce GTK+</ulink>, v <ulink url="http://wiki.gnome.org/Accessibility/Documentation/GNOME2/AtkGuide/Gtk">části o GTK v příručce ATK</ulink>, ve <ulink url="http://library.gnome.org/devel/gtk-tutorial/stable/">výuce GTK+ 2.0</ulink> hostované na GNOME a v oficiálních <ulink url="http://library.gnome.org/devel/gtk-faq/stable/">častých dotazech a odpovědích o GTK+</ulink>.</para>
Packit 1470ea
</section>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="gad-overview">
Packit 1470ea
<title>Jak udělat aplikace v GNOME přístupné – přehled</title>
Packit 1470ea
<para>Pokud vaše aplikace používá jen standardní widgety GTK, budete pravděpodobně muset udělat jen minimum věcí, nebo vůbec nic, aby vaše aplikace měla (rozumnou) přístupnost. Dejte ale pozor na objekty ve svém GUI, které nemají přiřazen textový popis, jako jsou grafická tlačítka nebo indikátory stavu, které nemají popisky nebo vysvětlivky.</para>
Packit 1470ea
<para>Nejspíše také budete muset zdokonalit výchozí popis poskytovaný pro některé widgety a přizpůsobit je na míru konkrétnímu účelu widgetu ve vaší aplikaci. U těchto widgetů byste měli přidat nebo změnit textový popis pomocí příslušných funkcí ATK, aby asistenční technologie mohly popsat jejich účel nebo stav uživateli. Více informací viz <link linkend="gad-coding-guidelines">Příručka k programování s podporou zpřístupnění</link>.</para>
Packit 1470ea
<para>Pokud vaše aplikace používá vlastní vidgety, můžete mít nějako práci s předáváním vlastností těchto widgetů asistenčním technologiím. Více informací viz <link linkend="gad-custom">Zpřístupnění vlastních komponent</link> a <link linkend="gad-api-examples">Příklady, které používají API zpřístupnění</link>. Další zajímavé věci se můžete dozvědět z prezentace, kterou měl Marc Mulcahy na konfefrenci GUADEC pod názvem <ulink url="https://projects.gnome.org/accessibility/talks/GUAD3C/making-apps-accessible/start.html">„Making GNOME Applications Accessible“</ulink> (Zpřístupnění aplikací GNOME).</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="gad-coding-guidelines">
Packit 1470ea
<title>Příručka k programování s podporou zpřístupnění</title>
Packit 1470ea
<para>Zde je několik věcí, které můžete udělat ve svém kódu, abyste zajistili, že váš program bude pracovat co nejlépe s asistenčními technologiemi. (V části <link linkend="gad-ui-guidelines">Pokyny k uživatelskému rozhraní ohledně podpory zpřístupnění</link> v této příručce můžete najít seznam věcí, které byste měli vzít do úvahy, když navrhujete GUI.):</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>U komponent, které nezobrazují krátký název (jako jsou grafická tlačítka), určete název pomocí <function>atk_object_set_name()</function>. Budete to chtít u čistě obrázkových tlačítek, u panelů, které poskytují logické seskupení, u textových oblastí a pod.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Pokud nemůžete ke komponentě poskytnout vysvětlivku, použijte místo toho <function>atk_object_set_description()</function>, která poskytne popis, který mohou asistenční technologie předat uživateli. Například poskytnutí zpřístupňujícího popisu pro tlačítko <guibutton>Zavřít</guibutton> by vypadalo takto:</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Poskytnutí zpřístupňujícího popisu pro GtkButton</title>
Packit 1470ea
<programlisting>
Packit 1470ea
{
Packit 1470ea
  AtkObject *obj;
Packit 1470ea
  obj = gtk_widget_get_accessible(button);
Packit 1470ea
  atk_object_set_description(obj,_("Closes the window"));
Packit 1470ea
}
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Použijte <function>atk_image_set_description()</function> k poskytnutí textového popisu ke všem obrázkům a ikonám ve svém programu.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Pokud několik komponent tvoří logickou skupinu, zkuste je vložit do jednoho kontejneru.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Kdykoliv máte popisek, který popisuje jinou komponentu, použijte <function>atk_relation_set_add_relation()</function>, aby asistenční technologie dokázala najít komponentu, se kterou je popisek svázán. (Když přidružíte popisek s komponentou pomocí <function>gtk_label_set_mnemonic_widget()</function>, je vztah <constant>ATK_RELATION_LABEL_FOR</constant> vygenerován automaticky, takže následující kód nebude nutný):</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Vytvoření vztahu mezi GtkLabel a GtkWidget</title>
Packit 1470ea
<programlisting>
Packit 1470ea
{
Packit 1470ea
  GtkWidget *widget;
Packit 1470ea
  GtkLabel *label;
Packit 1470ea
Packit 1470ea
  AtkObject *atk_widget, *atk_label;
Packit 1470ea
  AtkRelationSet *relation_set;
Packit 1470ea
  AtkRelation *relation;
Packit 1470ea
  AtkObject *targets[1];
Packit 1470ea
Packit 1470ea
  atk_widget = gtk_widget_get_accessible(widget);
Packit 1470ea
  atk_label = gtk_widget_get_accessible (GTK_WIDGET(label));
Packit 1470ea
Packit 1470ea
  relation_set = atk_object_ref_relation_set (atk_label);
Packit 1470ea
  targets[0] = atk_widget;
Packit 1470ea
Packit 1470ea
  relation = atk_relation_new(targets,1, ATK_RELATION_LABEL_FOR);
Packit 1470ea
  atk_relation_set_add(relation_set,relation);
Packit 1470ea
  g_object_unref(G_OBJECT(relation));
Packit 1470ea
}
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Když vytvoříte vlastní widget, zajistěte, aby podporoval zpřístupnění. Vlastní komponenty, které jsou potomky jiných widgetů GTK, by měly přepsat zděděnou podporu zpřístupnění podle potřeby. Více informací viz <link linkend="gad-custom">zpřístupnění vlastních komponent</link>.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Neničte věci, které dostanete zdarma! Když bude mít vaše GUI nezpřístupněný kontejner, kterákoliv komponenta uvnitř tohoto kontejneru se může stát nepřístupnou.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="gad-api">
Packit 1470ea
<title>API zpřístupnění</title>
Packit 1470ea
<para>Zde je pár základních volání API, která můžete potřebovat pro použití ve své aplikaci, když chcete zajistit, že bude pracovat s asistenčními technologiemi. Celé API zpřístupnění je rozšiřitelné, abyste mohli například psát své vlastní widgety pro podporu zpřístupnění.</para>
Packit 1470ea
Packit 1470ea
<title>Běžně používaná volání API ATK</title>
Packit 1470ea
<tgroup cols="2" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>API</entry>
Packit 1470ea
<entry>Popis</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>
Packit 1470ea
<para><function>AtkObject* gtk_widget_get_accessible (GtkWidget*)</function></para>
Packit 1470ea
</entry>
Packit 1470ea
<entry>
Packit 1470ea
<para>Vrací objekt zpřístupnění, který popisuje zadaný Widget GTK pro asistenční technologii.</para>
Packit 1470ea
</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry>
Packit 1470ea
<para><function>void atk_object_set_name (AtkObject*, const gchar*)</function></para>
Packit 1470ea
</entry>
Packit 1470ea
<entry>
Packit 1470ea
<para>Nastavuje název pro zpřístupněný objekt. Například, pokud je objektem grafické tlačítko, které při zmáčknutí ukončí aplikaci, může být název „Quit“.</para>
Packit 1470ea
</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry>
Packit 1470ea
<para><function>void atk_object_set_description (AtkObject*, const gchar*)</function></para>
Packit 1470ea
</entry>
Packit 1470ea
<entry>
Packit 1470ea
<para>Nastaví textový popis zpřístupněného objektu. Například, když je objektem grafické tlačítko „Zavřít“, může být popis „Closes the window“.</para>
Packit 1470ea
</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry>
Packit 1470ea
<para><function>AtkRelation* atk_relation_new (AtkObject**, gint, AtkRelationType)</function></para>
Packit 1470ea
</entry>
Packit 1470ea
<entry>
Packit 1470ea
<para>Vytvoří nový vztah mezi zadaným klíčem a zadaným seznamem cílových objektů. Vztah normálně říká asistenční technologii, že některý widget nějak souvisí s jiným. Například, že konkrétní widget GtkLabel je nadpisem widgetu GtkTreeView v tom samém okně.</para>
Packit 1470ea
</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry>
Packit 1470ea
<para><function>void atk_image_set_description (AtkImage*, const gchar*)</function></para>
Packit 1470ea
</entry>
Packit 1470ea
<entry>
Packit 1470ea
<para>Nastaví textový popis zpřístupněného obrázkového objektu. Například, když je objektem náhled viruální plochy v apletu na panel, může být popis „Image showing window arrangement on desktop 1“.</para>
Packit 1470ea
</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="gad-api-examples">
Packit 1470ea
<title>Příklady, které používají API zpřístupnění</title>
Packit 1470ea
<para>Jak bylo uvedeno již dříve, měli byste mít jen málo práce, nebo vůbec žádnou, s tím, abyste měli svoji aplikaci zpřístupněnou, když budete používat sadu widgetů GTK nebo jinou knihovnu widgetů, které implementují rozhraní ATK. Dvě hlavní obvyklé věci, kterým byste měli věnovat v takovém případě věnovat pozornost, jsou:</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytnout popisy některým ovládacím prvkům a obrázkům pomocí <function>atk_object_set_description()</function> nebo <function>atk_image_set_description():</function></para>
Packit 1470ea
<example>
Packit 1470ea
<title>Nastavení popisu zpřístupnění pro tlačítko</title>
Packit 1470ea
<programlisting>
Packit 1470ea
{
Packit 1470ea
   AtkObject *obj;
Packit 1470ea
   obj = gtk_widget_get_accessible(button);
Packit 1470ea
   atk_object_set_description(obj,_("Opens Preferences dialog"));
Packit 1470ea
}
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
<para>
Packit 1470ea
</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Určit vztahy mezi některými neobvyklými seskupeními widgetů pomocí <function>atk_relation_new()</function> a <function>atk_relation_set_add()</function>:</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Definice zpřístupňujícího vztahu mezi dvěma ovládacími prvky</title>
Packit 1470ea
<programlisting>
Packit 1470ea
{
Packit 1470ea
  GtkWidget *widget;
Packit 1470ea
  GtkLabel *label;
Packit 1470ea
Packit 1470ea
  AtkObject *atk_widget, *atk_label;
Packit 1470ea
  AtkRelationSet *relation_set;
Packit 1470ea
  AtkRelation *relation;
Packit 1470ea
  AtkObject *targets[1];
Packit 1470ea
Packit 1470ea
  atk_widget = gtk_widget_get_accessible (widget);
Packit 1470ea
  atk_label = gtk_widget_get_accessible (GTK_WIDGET(label));
Packit 1470ea
Packit 1470ea
  relation_set = atk_object_ref_relation_set (atk_label);
Packit 1470ea
  targets[0] = atk_widget;
Packit 1470ea
Packit 1470ea
  relation = atk_relation_new(targets,1, ATK_RELATION_LABEL_FOR);
Packit 1470ea
  atk_relation_set_add(relation_set,relation);
Packit 1470ea
  g_object_unref(G_OBJECT(relation));
Packit 1470ea
}
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
<para>Příklady ve zbytku této části se většinou věnují nuancím v celém ATK. Pokrývá techniky, které možná nebudete nikdy potřebovat jako vývojář aplikací, ale mohou vás zajímat při psaní vlastních widgetů (viz <link linkend="gad-custom">Zpřístupnění vlastních komponent</link>) nebo když chcete napsat aplikaci pro asistenční technologii. Ať už bude účel jakýkoliv, je vynikajícím zdrojem informací pro pokročilé využití ATK přímo <ulink url="ftp://ftp.gnome.org/pub/GNOME/sources/gail/">zdrojový kód GAIL</ulink>. Upozorňujeme, že od GTK 3.1.10 byla knihovna Gail začleněna přímo do GTK+, a není již samostatným modulem.</para>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Moduly Gtk</title>
Packit 1470ea
<para>Programy, které používají GAIL (knihovnu implementující zpřístupnění pro widgety GTK), jsou napsány jako moduly GTK. Modul GTK se nahraje do programového prostoru, když proměnná prostředí <varname>GTK_MODULES</varname> uvádí název příslušné knihovny modulu. Pokud máte více knihoven modulů, oddělte je dvojtečkou. Například:</para>
Packit 1470ea
<para><userinput>setenv GTK_MODULES "libgail:libtestprops"</userinput></para>
Packit 1470ea
<para>Všechny moduly GTK mají funkci <function>gtk_module_init()</function>.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Sbírání informací o zpřístupnění z aplikace</title>
Packit 1470ea
<para>Program, který si přeje používat volání ATK, bude pravděpodobně muset udělat jednu (nebo více) z následujících věcí:</para>
Packit 1470ea
<orderedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Vytvořit sledování události, například pomocí funkce <function>atk_add_focus_tracker()</function>:</para>
Packit 1470ea
<programlisting>atk_add_focus_tracker (_my_focus_tracker);</programlisting>
Packit 1470ea
<para>kde <function>_my_focus_tracker()</function> je funkce s tímto prototypem:</para>
Packit 1470ea
<programlisting>void _my_focus_tracker (AtkObject *aobject);</programlisting>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Vytvořit globální naslouchání události pomocí atk_add_global_event_listener():</para>
Packit 1470ea
<programlisting>
Packit 1470ea
mouse_watcher_focus_id =   atk_add_global_event_listener(_my_global_listener,"Gtk:GtkWidget:enter_notify_event");
Packit 1470ea
</programlisting>
Packit 1470ea
<para>kde <function>_my_global_listener</function> má prototyp z <function>_my_global_listener</function> v Glib. Tento příklad způsobí, že funkce <function>_my_global_listener()</function> bude volána, kdykoliv se vyskytne signál enter_notify_even na objektu <type>GtkWidget</type>.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>K objektu ATK nejvyšší úrovně získáte přístup zavoláním následující funkce.</para>
Packit 1470ea
<programlisting>AtkObject *root_obj = atk_get_root();</programlisting>
Packit 1470ea
<para>Vrací <type>AtkObject</type>, který obsahuje všechna okna nejvyšší úrovně v aktuálně běžícím programu. Uživatel pak může procházet hierarchií objektů pomocí přístupu k potomkům kořenového objektu, které odpovídají oknům nejvyšší úrovně.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</orderedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Dotazování se rozhraní objektu <type>AtkObject</type></title>
Packit 1470ea
<para>Když máte vyhledán <type>AtkObject</type> patřící k objektu v aplikaci (např. pomocí <function>gtk_widget_get_accessible()</function>), můžete různými způsoby zjistit, která rozhraní má implementována:</para>
Packit 1470ea
<orderedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Použijte podporovaná makra <function>ATK_IS_…</function>, například:</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para><function>ATK_IS_ACTION(atkobj)</function></para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para><function>ATK_IS_COMPONENT(atkobj)</function></para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>atd. (pro každé rozhraní je jedno)</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
<para>Pokud makro vrací <function>TRUE</function>, volání rozhraní může být na objektu ATK bezpečně provedeno.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Otestujte roli <type>AtkObject</type> zavoláním <function>atk_object_get_role()</function>. Kterákoliv daná role implementuje určitý počet API pro ATK.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</orderedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Nastavení zpracování signálu ATK</title>
Packit 1470ea
<para>Kupříkladu použití signálu <constant>column_inserted</constant>:</para>
Packit 1470ea
<programlisting>
Packit 1470ea
table_column_inserted_id = g_signal_connect_closure_by_id (my_atk_obj, 
Packit 1470ea
g_signal_lookup("column_inserted", G_OBJECT_TYPE(my_atk_obj)), 0, 
Packit 1470ea
g_cclosure_new(G_CALLBACK (_my_table_column_inserted_func), NULL, NULL), FALSE);
Packit 1470ea
</programlisting>
Packit 1470ea
<para>Tento kód způsobí, že funkce <function>_my_table_column_inserted_func()</function> bude volána pokaždé, když je na objektu <type>AtkObject</type> <varname>my_atk_object</varname> vyslán signál column_inserted.</para>
Packit 1470ea
<para>Připojení signálu se lehce liší, když signál podporuje detaily. Signál <constant>children_changed</constant> podporuje detail <parameter>add</parameter>. Pro připojení k signálu, když je určen i detail <parameter>add</parameter>, se používá tato technika:</para>
Packit 1470ea
<programlisting>
Packit 1470ea
child_added_id = g_signal_connect_closure (my_atk_obj,"children_changed::add",
Packit 1470ea
g_cclosure_new (G_CALLBACK(_my_children_changed_func), NULL, NULL), FALSE);
Packit 1470ea
</programlisting>
Packit 1470ea
<para>Tento kód způsobí, že funkce <function>_my_children_changed_func()</function> bude volána pokaždé, když je na objektu <type>AtkObject</type> <varname>my_atk_obj</varname> vyslán signál <constant>children_changed</constant> s detailem <parameter>add</parameter>.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Implementace objektu ATK</title>
Packit 1470ea
<para>Budete muset implementovat vlastní objetky ATK pro widgety, které zatím nemají implementaci zpřístupnění v GAIL (nebo jiné obdobné knihovně pro jinou sadu widgetů). Měly by být implementovány jako modul GTK, který by, stejně jako před tím, měl být zahrnut v proměnné prostředí <envar>GTK_MODULES</envar>, aby se načetl za běhu.</para>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Registr</title>
Packit 1470ea
<para>V tomto příkladu budeme předpokládat, že máme objekt s názvem GTK_TYPE_MYTYPE. Implementace ATK bude volat <type>MYATKIMP_TYPE_MYTYPE</type>. Bude zapotřebí generátor s názvem <type>MYATKIMP_TYPE_MYTYPE_FACTORY</type>.</para>
Packit 1470ea
<para>Abyste zaregistrovali implementaci ATK objektu GTK, musí ve funkci <function>gtk_module_init()</function> modulu následovat tyto kroky:</para>
Packit 1470ea
<orderedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Získejte přístup k výchozímu registru:</para>
Packit 1470ea
<programlisting>
Packit 1470ea
default_registry = atk_get_default_registry();
Packit 1470ea
</programlisting>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem><para>Zaregistrujte objekt ATK ve funkci <function>gtk_module_init()</function> tohoto modulu pomocí zavolání této funkce:</para>
Packit 1470ea
<programlisting>
Packit 1470ea
atk_registry_set_factory_type (default_registry, GTK_TYPE_MYTYPE, 
Packit 1470ea
MYATKIMP_TYPE_MYTYPE_FACTORY); 
Packit 1470ea
</programlisting>
Packit 1470ea
</listitem>
Packit 1470ea
</orderedlist>
Packit 1470ea
<para>Tím se zaregistruje implementace AtkObject pro <type>GTK_TYPE_MYTYPE</type> do <type>MYATKIMP_TYPE_MYTYPE_FACTORY</type>. Tento generátor bude implementován, takže bude známo, jak sestavit objekty typu <type>MYATKIMP_TYPE_MYTYPE</type>.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Generátor</title>
Packit 1470ea
<para>Generátor (factory) musí být implementován jako dceřiná třída typu <type>ATK_TYPE_OBJECT_FACTORY</type> a musí implementovat funkci <function>create_accessible()</function>. Tato funkce musí vytvořit příslušný <type>AtkObject</type>. Generátor lze použít k vytvoření více než jednoho typu objektu, přičemž jeho funkce <function>create_accessible()</function> musí být dostatečně chytrá, aby sestavila a vrátila správný <type>AtkObject</type>.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Implementace ATK pro zadaný objekt</title>
Packit 1470ea
<para>Všechny <type>GObject</type> implementují funkci <function>get_type()</function>. Když vezmeme předchozí příklad, podle konvence pojmenování by název funkce byl <function>myatkimp_mytype_get_type()</function>.</para>
Packit 1470ea
<para>V této funkci určujete, která rozhraní bude váš objekt implementovat. Když by se použila logika, která byla použita v této funkci <function>get_type()</function>, implementoval by objekt rozhraní <type>ATK_TEXT</type>:</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Vzorová funkce <function>get_type()</function></title>
Packit 1470ea
<programlisting>
Packit 1470ea
static const GInterfaceInfo atk_text_info = 
Packit 1470ea
{ 
Packit 1470ea
   (GInterfaceInitFunc) atk_text_interface_init, 
Packit 1470ea
   (GInterfaceFinalizeFunc) NULL, 
Packit 1470ea
   NULL 
Packit 1470ea
}; 
Packit 1470ea
Packit 1470ea
g_type_add_interface_static (type, ATK_TYPE_TEXT, 
Packit 1470ea
                             &atk_text_info); 
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
<para>Měla by být implementována funkce <function>atk_text_interface_init()</function>, která má následující prototyp:</para>
Packit 1470ea
<programlisting>
Packit 1470ea
void atk_text_interface_init (AtkTextIface *iface); 
Packit 1470ea
</programlisting>
Packit 1470ea
<para>Tato funkce by napojila volání funkce rozhraní na konkrétní implementaci následovně:</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Napojení volání vlastního rozhraní na implementaci AtkObject</title>
Packit 1470ea
<programlisting>
Packit 1470ea
void 
Packit 1470ea
atk_text_interface_init (AtkTextIface *iface) 
Packit 1470ea
{ 
Packit 1470ea
   g_return_if_fail (iface != NULL); 
Packit 1470ea
   iface->get_text = myatkimp_mytype_get_text; 
Packit 1470ea
   iface->get_character_at_offset = myatkimp_mytype_get_character_at_offset; 
Packit 1470ea
   ... 
Packit 1470ea
}
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
<para>Potom by bylo potřeba implementovat funkce <function>myatkimp_mytype_get_text()</function>, <function>myatkimp_mytype_get_character_at_offset()</function> a zbytek funkcí rozhraní <type>ATK_TEXT</type>.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Implementace <type>AtkObject</type></title>
Packit 1470ea
<para>Objekty <type>AtkObject</type> jsou potomci <type>GObjects</type> a všechny objekty <type>GObjects</type> potřebují specifikovat funkci <function>get_type()</function>. Zde je příklad, který nastavuje třídu a instanci inicializátoru. Tato funkce <function>get_type()</function> rovněž definuje, že objektu implementuje <type>ATK_TEXT</type>, a definuje, že rodičovský objekt bude <type>MYATKIMP_MYPARENTTYPE</type>.</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Ukázková implementace <function>get_type()</function></title>
Packit 1470ea
<programlisting>
Packit 1470ea
GType 
Packit 1470ea
myatkimp_mytype_get_type (void) 
Packit 1470ea
{ 
Packit 1470ea
   static GType type = 0; 
Packit 1470ea
Packit 1470ea
   if (!type) 
Packit 1470ea
   { 
Packit 1470ea
      static const GTypeInfo tinfo = 
Packit 1470ea
      { 
Packit 1470ea
         sizeof (GailLabelClass), 
Packit 1470ea
         (GBaseInitFunc) NULL,                              /* base init */ 
Packit 1470ea
         (GBaseFinalizeFunc) NULL,                          /* base finalize */
Packit 1470ea
         (GClassInitFunc) myatkimp_mytype_class_init,       /* class init */ 
Packit 1470ea
         (GClassFinalizeFunc) NULL,                         /* class finalize */ 
Packit 1470ea
         NULL,                                              /* class data */ 
Packit 1470ea
         sizeof (GailLabel),                                /* instance size */ 
Packit 1470ea
         0,                                                 /* nb preallocs */ 
Packit 1470ea
         (GInstanceInitFunc) myatkimp_mytype_instance_init, /* instance init */ 
Packit 1470ea
         NULL                                               /* value table */ 
Packit 1470ea
      }; 
Packit 1470ea
Packit 1470ea
      /* Set up atk_text_info structure used below */ 
Packit 1470ea
      static const GInterfaceInfo atk_text_info = 
Packit 1470ea
      { 
Packit 1470ea
         (GInterfaceInitFunc) atk_text_interface_init, 
Packit 1470ea
         (GInterfaceFinalizeFunc) NULL, 
Packit 1470ea
         NULL 
Packit 1470ea
      }; 
Packit 1470ea
Packit 1470ea
      /* Set up typename and specify parent type */ 
Packit 1470ea
      type = g_type_register_static (MYATKIMP_MYPARENTTYPE, 
Packit 1470ea
            "MyatkimpMytype", &tinfo, 0); 
Packit 1470ea
Packit 1470ea
      /* This class implements interface ATK_TYPE_TEXT */ 
Packit 1470ea
      g_type_add_interface_static (type, ATK_TYPE_TEXT, 
Packit 1470ea
                                   &atk_text_info); 
Packit 1470ea
   } 
Packit 1470ea
   return type; 
Packit 1470ea
} 
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Inicializace třídy/instance</title>
Packit 1470ea
<para>Budete muset vytvořit inicializátor třídy pro objekt <type>GObject</type>, pokud vaše implementace <type>AtkObject</type> buď:</para>
Packit 1470ea
<orderedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Znovu definuje kterákoliv volání funkcí definovaná v rodiči objektu. To je typicky nutné, když některý objekt potřebuje implementovat funkci, jako je <function>atk_object_get_n_accessible_children()</function>. To je nutné, když má objekt potomka, ale ten není reprezentován widgetem.</para>
Packit 1470ea
<para>Například, když implementace ATK protřebuje přepsat funkci <function>get_name()</function> v <type>AtkObject</type>, vypadala by inicializace třídy nějak takto:</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Inicializace třídy, která přepisuje rodičovskou funkci <function>get_name()</function></title>
Packit 1470ea
<programlisting>
Packit 1470ea
myatkimp_mytype_class_init (GailLabelClass *klass) 
Packit 1470ea
{ 
Packit 1470ea
  AtkObjectClass *class = ATK_OBJECT_CLASS (klass); 
Packit 1470ea
  class->get_name = myatkimp_mytype_get_name; 
Packit 1470ea
} 
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem><para>Vyžaduje funkci <function>parent->init</function>, <function>parent->notify_gtk</function> nebo <function>parent->finalize</function>. Tento příklad definuje všechny tři:</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Inicializátor třídy, který definuje své vlastní funkce <function>init()</function>, <function>notify_gtk()</function> a <function>finalize()</function></title>
Packit 1470ea
<programlisting>
Packit 1470ea
static ParentObjectType *parent_class = NULL; 
Packit 1470ea
Packit 1470ea
myatkimp_mytype_class_init (GailLabelClass *klass) 
Packit 1470ea
{ 
Packit 1470ea
   ParentObjectType *parent_class = (ParentObjectType*)klass; 
Packit 1470ea
Packit 1470ea
   /* 
Packit 1470ea
    * Caching the parent_class is necessary if the init, 
Packit 1470ea
    * notify_gtk, or finalize functions are set up. 
Packit 1470ea
    */ 
Packit 1470ea
    parent_class = g_type_class_ref (MYATKIMP_TYPE_PARENT); 
Packit 1470ea
Packit 1470ea
    parent_class->init = myatkimp_mytype_widget_init; 
Packit 1470ea
    parent_class->notify_gtk = myatkimp_mytype_real_notify_gtk; 
Packit 1470ea
    parent_class->finalize = myatkimp_mytype_finalize; 
Packit 1470ea
}
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
<orderedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>parent->init</para>
Packit 1470ea
<para>Funkce <function>parent->init()</function> může být nutná, když implementace ATK potřebuje udělat něco z následujícího:</para> 
Packit 1470ea
<orderedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ukládat do mezipaměti data získaná z widgetu GTK v pozadí.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Naslouchat signálům z widgetu GTK v pozadí.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</orderedlist>
Packit 1470ea
<para>Zde je příklad obojího:</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Vlastní funkce <function>init()</function></title>
Packit 1470ea
<programlisting>
Packit 1470ea
void 
Packit 1470ea
gail_tree_view_widget_init (MyatkimpMytype  *mytype, 
Packit 1470ea
                            GtkWidget       *gtk_widget) 
Packit 1470ea
{ 
Packit 1470ea
   /* Make sure to call the parent's init function */ 
Packit 1470ea
   parent_class->init (widget, gtk_widget); 
Packit 1470ea
   
Packit 1470ea
   /* Cache a value in the ATK implementation */ 
Packit 1470ea
   mytype->cached_value = gtk_widget_function_call(); 
Packit 1470ea
Packit 1470ea
   /* Listen to a signal */ 
Packit 1470ea
   gtk_signal_connect (GTK_OBJECT (gtk_widget), 
Packit 1470ea
                       "signal-type", 
Packit 1470ea
                       GTK_SIGNAL_FUNC (_myatkimp_mytype_signal_type), 
Packit 1470ea
                       NULL); 
Packit 1470ea
} 
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
<para>Když by byl v tomto příkladu zadaný signál <type>signal-type</type> vygenerován z <varname>gtk_widget</varname> v pozadí, byla by pak zavolána funkce <function>_myatkimp_mytype_signal_type()</function>.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>parent->notify_gtk</para>
Packit 1470ea
<para>Když implementace ATK potřebuje naslouchat upozornění na nějakou vlastnost u objektu GTK v pozadí, může být nutná funkce <function>parent->notify_gtk()</function>. Například:</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Vlastní funkce <function>notify_gtk()</function></title>
Packit 1470ea
<programlisting>
Packit 1470ea
void 
Packit 1470ea
myatkimp_mytype_real_notify_gtk (GObject    *obj, 
Packit 1470ea
                                 GParamSpec *pspec) 
Packit 1470ea
{ 
Packit 1470ea
   GtkWidget *widget = GTK_WIDGET (obj); 
Packit 1470ea
   AtkObject* atk_obj = gtk_widget_get_accessible (widget); 
Packit 1470ea
Packit 1470ea
   if (strcmp (pspec->name, "property-of-interest") == 0) 
Packit 1470ea
   { 
Packit 1470ea
      /* Handle the property change. */ 
Packit 1470ea
   } 
Packit 1470ea
   else 
Packit 1470ea
   { 
Packit 1470ea
      parent_class->notify_gtk (obj, pspec); 
Packit 1470ea
   } 
Packit 1470ea
} 
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>parent->finalize</para>
Packit 1470ea
<para>Když je potřeba uvolnit některá data při zničení instance <type>GObject</type>, pak je potřeba funkce <function>finalize()</function> k uvolnění paměti: Například:</para>
Packit 1470ea
<example>
Packit 1470ea
<title>Vlastní funkce <function>finalize()</function></title>
Packit 1470ea
<programlisting>
Packit 1470ea
void 
Packit 1470ea
myatkimp_mytype_finalize (GObject *object) 
Packit 1470ea
{ 
Packit 1470ea
   MyAtkimpMyType *my_type = MYATKIMP_MYTYPE (object); 
Packit 1470ea
Packit 1470ea
   g_object_unref (my_type->cached_value); 
Packit 1470ea
   G_OBJECT_CLASS (parent_class)->finalize (object); 
Packit 1470ea
} 
Packit 1470ea
</programlisting>
Packit 1470ea
</example>
Packit 1470ea
</listitem>
Packit 1470ea
</orderedlist>
Packit 1470ea
</listitem>
Packit 1470ea
</orderedlist>
Packit 1470ea
</section>
Packit 1470ea
</section>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="gad-custom">
Packit 1470ea
<title>Jak zajistit zpřístupnění vlastních komponent</title>
Packit 1470ea
<para>Přidání podpory ATK do vašeho vlastního widgetu zajistí jeho spolupráci s infrastrukturou zpřístupnění. Zde jsou obecné kroky, které jsou nutné:</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>vyhodnotit vlastní widget podle pravidel v <link linkend="gad-ui-guidelines">Příručce k uživatelskému rozhraní</link></para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>určit, která <ulink url="https://developer.gnome.org/atk/stable/interfaces.html">rozhraní ATK</ulink> by měl vlastní widget implementovat, s ohledem na množinu vlastnosí widgetu a funkci</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>vyhodnotit, která <ulink url="https://developer.gnome.org/atk/stable/interfaces.html">rozhraní ATK</ulink> mohou být zděděna z třídy rodičovského widgetu</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>implementovat příslušná rozhraní ATK pro třídu widgetu jedním ze dvou způsobů:</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>přímo vlastním widgetem nebo</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>v podtypu <ulink url="http://library.gnome.org/devel/atk/stable/AtkObject.html"><type>AtkObject</type></ulink> vytvořeném novou podtřídou <ulink url="http://library.gnome.org/devel/atk/stable/AtkObjectFactory.html"><type>AtkObjectFactory</type></ulink></para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
<para>Pokud je použita druhá metoda, musí být za běhu pomocí <type>AtkObjectFactoryRegistry</type> zaregistrován typ generátoru.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
<para><ulink url="ftp://ftp.gnome.org/pub/GNOME/sources/gail/">Zdrojový kód GAIL</ulink> poskytuje skvělou výuku pro pokročilé používání ATK.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="gad-ui-guidelines">
Packit 1470ea
<title>Pokyny k uživatelskému rozhraní ohledně podpory zpřístupnění</title>
Packit 1470ea
<para>Když navrhujete uživatelské rozhraní své aplikace, je zde několik jednoduchých zásad, kterých byste se měli držet, abyste zajistili, že bude použitelné pro tak široký okruhem uživatelů, jak jen to je možné, ať už spolu s asistenčními technologiemi nebo bez nich. Nenechte se zmást pocitem, že to „děláte jen pro lidi se zdravotním postižením“, a protože víte, že takováto osoba nebude vaši aplikaci nikdy používat, nemusíte se tím zabývat. Následující zásady vylepší použitelnost vaší aplikace celkově pro všechny, kdo ji budou používat – včetně vás!</para>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Obecné</title>
Packit 1470ea
<para>Všichni býváme znechucení, když nemůžeme v aplikaci najít některou funkci nebo se spleteme, což nás stojí pár minut to napravit, pokud to napravit je možné. Pokud máte nějaký typ postižení, jsou šance na potřebu věnovat více úsilí a přijít o čas podstatně vyšší. Následujících několik základních obecných zásad pomůže předejít těmto situacím pro všechny uživatele.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte funkci „Zpět“ pro všechny činnosti, které mění uživatelova data nebo nastavení aplikace. Pokud je to možné, nabídněte více úrovní pro funkce zpět a znovu a seznam s historií, kde uživatel získá přehled, které činnosti se budou vracet zpět.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte příkazy pro obnovení výchozích nastavení. Pokud některé konkrétní nastavení může způsobit úplnou nepoužitelnost aplikace pro uživatele, např. nastavení příliš malého písma, bylo by vhodnější poskytnout možnost obnovit výchozí nastavení někde mimo vlastní aplikaci. Například se to dá provést přepínačem příkazového řádku.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Pomozte uživatelům vyvarovat se nesprávných věcí. To je důležité zejména pro činnosti, které mohou být provedné nechtěně (např. myší) nebo je nelze snadno vrátit zpět (např. přepsaný soubor). Zvažte použití potvrzovacího dialogového okna nebo přinucení uživatele přepnout se do určitého režimu, když se chystá provést potenciálně destruktivní činnost.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Omezte zátěž uživatele na zapamatování si věcí. Například umožněte uživateli zobrazit si naráz více dokumentů a zajistěte, že nápověda nebo jiné informace mohou být vidět i během postupu, který popisují. Umožněte uživatelům kopírovat libovolné informace, které jsou zobrazené, a vložit je kamkoliv, kde lze zadávat data.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nenuťte uživatele vkládat disky. V závislosti na uživatelově konkrétním postižení může pro něj být fyzicky obtížné vložit nebo vyměnit disk, nebo pro něj může být obtížné zjistit, o který disk se jedná. Pokud je vaše aplikace instalována z disku CD, nabídněte možnost zkopírovat všechny soubory, které budou zapotřebí, na uživatelův pevný disk.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Neumisťujte často používané funkce hluboko do struktury nabídky. Ať už používáte myš, klávesnici nebo jiné vstupní zařízení, je lepší se hluboce vnořeným položkám v nabídkách vyhnout. Mimo to, že je obtížne si zapamatovat, kde je najdete, je vždy také časově náročné se k nim dostat.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Neveďte uživatele kroky, které nejsou nutné. Například, průvodci jsou užiteční pro uživatele, kteří mají problém pracovat s velkým množstvím různých voleb naráz, ale jiní uživatelé třeba potřebují ušetřit čas nebo počet zmáčknutí kláves. Tito uživatelé těží výhodu z možnosti přeskočit nepotřebné kroky nebo z možnosti přejít přímo na ten, který potřebují. Zvažte v průvodci nabídnutí tlačítka <guibutton>Dokončit</guibutton>, které přeskočí zbývající kroky do konce a bude pro ně předpokládat výchozí odpovědi. Pokud má proces mnoho kroků, zvažte, zda se na začátku uživatele nezeptat, jestli chce projít všemi kroky nebo jen těmi nejběžnějšími.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Ovládání klávesnicí</title>
Packit 1470ea
<para>Dobře navržené klávesnicové uživatelské rozhraní hraje klíčovou roli, když navrhujete přístupný software. Slepí uživatelé dokáží software lépe obsluhovat pomocí klávesnice, protože ovládání myší závisí na vizuální zpětné vazbě vůči poloze ukazatele myši. Také pohybová postižení mohou uživateli bránit v úspěšné obsluze myší, protože to vyžaduje schopnost jemného motorického ovládání.</para>
Packit 1470ea
<para>Proto je důležité umožnit všechny činnosti prováděné myší provést i pomocí klávesnice, včetně přístupu z klávesnice ke všem nástrojovým lištám, nabídkám, odkazům a tlačítkům. Každá funkce, kterou vaše aplikace nabízí, by měla být dostupná čistě pomocí klávesnice. Pokud musíte, skryjte si během testování své aplikace myš!</para>
Packit 1470ea
<para>Většina funkcionality by měla být snadno přístupná pomocí horkých kláves a klávesových zkratek a pomocí funkcí ovládání zabudovaných v nástrojové sadě, na které je aplikace vyvíjena. Nicméně nad některými operacemi, jako „táhni a upusť“, se budete muset zamyslet hlouběji.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte účinný přístup z klávesnice ke všem funkcím aplikace. Někteří uživatelé nemusí být schopní používat myš a řada pokročilých uživatelů dává tak jako tak přednost klávesnici. Také některá specializovaná zařízení asistenčních technologií mohou simulovat spíše události od klávesnice než od myši. Protože pro některé uživatele je psaní náročně nebo až bolestivé, je důležité nabídnout uživatelské rozhraní, které minimalizuje počet zmáčknutí kláves pro libovolný účel.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Použijte logické pořadí pro obsluhu klávesnicí. Když se pohybujete po okně pomocí klávesy <keycap>Tab</keycap>, měly by se ovládací prvky zaměřovat v předvídatelném pořadí. V národních prostředích západní civilizace to normálně je zleva doprava a shora dolů.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Zajistěte správné pořadí pro ovládání klávesou Tabulátor u ovládacích prvků, které se aktivují zaškrtávacím políčkem, skupinovým přepínačem nebo přepínacím tlačítkem. Když je se takovýmto prvkem provede aktivace, všechny závislé ovládací prvky se aktivují naopak ovládací prvky závislé na ostatních přepínacích prvcích ve skupině se deaktivují. Když uživatel vybere zaškrtávací políčko, skupinový přepínač nebo přepínací tlačítko, které mají závislé ovládací prvky, nepřesouvejte automaticky zaměření na první závislý ovládací prvek, ale ponechte zaměřený ten, který uživatel vybral.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nepřepisujte funkce zpřístupnění již existující na úrovní systému. Například <ulink url="http://www.rehab.uiuc.edu/accessx/overview.html">AccessX</ulink> je rozšíření pro Xserver, které je podporováno od X11R6. Funkce MouseKeys (myš z klávesnice) v tomto rozšíření umožňuje pohyb myši a kliknutí jejích tlačítek simulovat pomocí číselné klávesnice. Proto byste neměli přidávat do své aplikace funkce, které jsou přístupné jen zmáčknutím kláves na číselné klávesnici, protože uživatelé spoléhající na funkci MouseKeys je nebudou moci použít.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Pokud je to možné, nabídněte pro klávesnicové činnosti více variant. Pro některé uživatele mohou být některé klávesy a kombinace kláves snadnější na použití než jiné.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Pokud je to možné, poskytněte přístup k funkcím jak z klávesnice, tak myší. Někteří uživatelé mohou být schopní používat buď jen myš nebo jen klávesnici, ale ne obojí.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nepřiřazujte nepříjemně dosažitelné kombinace často prováděným činnostem na klávesnici. Někteří lidé mohou být schopní používat na klávesnici jen jednu ruku, takže je pro běžné operace třeba dávat přednost klávesovým zkratkám, které se dají snadno provést jednou rukou. Nehledě na to, že mít pro často prováděné činnosti na klávesnici klávesy daleko od sebe nebo špatně dosažitelné, zvyšuje napětí svalů u všech uživatelů a tím i riziko bolesti a zdravotních komplikací.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nepožadujte opakované použití současného zmáčknutí více kláves. Někteří uživatelé jsou schopní v jednu chvíli zmáčknout a držet jen jednu klávesu. Asistenční technologie, jako je AccessX, mohou uživateli umožnit zmáčknout klávesy po sobě, místo naráz, to ale samozřejmě znamená, že operace zabere více času.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ujistěte se, že kterýkoliv text, který lze vybrat pomocí myši, je možné vybrat i pomocí klávesnice. To je výhodné pro všechny uživatele, ale zvláště pro ty, kterým činí obtíže přesné ovládání myši.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ujistěte se, že objekty, u kterých lze měnit velikost nebo je přesouvat, to lze provést i pomocí klávesnice. Například ikony a okna na pracovní ploše. Tam kde je potenciálně důležitá přesná změna velikosti nebo umístění, např. útvary v diagramu, zvažte také poskytnutí dialogového okna, ve kterém půjdou zadat souřadnice a rozměry číselně, nebo promyslete přichytávání objektů k uživatelem definované mřížce.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nepoužívejte obecné ovládací funkce ke spouštění činnosti. Například, nesnažte se použít ovládání klávesou <keycap>Tab</keycap> v dialogovém okně k aktivaci nějaké činnosti související s ovládacím prvkem.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Zobrazujte klávesnicí vyvolané nabídky, okna a vysvětlivky blízko objektu, ke kterému se vztahují. V GNOME 2 mohou uživatelé vyvolat vyskakovací nabídky pomocí <keycombo><keycap>Shift</keycap><keycap>F10</keycap></keycombo> a vysvětlivky pomocí <keycombo><keycap>Shift</keycap><keycap>F1</keycap></keycombo>. Pozor však, ať objekt, na který se nabídky nebo vysvětlivka odkazují, zcela nebo i jen částečně nezakryjete.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Spolupráce s myší</title>
Packit 1470ea
<para>Pamatujte, že ne každý může používat myš se stejnou obratností a že někteří uživatelé mohou mít problém sledovat ukazatel myši.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nevytvářejte závislost na vstupu z tlačítek 2 a 3 u myši. Jednak bývá fyzicky náročnější je zmáčknout a jednak některá ukazovací zařízení a řada zařízení pro asistenční technologie podporuje jen tlačítko 1. Některé asistenční technologie nemusí emulovat myš vůbec, ale generují místo ní události od klávesnice.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte možnost všechny operace s myší přerušit. Zmáčknutí klávesy <keycap>Esc</keycap> by mělo přerušit kteroukoliv operaci myší, která probíhá, jako třeba přetahování souboru ve správci souborů nebo přetahování útvaru v kreslícím programu.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Během operace táhni a upusť poskytněte zpětnou vizuální odezvu. Když myš dosáhne použitelného cíle, zvýrazněte jej a změňte ukazatel myši. Použijte ukazatel myši „nelze upustit“, když se přejíždí přes nepoužitelný cíl. Viz <link linkend="gad-mouse-examples">Příklady spolupráce s myší</link>.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nezakrývejte ukazatel myši nebo neomezujte pohyb myši jen na část obrazovky. Může se to křížit s asistenčními technologiemi a obvykle to mate i uživatele, kteří na nich nejsou závislí.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nevytvářejte příliš malé cíle pro myš. Obecně by cíle myši měly mít přinejmenším velikost „horké oblasti“ okolo okraje okna pro změnu velikosti v aktuálním okenním správci/motivu – s ohledem na to, že uživatel s poruchou zraku nebo pohyblivosti může používat okenního správce s širší oblastí, než je výchozí.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
Packit 1470ea
<section id="gad-mouse-examples">
Packit 1470ea
<title>Příklady spolupráce s myší</title>
Packit 1470ea
<figure>
Packit 1470ea
<title>Příklad ukazatele „nelze upustit“ z CDE/Motif</title>
Packit 1470ea
<mediaobject><imageobject><imagedata fileref="figures/nodrop.png" format="PNG"/></imageobject> <textobject><phrase>Příklad podoby ukazatele „nelze upustit“</phrase></textobject></mediaobject>
Packit 1470ea
</figure>
Packit 1470ea
</section>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Grafické prvky</title>
Packit 1470ea
<para>Poskytněte volbu k přizpůsobení prezentace všech podstatných grafických prvků ve své aplikaci. Díky tomu bude její používání snadnější pro lidí, kteří mají zrakové nebo pohybové postižení.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nevkládejte do kódu napevno vlastnosti grafiky, jako je tloušťka čar, okraje nebo stíny. Tyto prvky by ideálně měly být načítány z motivu GTK nebo z okenního správce. Pokud to není možné, nabídněte volbu změny přímo ve své aplikaci.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte popisné názvy pro všechny prvky rozhraní. Knihovna GAIL poskytuje výchozí zpřístupňující popisy pro řadu widgetů GTK, ale i tak budete potřebovat v některých případech přidat své vlastní, třeba pro widgety, které používají grafiku místo textu (např. v barevné paletě nebo v ikoně bez popisku). Jestli je to možné, zvažte přepsání výchozího popisu nějakým názornějším nebo popisem specifickým pro aplikaci.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Pokud je to možné, umožněte vícebarevné grafické prvky (např. ikony na nástrojové liště) zobrazit jen monochromaticky. Tyto monochromatické obrázky by měly být zobrazeny v barvách popředí a pozadí, které si uživatel sám zvolí v nastavení systému (výběrem motivu GTK), aby dosáhl pro něj nejlepší čitelnosti.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Zajistěte, aby interaktivní prvky grafického rozhraní byly snadno rozpoznatelné. Například, nenuťte uživatele najíždět myší na objekt, aby zjistil, jestli se na něj dá kliknout či nikoliv. Ponechávejte mezi objekty dostatek místa a jasně vymezte jejich hranice. Nezobrazujte prvky grafického rozhraní, které sice vypadají hezky, ale ve skutečnosti nic nedělají, a když už ano, nabídněte volbu je vypnout.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte volbu ke skrytí grafiky, která nevyjadřuje žádné podstatné informace. Grafické obrázky mohou být rušivé pro uživatele s některými poruchami rozpoznávání. Například lze vypnout ikony v nabídkách GNOME a funkčnost nabídek přitom zůstane zachována.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Písma a text</title>
Packit 1470ea
<para>Dokonce i pro uživatele s normálním zrakem poskytují textové výstupy většinu informací a zpětné odezvy ve většině aplikací. Je proto rozhodující správně zvolit a umístit text na obrazovce a ponechat volbu písma a jeho velikosti na uživateli, aby se i uživatelům se zrakovým postižením poskytla možnost aplikaci plně používat.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Neurčujte napevno styl a velikost písma. Uživatel by měl mít možnost přizpůsobit si u všech textů velikost a typ písma. Pokud z nějakého důvodu tuto funkčnost nemůžete nabídnout, nikdy napevno nezadávejte menší velikost než 10 bodů.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte volbu vypnout grafické doplňky a „vodoznaky“ za textem. Takové obrázky narušují kontrast mezi textem a pozadím, což může způsobit obtíže pro uživatele se zrakovým postižením.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Popisky objektů mají mít názvy, které mají smysl, i když jsou vytržené z kontextu. Uživatelé spoléhající na čtečku obrazovky nebo podobné asistenční technologie nemusí být ihned schopni pochopit vztah mezi ovládacím prvkem a věcmi, které jej obklopují.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nepoužívejte stejný popisek v jednom okně vícekrát. Když použijete stejný popisek v různých oknech, pomůže, když bude mít v obou dvou stejný význam. Rovněž nepoužívejte v jednom okně popisky, které se sice jinak píší, ale stejně znějí. Např. v angličtině „read“ a „red“ nebo v češtině „správa“ a „zpráva“, protože to může být matoucí pro uživatele spoléhající na čtečku obrazovky.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Umisťujte popisky v celé aplikaci stejným způsobem. Normálně to bývá přímo pod velkými ikonami, napravo hned vedle malých ikon a přímo nad nebo nalevo od ovládacích prvků. Viz <link linkend="gad-font-examples">Příklady písem a textů</link>.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Když použijete v popisku pro ovládací prvek statický text, zakončete jej dvojtečkou. Například <guilabel>Uživatelské jméno:</guilabel> v popisku pro textové pole, do kterého má uživatel napsat své uživatelské jméno. Pomůže to rozpoznat, že popisek není samostatný, ale patří k ovládacímu prvku.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Když používáte statický text jako popisek pro ovládací prvek, nastavte popisek tak, aby bezprostředně předcházel ovládacímu prvku v pořadí ovládání klávesou Tab. To zajistí, že horká (mneomotechnická) klávesa, kterou v popisku pomocí podtržítka nadefinujete, způsobí při zmáčknutí zaměření nebo aktivaci správného ovládacího prvku.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytujte alternativu k WYSIWYG (přesnému grafickému zobrazení výsledné podoby). Například někteří uživatelé mohou potřebovat tisknout text malým písmem, ale upravovat jej s velkým písmem. Možné alternativy zahrnují zobrazení veškerého textu stejným písmem ve stejné velikosti (obojí podle výběru uživatele), volbu „zalamování do okna“, která umožní uživatelům číst všechen text bez nutnosti vodorovného posouvání, jednosloupcové zobrazení, které zobrazuje obsah okna v jediném sloupci, i když vytisknut bude ve více sloupcích, a čistě textové zobrazení, kdy je grafika nahrazena zástupnými objekty nebo popisným textem. Pokud má aplikace panely s podřízenými ovládacími prvky, zvažte umožnit roztáhnout je přes celé rodičovské okno.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
Packit 1470ea
<section id="gad-font-examples">
Packit 1470ea
<title>Příklady s písmy a texty</title>
Packit 1470ea
<figure id="label-placement-example">
Packit 1470ea
<title>Správné umístění popisků pro různé prvky GUI</title>
Packit 1470ea
<informaltable frame="all">
Packit 1470ea
<tgroup cols="3" align="center">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry valign="middle"><mediaobject>
Packit 1470ea
<imageobject>
Packit 1470ea
<imagedata fileref="figures/label_above.png" format="PNG"/>
Packit 1470ea
</imageobject>
Packit 1470ea
<textobject>
Packit 1470ea
<phrase>List control with label above</phrase>
Packit 1470ea
</textobject>
Packit 1470ea
</mediaobject> Ovládací prvek seznam s popiskem nad sebou</entry>
Packit 1470ea
<entry valign="middle"><mediaobject>
Packit 1470ea
<imageobject>
Packit 1470ea
<imagedata fileref="figures/label_below.png" format="PNG"/>
Packit 1470ea
</imageobject>
Packit 1470ea
<textobject>
Packit 1470ea
<phrase>Large file manager icon with label underneath</phrase>
Packit 1470ea
</textobject>
Packit 1470ea
</mediaobject> Velká ikona správce souborů s ikonou pod sebou</entry>
Packit 1470ea
<entry valign="middle"><mediaobject>
Packit 1470ea
<imageobject>
Packit 1470ea
<imagedata fileref="figures/label_right.png" format="PNG"/>
Packit 1470ea
</imageobject>
Packit 1470ea
<textobject>
Packit 1470ea
<phrase>Small toolbar icon with label to its right</phrase>
Packit 1470ea
</textobject>
Packit 1470ea
</mediaobject> Malá ikona nástrojové lišty s popiskem po své pravé straně</entry>
Packit 1470ea
<entry valign="middle"><mediaobject>
Packit 1470ea
<imageobject>
Packit 1470ea
<imagedata fileref="figures/label_left.png" format="PNG"/>
Packit 1470ea
</imageobject>
Packit 1470ea
<textobject>
Packit 1470ea
<phrase>Spinbox control with label to its left</phrase>
Packit 1470ea
</textobject>
Packit 1470ea
</mediaobject> Ovládací prvek číselník s popiskem po své levé straně</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
</informaltable>
Packit 1470ea
</figure>
Packit 1470ea
</section>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Barvy a kontrast</title>      
Packit 1470ea
<para>Špatný výběr barev pro zobrazení může způsobit problémy lidem s barvoslepostí (pro ně je důležitý odstín barvy) nebo slabozrakostí (pro ně je důležitý jas/kontrast). Obecně byste měli umožnit uživatelům přizpůsobit si barvy kterékoliv části aplikace, která poskytuje podstatné informace.</para>
Packit 1470ea
<para>Uživatelé se zrakovým postižením mohou požadovat vysoký kontrast mezi pozadím a barvou textu. Často je používáno černé pozadí a bílý text, aby se předešlo přepalování. Tato nastavení jsou rozhodující pro uživatele se zrakovým postižením.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nezadávejte do aplikace napevno barvy. Někteří uživatelé potřebují používat určité kombinace barev a úrovně kontrastu, aby dokázali pohodlně číst obrazovku. Z toho důvodu by měly být hlavní barvy požívané ve vaší aplikaci pro GNOME přebírány z motivu GTK, takže si uživatelé mohou nastavit barvy pro všechny své aplikace na něco čitelnějšího pouhou změnou motivu. Pokud z nějakého důvodu potřebujete použít barvu, která není dostupná v motivu, zajistěte, aby byla nastavitelná v rámci aplikace.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nepoužívajte barvu jako jediné znázornění významu položky. Všechny informace by měly být poskytovány nejméně jedním dalším způsobem, třeba tvarem, polohou nebo textovým popisem. Viz <link linkend="gad-color-examples">Příklady s barvami a kontrastem</link>.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Podporujte všechny motivy GNOME s vysokým kontrastem. Ujistěte se, že když jeden z těchto motivů vyberete, bude všechen text ve vaší aplikaci ve vysokém kontrastu mezi barvou popředí a pozadí daného motivu.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Zajistěte, aby vaše aplikace nebyla závislá na konkrétním motivu s vysokým kontrastem. Otestujte ji s různými motivy s vysokým kontrastem, abyste měli jistotu, že aplikace respektuje nastavení.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
Packit 1470ea
<section id="gad-color-examples">
Packit 1470ea
<title>Příklady s barvami a kontrastem</title>
Packit 1470ea
<example>
Packit 1470ea
<title>Příklad ukazující zdvojené použití barvy</title>
Packit 1470ea
<informaltable frame="all">
Packit 1470ea
<tgroup cols="2">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry valign="middle">
Packit 1470ea
<mediaobject><imageobject> <imagedata fileref="figures/color_only.png" format="PNG"/> </imageobject> <textobject> <phrase>Příklad ukazuje změny v cenách akcií jen pomocí barvy</phrase> </textobject></mediaobject>
Packit 1470ea
</entry>
Packit 1470ea
<entry>Takovéto zobrazení může způsobit problémy barvoslepým uživatelům, kteří nerozeznají červenou od zelené (barvoslepost postihuje v některých zemích až 1 ze 7 mužů). Nedostatečný kontrast mezi červeným textem a černým pozadím by rovněž mohl ztížit čtení některým slabozrakým uživatelům, i když použijí lupu obrazovky.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry valign="middle">
Packit 1470ea
<mediaobject><imageobject> <imagedata fileref="figures/color_and_arrows.png" format="PNG"/> </imageobject> <textobject> <phrase>Příklad ukazuje změny v cenách akcií současně pomocí barvy a šipek</phrase> </textobject></mediaobject>
Packit 1470ea
</entry>
Packit 1470ea
<entry>Takovéto zobrazení vylepšuje barevné rozlišení ještě šipkami, které naznačují směr pohybu ceny akcií, a používá tmavší odstíny zelené a červené na světlejším pozadí, aby se zajistil větší kontrast. Nemusí jít o výchozí barevné schéma, pokud by testování ukázalo, že na většinu uživatelů působí příliš rušivě, ale mělo by být možné si jej přizpůsobit, buď pomocí motivů nebo v dialogovém okně <guilabel>Předvolby</guilabel> v dané aplikaci.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
</informaltable>
Packit 1470ea
</example>
Packit 1470ea
</section>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Lupa</title>
Packit 1470ea
<para>Z výhod zvětšení textu a grafiky může těžit spousta uživatelů, i když nemají zrakové postižení. Ale bez možnosti zvětšení nebudou uživatelé se zrakovým postižením moci program vůbec používat.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte uživateli možnost přiblížit si pracovní oblast.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte v aplikaci volbu přiblížení/oddálení pracovní oblasti. Uživatelé potřebují v nabídce přiblížení pracovní oblasti 150 % až 400 % nebo více. Otestujte aplikaci, abyste ověřili, že zobrazené objekty nebudou změnou přiblížení nějak postiženy.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Zvuk</title>
Packit 1470ea
<para>Lidé, kteří mají problém se sluchem, stejně jako lidé, kteří pracují na počítači s vypnutým zvukem, budou znevýhodněni, když vaše aplikace bude spoléhat na zvuk, jako jediný prostředek sdělení informace. Obecně, zajistěte, aby uživatelé mohli získat zvukové informace i jiným vhodným způsobem.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nepředpokládejte, že uživatel uslyší zvukové informace. Nemusí jít jen o zvukové postižení uživatele, stačí, když bude mít vadnou zvukovou kartu.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nepoužívejte zvuk jako jediný prostředek sdělení informace. Dejte uživateli možnost volby mít všechny zvukové informace i ve vizuální podobě. Zahrnuje to poskytování titulků nebo přepisů pro všechny důležité mluvené zvukové klipy.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Umožněte uživatelům nastavit si frekvenci a hlasitost všech varovných pípnutí a dalších zvuků. Včetně možnosti vypnout naráz všechny zvuky.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Animace</title>
Packit 1470ea
<para>Když se animace používají přiměřeně, mohou být užitečné pro zdůraznění důležitých informací ve vaší aplikaci – a navíc mohou vypadat dobře. Mohou ale působit potíže některým uživatelům, takže zajistěte, aby šly vypnout.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nepoužívejte blikání prvků s frekvencí větší net 2 Hz a nižší než 55 Hz. To platí jak pro text, tak pro grafické objekty. Cokoliv v tomto rozsahu frekvencí může způsobit problémy uživatelům s vjemově vyvolávanými záchvaty. Poznamenejme ale, že neexistuje žádná „bezpečná“ frekvence. U blikání je podstatné, že byste měli použít frekvenci blikání systémového kurzoru (kterou si uživatel může přizpůsobit), nebo umožnit uživateli si ji upravit v aplikaci.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Neblikejte velkými plochami obrazovky. U menší oblasti je méně pravděpodobné že spustí záchvat u lidí, kteří jsou na záchvaty náchylní.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Všechny animace ponechte volitelné. Všechny informace podávané animací by měly být na uživatelův požadavek dostupné nejméně jedním jiným způsobem.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Zaměření klávesnicí</title>
Packit 1470ea
<para>Jasné označení místa zaměřeného klávesnicí je vždy důležité, jak pro uživatele se zrakovým postižením, tak pro „pokročilé“ uživatele, kteří dávají přednost ovládání z klávesnice před myší. Nikdy by neměli být zmateni tím, který ovládací prvek na pracovní ploše je zrovna zaměřený. Neměli byste mít problém opustit počítače s ponecháním zaměření na některém widgetu v aplikaci, jít někam pryč, zatelefonovat přítelkyni, vyvenčit psa a při tom všem zapomenout, který prvek byl zaměřen a až se vrátíte, měli byste okamžitě dokázat poznat, který widget to je.</para>
Packit 1470ea
<para>Indikátor vizuálního zaměření je zvukovou podobou pozice kurzoru relativně vůči ostatním objektům v pracovním prostředí. Díky tomu se uživatel může pohybovat interaktivně okolo objektů tak, jak se mění zaměření. Vizuální zaměření musí být programově oznamováno asistenčním technologiím. Poznamenejme ale, že ve většině případů se tak děje automaticky pomocí ATK, aniž byste pro to museli něco udělat. Musíte ale tomuto požadavku například věnovat pozornost, když píšete svůj vlastní widget.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Začněte se zaměřením nejčastěji používaného ovládacího prvku. Pokud nelze o žádném ovládacím prvku v okně říct, že by byl „nejčastěji“ používaný, začněte po otevření okna se zaměřením na prvním ovládacím prvku. Zaměření by nemělo začínat na tlačítkách <guilabel>Budiž</guilabel> nebo <guilabel>Zrušit</guilabel> v dialogovém okně, i když jsou nejčastěji používané, protože je lze vždy aktivovat bezprostředně zmáčknutím <keycap>Enter</keycap> nebo <keycap>Esc</keycap>.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Vždy jasně zobrazujte aktuální zaměření vstupu. Pamatujte, že v ovládacích prvcích, které obsahují posuvníky, nemusí stačit zvýraznit jen pravě vybraný prvek uvnitř posouvané oblasti, protože nemusí být zrovna vidět. Viz <link linkend="gad-focus-examples">Příklady zaměření klávesnicí</link>.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Zobrazujte zaměření vstupu jen v aktivním okně. Všechny primární vizuální ukazatele zaměření v oknech, které nemají zaměření a nejsou aktivní, skryjte. Když má jedno okno oddělené panely, jen jeden z nich by měl mít indikátor zaměření a v ostatních panelech by měly být skryty. Pokud je důležité zobrazovat, která položka je v nezaměřených seznamem vybrána, použijte například druhotný indikátor zaměření. Viz <link linkend="gad-focus-examples">Příklady zaměření klávesnicí</link>.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte uživateli vhodnou zpětnou vazbu, když se pokusí dostat za konec skupiny souvisejících objektů. Například při cyklickém pohybu v seznamu je při přesunu zaměření zpět na první objekt v seznamu často používána zpětná vazba v podobě zastavení se zvukovým upozorněním. V opačném případě by slepí nebo slabozrací uživatelé netušili, že se vrátili na začátek. V případě vyhledávání textu v dokumentu můžete zobrazit dialogové okno, které upozorní na dosažení konce dokumentu a dotáže se, jestli chce uživatel pokračovat s hledáním od začátku dokumentu.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Když uživatel zmáčkne nevhodnou klávesu nebo když navigační klávesa selže v provedení pohybu na zaměřeném prvku, přehrajte výchozí systémový zvukový nebo vizuální signál pro varování. Například, když je zaměřen první znak v textovém poli a uživatel zmáčkne kurzorovou šipku doleva nebo když se uživatel pokusí vybrat více v souborů v dialogovém okně pro výběr jednoho souboru. (Poznamenejme, že uživatel se sluchovým postižením by měl mít možnost si v systému nastavit vizuální náhradu výchozího zvukového varování.)</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
Packit 1470ea
<section id="gad-focus-examples">
Packit 1470ea
<title>Příklady zaměření klávesnice</title>
Packit 1470ea
<example><title>Příklady ukazují nutnost jasného zobrazení zaměření</title>
Packit 1470ea
<informaltable frame="all">
Packit 1470ea
<tgroup cols="2">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry valign="middle">
Packit 1470ea
<mediaobject><imageobject><imagedata fileref="figures/badfocus1.png" format="PNG"/></imageobject> <textobject><phrase>Zaměřenou položku v tomto okně nemůžete vidět, protože je posunutá mimo obrazovku</phrase> </textobject></mediaobject>
Packit 1470ea
</entry>
Packit 1470ea
<entry>Jeden ovládací prvek v tomto okně má zaměření, ale není možné říci který…</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry valign="middle">
Packit 1470ea
<mediaobject><imageobject><imagedata fileref="figures/badfocus2.png" format="PNG"/></imageobject> <textobject><phrase>Zaměřená položka se posuvem dostala do viditelné části</phrase></textobject></mediaobject>
Packit 1470ea
</entry>
Packit 1470ea
<entry>…dokud se seznam neposune, čímž se právě vybraná položka odhalí.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry valign="middle">
Packit 1470ea
<mediaobject><imageobject><imagedata fileref="figures/goodfocus.png" format="PNG"/></imageobject> <textobject><phrase>Ovládací prvek seznam v tomto příkladu má plné ohraničení, který signalizuje zaměření, ať už je vybraná položka vidět nebo ne</phrase></textobject></mediaobject>
Packit 1470ea
</entry>
Packit 1470ea
<entry>Když má přímo ovládací prvek se seznamem ohraničení „zaměřeno“, lze jednoduše říci, že je zaměřený, i když právě vybraná položka není vidět.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
</informaltable>
Packit 1470ea
</example>
Packit 1470ea
<example>
Packit 1470ea
<title>Ilustrační příklad používající druhotné zaměření</title>
Packit 1470ea
<informaltable frame="all">
Packit 1470ea
<tgroup cols="2">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry valign="middle">
Packit 1470ea
<mediaobject><imageobject><imagedata fileref="figures/badfocus3.png" format="PNG"/></imageobject> <textobject><phrase>Okno rozdělené na panely, kdy oba panely vypadají, že mají zaměření</phrase></textobject></mediaobject>
Packit 1470ea
</entry>
Packit 1470ea
<entry>V tomto příkladu není možné říci jen po pouhém pohledu, který ze dvou panelů má právě zaměření klávesnice.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry valign="middle">
Packit 1470ea
<mediaobject><imageobject><imagedata fileref="figures/goodfocus3.png" format="PNG"/></imageobject> <textobject><phrase>Okno rozdělené na panely, kdy druhotné zvýraznění je použito k zobrazení, který panel má zaměření</phrase></textobject></mediaobject>
Packit 1470ea
</entry>
Packit 1470ea
<entry>Díky použití druhotného barevného zvýraznění výběru v neaktivním panelu, je ihned jasné, že zde má zaměření ovládací prvek se stromem…</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry valign="middle">
Packit 1470ea
<mediaobject><imageobject><imagedata fileref="figures/goodfocus2.png" format="PNG"/></imageobject> <textobject><phrase>Okno rozdělené na panely, kdy druhotné zvýraznění je použito k zobrazení, který panel má zaměření</phrase></textobject></mediaobject>
Packit 1470ea
</entry>
Packit 1470ea
<entry>… a zde má zaměření ovládací prvek se seznamem.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
</informaltable>
Packit 1470ea
</example>
Packit 1470ea
</section>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Načasování</title>
Packit 1470ea
<para>Uživatelská rozhraní, ve kterých se věci objevují, mizí nebo se dějí podle časových omezení napevno daných v kódu, jsou často překážkou v přístupnosti. Někteří uživatelé mohou číst, psát a reagovat jen velmi pomalu v porovnání s ostatními lidmi. Když se jim nějaká informace skryje dřív, než jsou s ní hotovi, nebo ji překryje jiná informace, kterou si výslovně nevyžádali, stává se pro ně použití aplikace velmi frustrující, ne-li nemožné.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nezadávejte časová omezení a jiné na čase závislé funkce napevno do kódu. Příklady budiž automatický posuv při tažení objektu k okraji okna, držení tlačítka posuvníku nebo automatické rozbalení uzlu ve stromu, když je přes něj tažen objekt a chvilku podržen na místě. Mělo by to být přizpůsobitelné buď přímo v aplikaci nebo v ovládacím centru GNOME nebo, jako nejhorší varianta, aspoň ručně z příkazového řádku záznamem v souboru s nastavením nebo v GConf.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Nezobrazujte a neskrývejte informace jen na okamžik v závislosti na pohybu ukazatelem myši. (Výjimka: funkce poskytované systémem, jako jsou vysvětlivky, které si může uživatel na úrovni systému nastavit). Pokud takové funkce musíte poskytovat, nabídněte k nim volbu je vypnout, když je nainstalován nástroj pro zkoumání obrazovky.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Dokumentace</title>
Packit 1470ea
<para>Lidé s postižením nemohou používat aplikaci plně, když nemají přístup k potřebným příručkám a nápovědě. Podstatnou věcí je ovládání z klávesnice, protože pro řadu uživatelů to může být jediný způsob ovládání aplikace.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Poskytněte veškerou dokumentaci v přístupném formátu. ASCII a HTML jsou skvělé formáty pro asistenční technologie.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ke všem grafickým prvkům v dokumentaci poskytněte alternativní textový popis.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Zdokumentujte všechny funkce zpřístupnění ve své aplikaci. Ovládání klávesnicí a klávesové zkratky jsou zvláště důležitou věcí ke zdokumentování. Zahrňte do své dokumentace kapitolu o zpřístupnění, ve které bude možné najít všechny informace o funkcích zpřístupnění.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
</section>
Packit 1470ea
</chapter>
Packit 1470ea
Packit 1470ea
<chapter id="gtest" status="draft">
Packit 1470ea
<title>Testování</title>
Packit 1470ea
<para>Je několik věcí, které by měly být prověřeny, než je možné aplikaci prohlásit za přístupnou. V průběhu vývoje možná budete uvažovat o automatických testovacích technikách. Váš plán automatizovaných testů by mohlo doplnit například <ulink url="http://ldtp.freedesktop.org/">LDTP</ulink>.</para>
Packit 1470ea
<para>Tato část popisuje řadu testů, které můžete u aplikace provést ručně, abyste odzkoušeli její zpřístupnění. To, že všechny testy projdou, ještě nutně neznamená, že aplikace je plně zpřístupněná, ale pokud naopak v některém z testů selže, bude potřeba další práce, aby se zdokonalila z hlediska zpřístupnění.</para>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Ovládání klávesnicí</title>
Packit 1470ea
<para>Otestovány by měly být následující operace z klávesnice. V žádné části z těchto testů nepoužívejte myš.</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Jen pomocí klávesnice projděte zaměřením všechny položky v nabídkové liště aplikace.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ujistěte se, že:</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Kontextově citlivé nabídky se zobrazují správně.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Libovolné funkce uvedené na nástrojové liště lze provést i pomocí klávesnice.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Můžete použít všechny ovládací prvky v klientské části aplikace a v dialogových oknech.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Text a objekty v klientské oblasti je možné vybrat.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Vylepšené ovládání klávesnicí nebo klávesové zkratky fungují, jak mají.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Grafické prvky</title>
Packit 1470ea
<para>Otestujte aplikaci pomocí čtečky obrazovky a ujistěte se, že:</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Popisky a text jsou správně čteny, včetně nabídek a nástrojových lišt.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Informace o objektu jsou správně čteny.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Vizuální indikátor zaměření</title>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ověřte, že když se posouváte podél objektů, které mají indikátor vizuálního zaměření, je snadné je rozpoznat.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Při ovládání softwaru a nabídek klávesnicí by měl být jasně viditelné, kam se přesouvá zaměření.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ověřte, že čtečka obrazovky sleduje indikátor vizuální zaměření tak, jak se pohybujete pomocí klávesnice.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Spusťte lupu obrazovky (pokud je k dispozici) a ověřte, že lupa sleduje indikátor vizuálního zaměření tak, jak se pohybujete pomocí klávesnice.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Písma a text</title>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Změňte v aplikaci písmo a ověřte si, že nastavení je použitelné.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Otestujte aplikaci změnou barev a ověřte si, že nastavení je použitelné.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Když je k dispozici zvětšení, otestujte s ním písmo, barvu a velikost.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Barvy a kontrast</title>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Vytiskněte snímek obrazovky na černobílou tiskárnu a ověřte si, že všechny informace jsou viditelné.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Otestujte aplikaci jen v černobílém nastavení s vysokým kontrastem a ověřte, že všechny informace jsou podávány správně.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Otestujte, že aplikace poskytuje nejméně tři kombinace barevných schémat, a že je k dispozici i schéma s vysokým kontrastem (např. bílá na černé nebo žlutá na modré).</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Zapněte v ovládacím centru GNOME vysoký kontrast a ověřte, že aplikace toto nastavení respektuje.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Otestujte různé motivy, abyste se ujistili, že software funguje pro všechna dostupná nastavení.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Zvuk</title>
Packit 1470ea
<para>V aplikaci by měla být možnost zobrazit všechna zvuková upozornění vizuálně.</para>
Packit 1470ea
<para>Povolením zvuku v ovládacím centru GNOME otestujte, že zvuk funguje správně a proveďte následující činnosti:</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Proveďte činnosti, které by měly vyvolat zvukové upozornění a ověřte, že aplikace pracuje, jak byla navržena.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ověřte, že aplikace funguje správně, když zvýšíte nebo snížíte hlasitost.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ověřte, že varovné zprávy a upozornění budou dobře slyšet i v hlučném pracovním prostředí.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Animace</title>
Packit 1470ea
<para>Ověřte, že je k dispozici volba k zastavení animace, a že funguje, jak má.</para>
Packit 1470ea
<para>Vypněte animace. Ověřte, že všechny informace jsou stále podávány správně.</para>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Zaměření klávesnicí</title>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Otestujte všechny zprávy, abyste si ověřili, že uživatel je upozorněn dříve, než zpráva zmizí, a že má možnost dát najevo, že potřebuje více času.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Ujistěte se, že je k dispozici volba pro přizpůsobení času na reagování a ověřte, že funguje, jak má.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Dokumentace</title>
Packit 1470ea
<para>Otestujte dokumentaci v čistě textové podobě spolu se čtečkou obrazovky a ověřte, že je asistenční technologií čtena jasně a přesně.</para>
Packit 1470ea
<para>Otestujte dokumentaci v HTML pomocí webového prohlížeče a čtečky obrazovky, abyste se ujistili, že k dokumentaci mají přístup asistenční technologie.</para>
Packit 1470ea
<para>Poznámka: Příručka k zpřístupnění webů je dostupná na <ulink url="http://www.w3.org/TR/WAI-WEBCONTENT/">http://www.w3.org/TR/WAI-WEBCONTENT/</ulink>.</para>
Packit 1470ea
<para>Zkontrolujte, že jsou součástí dokumentace následující informace:</para>
Packit 1470ea
<itemizedlist>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Upozornění, když aplikace nepodporuje některý ze standardních přístupů z klávesnice používaných operačním systémem.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Vypíchnutí jedinečných klávesnicových příkazů.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Vypíchnutí jedinečných funkcí zpřístupnění.</para>
Packit 1470ea
</listitem>
Packit 1470ea
<listitem>
Packit 1470ea
<para>Pokud je nějaká činnost zdokumentovaná pro myš, informaci o alternativě pro použití klávesnice.</para>
Packit 1470ea
</listitem>
Packit 1470ea
</itemizedlist>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="gad-checklist">
Packit 1470ea
<title>Kontrolní seznam pro uživatelské rozhraní</title>
Packit 1470ea
<para>Tato část shrnuje pokyny dané v kapitole <link linkend="gad-ui-guidelines">Pokyny k uživatelskému rozhraní ohledně podpory zpřístupnění</link>. Když budete chtít podrobnější informace k některé z položek kontrolního seznamu, měli byste se podívat právě do této kapitoly.</para>
Packit 1470ea
<para>Když aplikaci testujete ohledně zpřístupnění, měli byste projít všechny položky v tomto seznamu. U každé si poznačte, zda test prošel nebo selhal, případně u aplikace nemá význam.</para>
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro obecné principy</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>OP</entry>
Packit 1470ea
<entry>Obecné principy</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>OP.1</entry>
Packit 1470ea
<entry>Každá činnost, která mění uživatelská data nebo nastavení aplikace by měla jít vrátit zpět.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry>OP.2</entry>
Packit 1470ea
<entry>Všechna nastavení aplikace by mělo být možné obnovit na výchozí hodnoty, aniž by si uživatel musel pamatovat, jaké byly.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry>OP.3</entry>
Packit 1470ea
<entry>Po nainstalování by aplikace měla jít používat, aniž by uživatel musel někdy vkládat disk nebo CD.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OP.4</entry>
Packit 1470ea
<entry>Nejčastěji používané funkce by se měly nacházet v horní úrovni struktury nabídek.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro ovládání z klávesnice</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>OK</entry>
Packit 1470ea
<entry>Ovládání klávesnicí</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>OK.1</entry>
Packit 1470ea
<entry>Použitelný přístup z klávesnice musí být poskytnut pro všechny funkce aplikace.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry>OK.2</entry>
Packit 1470ea
<entry>Všechna okna musí mít logické pořadí pro ovládní z klávesnice.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.3</entry>
Packit 1470ea
<entry>Ovládací prvky, které jsou přístupné v závislosti na zaškrtávacím políčku, skupinovém přepínači nebo přepínacím tlačítku, mají správné pořadí pro klávesu <keycap>Tab</keycap>.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.4</entry>
Packit 1470ea
<entry>Přístup z klávesnice k funkcím týkajícím se aplikace nepřepisuje stávající systém funkcí zpřístupnění.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.5</entry>
Packit 1470ea
<entry>Pokud je to možné, poskytuje aplikace více než jednu metodu k provedení úloh z klávesnice.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.6</entry>
Packit 1470ea
<entry>Kdykoliv je to možné, je k dispozici alternativní kombinace kláves.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.7</entry>
Packit 1470ea
<entry>Pro často prováděné operace z klávesnice se nepoužívají žádné špatně dosažitelné klávesy.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.8</entry>
Packit 1470ea
<entry>Aplikace nepoužívá opakující se souběžná zmáčknutí kláves.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.9</entry>
Packit 1470ea
<entry>Aplikace poskytuje pro všechny funkce myši odpovídající ovládání klávesnicí.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.10</entry>
Packit 1470ea
<entry>Libovolný text nebo objekt, který je možné vybrat myší, musí jít vybrat i čistě pomocí klávesnice.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.11</entry>
Packit 1470ea
<entry>Libovolný objekt, u kterého je možné měnit velikost pomocí myši nebo jej myší přesouvat, mustí být možná změna velikosti a přesun i čistě pomocí klávesnice.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.12</entry>
Packit 1470ea
<entry>Aplikace nepoužívá žádné obecné ovládací funkce ke spouštění operací.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>OK.13</entry>
Packit 1470ea
<entry>Všechny nabídky, okna a vysvětlivky vyvolané klávesnicí se objeví poblíž objektu, ke kterému se vztahují.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro ovládání myší</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>SM</entry>
Packit 1470ea
<entry>Spolupráce s myší</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>SM.1</entry>
Packit 1470ea
<entry>Žádná operace nezávisí čistě na vstupu z <mousebutton>pravého</mousebutton> nebo <mousebutton>prostředního</mousebutton> tlačítka myši.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>SM.2</entry>
Packit 1470ea
<entry>Všechny operace s myší mohou být zrušeny dřív, než jsou dokončeny.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>SM.3</entry>
Packit 1470ea
<entry>Během operací táhni a upusť je poskytována zpětná vizuální vazba.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>SM.4</entry>
Packit 1470ea
<entry>Ukazatel myši nikdy nezajíždí pod ovládací prvky aplikace nebo není jeho pohyb aplikací omezen jen na část obrazovky.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro grafické prvky</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>GP</entry>
Packit 1470ea
<entry>Grafické prvky</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>GP.1</entry>
Packit 1470ea
<entry>Nejsou napevno zakódovány žádné grafické atributy, jako tloušťka čar, okraje nebo stíny.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>GP.2</entry>
Packit 1470ea
<entry>Všechny vícebarevné grafické prvky mohou být zobrazeny čistě monochromaticky, když je zapotřebí.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>GP.3</entry>
Packit 1470ea
<entry>Všechny interaktivní prvky uživatelského rozhraní musí být snadno rozlišitelné od statických prvků.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>GP.4</entry>
Packit 1470ea
<entry>Je k dispozici volba pro skrytí nedůležité grafiky.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro písma a texty</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>PT</entry>
Packit 1470ea
<entry>Písma a text</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>PT.1</entry>
Packit 1470ea
<entry>Žádný styl nebo velikost písma nejsou určeny natvrdo.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>PT.2</entry>
Packit 1470ea
<entry>Je poskytována volba vypnout grafické pozadí pod textem.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>PT.3</entry>
Packit 1470ea
<entry>Všechny popisky mají názvy, které dávají smysly, i když jsou vytržené z kontextu.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>PT.4</entry>
Packit 1470ea
<entry>Žádné názvy popisků nejsou v témže okně použity vícekrát.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>PT.5</entry>
Packit 1470ea
<entry>Umístění popisků je jednotné napříč celou aplikací.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>PT.6</entry>
Packit 1470ea
<entry>Všechny statické textové popisky, které identifikují ostatní ovládací prvky, jsou zakončené dvojtečkou (:).</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>PT.7</entry>
Packit 1470ea
<entry>Všechny statické textové popisky, které identifikují ostatní ovládací prvky, se nachází před těmito ovládacími prvky v rámci pořadí přepínání tabulátorem.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>PT.8</entry>
Packit 1470ea
<entry>Je poskytnuta alternativa k WYSIWIG (přesnému grafickému zobrazení výsledné podoby). Například v podobě možnosti v textovém editoru určit jinou obrazovku nebo písmo tisku.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro barvy a kontrast</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>BC</entry>
Packit 1470ea
<entry>Barvy a kontrast</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>BC.1</entry>
Packit 1470ea
<entry>Žádné barvy nejsou v aplikaci určeny natvrdo, ale vychází buď z aktuálního motivu pracovního prostředí nebo se dají v aplikaci nastavit.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>BC.2</entry>
Packit 1470ea
<entry>Barva je použita jen jako vylepšení a ne jako hlavní způsob sdělení významu informace nebo činnosti.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row>
Packit 1470ea
<entry>BC.3</entry>
Packit 1470ea
<entry>Aplikace podporuje všechny dostupné motivy s vysokým kontrastem a nastavení pro ně.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>BC.4</entry>
Packit 1470ea
<entry>Software není závislý na konkrétním motivu s vysokým kontrastem nebo jeho nastavení.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro zvětšování</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>ZL</entry>
Packit 1470ea
<entry>Lupa</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>ZL.1</entry>
Packit 1470ea
<entry>Aplikace poskytuje schopnost přiblížit pracovní oblast.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>ZL.2</entry>
Packit 1470ea
<entry>Aplikace nabízí volbu pro změnu měřítka pracovní oblasti.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>ZL.3</entry>
Packit 1470ea
<entry>Funkčnost aplikace není dotčena změnou zvětšení nebo nastavením přiblížení.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro zvuk</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>ZV</entry>
Packit 1470ea
<entry>Zvuk</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>ZV.1</entry>
Packit 1470ea
<entry>Zvuk není jediný způsob sdělení významu nějaké části informace.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>ZV.2</entry>
Packit 1470ea
<entry>Uživatel může nastavit frekvenci a hlasitost všech zvuků a varovných pípnutí.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro animace</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>AN</entry>
Packit 1470ea
<entry>Animace</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>AN.1</entry>
Packit 1470ea
<entry>Nepoužívají se blikající prvky s frekvencí větší než 2 Hz a menší než 55 Hz.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>AN.2</entry>
Packit 1470ea
<entry>Blikání je omezeno jen na malé části obrazovky.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>AN.3</entry>
Packit 1470ea
<entry>Pokud je použita animace, je k dispozici volba ji vypnout a to dříve, než se poprvé použije.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro zaměřování klávesnicí</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>ZK</entry>
Packit 1470ea
<entry>Zaměření klávesnicí</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>ZK.1</entry>
Packit 1470ea
<entry>Po otevření okna je zaměřen nejčastěji používaný ovládací prvek.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>ZK.2</entry>
Packit 1470ea
<entry>Aktuální pozice v zaměření vstupu je vždy jasně zobrazena.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>ZK.3</entry>
Packit 1470ea
<entry>Zaměření vstupu je zobrazené vždy jen v právě jednom okně.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>ZK.4</entry>
Packit 1470ea
<entry>Když se uživatel pokusí dostat za konec skupiny souvisejících objektů, dostane vhodnou zvukovou nebo vizuální zpětnou odezvu.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>ZK.5</entry>
Packit 1470ea
<entry>Když uživatel zmáčkne nesprávnou klávesu je přehráno výchozí zvukové a vizuální varování.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>ZK.6</entry>
Packit 1470ea
<entry>Existuje dostatek zvukových informací pro vizuální zaměření, aby uživatel mohl posoudit, co má dělat dál.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>ZK.7</entry>
Packit 1470ea
<entry>Když používáte asistenční technologie, jako je čtečka obrazovky nebo braillský řádek, aktuální program podává informaci o pozici a obsahu vizálního zaměření.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro načasování</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>NČ</entry>
Packit 1470ea
<entry>Načasování</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>NČ.1</entry>
Packit 1470ea
<entry>A aplikaci se nepoužívají žádné napevno zakódované časové limity a funkce závisející na čase.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>NČ.2</entry>
Packit 1470ea
<entry>Zobrazení nebo skrytí důležitých informací není spouštěno pouze pohybem ukazatele myši.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<title>Kontrolní seznam pro dokumentaci</title>
Packit 1470ea
<tgroup cols="3" align="left">
Packit 1470ea
Packit 1470ea
<row>
Packit 1470ea
<entry>DK</entry>
Packit 1470ea
<entry>Dokumentace</entry>
Packit 1470ea
<entry>Prošlo/Selhalo/Nepoužíváno</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
Packit 1470ea
<row><entry>DK.1</entry>
Packit 1470ea
<entry>Veškerá dokumentace je v přístupném formátu, s alternativním textovým popisem pro všechny obrázky a schémata.</entry>
Packit 1470ea
</row>
Packit 1470ea
<row><entry>DK.2</entry>
Packit 1470ea
<entry>Součástí dokumentace je kapitola popisující všechny funkce zpřístupnění v aplikaci.</entry>
Packit 1470ea
</row>
Packit 1470ea
Packit 1470ea
</tgroup>
Packit 1470ea
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>GOK (GNOME Onscreen Keyboard)</title>
Packit 1470ea
<note>
Packit 1470ea
<para>Informace na této stránce jsou částečně neaktuální: <application><ulink url="http://wiki.gnome.org/Caribou">Caribou</ulink></application> v GNOME 3 v podstatě nahradil <application>gok</application> z GNOME 2.</para>
Packit 1470ea
</note>
Packit 1470ea
Packit 1470ea
<para>Vaše aplikace by měla jít používat pomocí <application>gok</application>. Klávesové vstupy by měly být generovány zcela z <application>gok</application> a ne z klávesnice. Cílem by měla být práce s vaší aplikací a pracovním prostředím z obecného hlediska, ujistěte se, že z klávesnice na obrazovce je možné zadávat znaky.</para>
Packit 1470ea
<para>Aplikace <application>gok</application> je šířena spolu s pracovním prostředím GNOME, takže v by něm měla být obsažena. Úplnou dokumentaci najdete na <ulink url="http://www.gok.ca">oficiálních webu gok</ulink>.</para>
Packit 1470ea
<para>Následující kroky ověří správnost operací <application>gok</application> s vaší aplikací:</para>
Packit 1470ea
<procedure>
Packit 1470ea
<step>
Packit 1470ea
<para>Přihlaste se do pracovního prostředí GNOME.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Spusťte <application>gok</application>.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Spusťte aplikaci.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Proveďte nějaký vstup do své aplikace pomocí ukazovacího zařízení (např. myší nebo zařízením pro sledování očí) a pomocí <application>gok</application>.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Pracujte pomocí funkce automatického doplňování a odhadu slov v <application>gok</application>.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Ověřte, že <application>gok</application> zapíná a vypíná tlačítka <guibutton>Nabídky</guibutton> a <guibutton>Nástrojové lišty</guibutton> podle druhu spuštěné aplikace. Například pro aplet „Vlastnosti písma“  budou tato tlačítka vypnutá, zatímco pro aplikaci <application>Gedit</application> budou zapnutá.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Ověřte, že klávesnice na obrazovce <application>gok</application> lze za pomocí tlačítka <guibutton>Compose</guibutton> použít k psaní libovolného textu pro vybranou aplikaci. Spusťte <application>Gedit</application>, klikněte do textové oblasti a pak klikněte na tlačítko <guibutton>Compose</guibutton> v <application>gok</application>. Na klávesnici na obrazovce vyberte požadovanou klávesu. V textové oblasti aplikace <application>Gedit</application> by se měl objevit kýžený znak.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Ověřte, že <guibutton>spouštěcí</guibutton> tlačítko umožňuje spustit některou z aplikací <application>terminál</application>, <application>webový prohlížeč</application> nebo <application>textový editor</application>.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Ověřte, že tlačítko <guibutton>Aktivovat</guibutton> umožňuje uživateli aktivovat libovolné okno právě běžících aplikací v uživatelově pracovním prostředí, včetně panelů GNOME a plochy GNOME.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Ověřte, že tlačítko <guibutton>Nabídky</guibutton> ukáže všechny dostupné nabídky v právě běžící aplikaci. Ověřte, že kliknutí na tlačítko nabídky zobrazí podnabídku a položky v podnabídce. Nakonec ověřte, že kliknutím na položku nabídky se aktivuje položka nabídky. Například klikněte na aplikaci <application>Prohlížeč nápovědy</application> a pak klikněte na tlačítko <guibutton>Nabídky</guibutton>. Okno <application>GOK</application> nyní zobrazuje tlačítka <guibutton>Soubor</guibutton>, <guibutton>Přejít</guibutton> a <guibutton>Nápověda</guibutton> (nabídky aplikace <application>Prohlížeč nápovědy</application>). Klikněte na tlačítko <guibutton>Soubor</guibutton> a měla by se zobrazit tlačítka (položky nabídky) <guibutton>Nové okno</guibutton> a <guibutton>Zavřít okno</guibutton>.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Ověřte, že tlačítko <guibutton>Nástrojové lišty</guibutton> ukáže všechna dostupná tlačítka z nástrojové lišty aplikace. Například klikněte na aplikaci <application>Prohlížeč nápovědy</application> a pak klikněte na tlačítko <guibutton>Nástrojové lišty</guibutton>. Okno <application>GOK</application> by nyní mělo zobrazovat tlačítka <guibutton>Zpět</guibutton>, <guibutton>Vpřed</guibutton> a <guibutton>Domů</guibutton>.</para>
Packit 1470ea
</step>
Packit 1470ea
<step>
Packit 1470ea
<para>Ověřte, že tlačítko <guibutton>Zachytit UR</guibutton> zobrazí všechna tlačítka pro vybrané okno aplikace. Například otevřete aplet „Vlastnosti písma“ a klikněte na tlačítko <guibutton>Zachytit UR</guibutton> v okně <application>GOK</application>. Okno <guibutton>GOK</guibutton> by nyní mělo zobrazovat názvy tlačítek v apletu – <guibutton>Patkové</guibutton>, <guibutton>Bezpatkové</guibutton>, <guibutton>Zavřít</guibutton> a <guibutton>Nápověda</guibutton>.</para>
Packit 1470ea
</step>
Packit 1470ea
</procedure>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section>
Packit 1470ea
<title>Accerciser</title>
Packit 1470ea
<screenshot>
Packit 1470ea
<mediaobject><imageobject><imagedata fileref="figures/at-arch.png" format="PNG"/></imageobject> <textobject><phrase>Accerciser a architektura zpřístupnění v GNOME</phrase></textobject></mediaobject>
Packit 1470ea
</screenshot>
Packit 1470ea
Packit 1470ea
<para><application>Accerciser</application> je interaktivní průzkumník zpřístupnění pro pracovní prostředí GNOME napsaný v jazyce Python. Používá AT-SPI ke zkoumání a ovládání widgetů, takže můžete zkontrolovat, jestli aplikace poskytuje správné informace asistenčním technologiím a automatizovaným testovacím systémům. <application>Accerciser</application> má jednoduchý základní rámec pro zásuvné moduly, který můžete použít k vytvoření vlastních zobrazení informací o zpřístupnění. Ucelenou dokumentaci najdete <ulink url="http://library.gnome.org/devel/accerciser/stable">v oficiální příručce k aplikaci Accerciser</ulink>. Na ukázku použití aplikace <application>Accerciser</application> a <application>PyATSPI</application> (Python-wrappered access and usage of AT-SPI) se podívejte do <ulink url="http://live.gnome.org/Accessibility/PythonPoweredAccessibility">tohoto článku</ulink>. Skvělou procházku zpřístupněním aplikace přímo od autorů najdete v článku s názvem <ulink url="http://www.linuxjournal.com/article/9991">Make Your Application Accessible with Accerciser</ulink>.</para>
Packit 1470ea
<note>
Packit 1470ea
<para><application>Accerciser</application> v podstatě nahradil starší nástroj <application>at-poke</application>.</para>
Packit 1470ea
</note>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
</chapter>
Packit 1470ea
Packit 1470ea
</book>