Ujistěte se, že AccessibleName je nastaveno u všech (hlavně uživatelských) komponent.
Ujistěte se, že AccessibleDescription je nastaveno u všech komponent - v případě, že kontext není zřejmý z
AccessibilityName použijte ToolTip. Více detailů najdete v FAQ.
Nastavte labelFor pro propojení mezi komponentou a JLabel komponentou.
Zajistěte logické pořadí navigace pomocí tabulátoru a inicializaci fokusu.
Přiřaďte mnemoniky pro fokusovatelné komponenty.
Uživatelské komponenty musí explicitně implementovat rozhraní Accessible - implements Accessible a poskytovat
obsah třídy AccessibleContext
Seskupte k sobě příbuzné komponenty do JPanelu a nastavte A11yDescription a A11yName.
Vyhněte se hardkódování barev a fontů
Použijte a11y modul, Accessibility Helper 02 a Ferret (A11y nástroje) pro testování
Otestujte TAB-order a mnemoniky manuálně (vyzkoušejte také ESC a Enter).
Každá řádka v reportu Accessibility Helperu by měla být okomentovaná (FIXED, FINE, atd.).
Vytvořte aktualizované screenshoty a linky do UI modulu
Zajištění a ověření základní accessibility aplikací - (author dokumentu v angličtině je Jeff Dunn)
Následují rychlé návody jak zajistit accessibilitu u Java[tm] aplikací. Kompletní sada směrnic obsahující
kusy kódu spolu s informacemi o vytváření uživatelských komponent je k dispozici na
IBM's Guidelines
pro psaní accessibilních aplikací za použití 100% Pure Java[tm] a Java Tutorial. Zhuštěnou verzi
obou dokumentů můžete najít na Developing
Accessible JFC Applications.
Používejte JFC(Swing) UI komponenty při vytváření aplikací. Vestavěná podpora pro
accessibilitu poskytovaná Java[tm] 2 platformou umožňuje produkovat accessibilní aplikace
rychle a efektivně.
Ujistěte se, že máte nastaveno AccessibleName na všech komponentách aplikace.
Zatímco AccessibleName je vyžadováno vždy, ne vždy je ale pro vývojáře nutné explicitně
nastavovat tuto vlastnost.
Komponenty jako je label, button a menu item mají AccessibleName propertu automaticky nastavenou
na text, který je obsažen v jejich jméně. Situace kdy label pojmenovává jinou komponentu,
například z komponenty label pojmenovávající textfield, se zdědí AccessibleName podle nastavení LabelFor
(podrobněji je popsáno níže v tipu LabelFor). Pokud předchozí doporučení neposkytují objekt s
vyhovujícím jménem, jako mapříklad .gif file, může být hodnota AccessibleName nastavena
programově na libovolný řetězec. Nastavení AccessibleName dovoluje aby assistive
technologie poskytly uživateli jméno komponenty, na které je zrovna fokus. To je vyžadováno vždy,
dokonce i v případě, že je na komponentě nastaven tooltip nebo AccessibleDescription.
Ujistěte se, že je AccessibleDescription nastaveno u všech komponent jejichž kontext není
zřejmý z jejich jména.
Pokud je účel komponenty zřejmý z jejího jména, může být tento krok vynechán. Pokud je ale vyžadováno
více informací, je potřeba zvážit přidání tooltipu do komponenty, protože AccessibleDescription
bude default hodnota tooltipu. Pokud není tooltip vhodný nebo je jeho obsah nedostatečný pro
postižené uživatele, pak je nutné nastavit AccessibleDescription. Nastavení hodnoty accessible description
umožní assistive technologiím aby poskytly detailnější informace o komponentě, obvykle na žádost uživatele.
Nastavte LabelFor pro komponenty aplikace.
Nastavením této vlastnosti se vytvoří propojení mezi položkami typu label a komponentami, ktré jsou označené
labelem. Je to velmi důležité v případě JLabel komponent, které se objevují před prázdnými textfieldy.
V těchto případech label říká uživateli, co je daný textfield zač. Propojení těchto položek umožňuje
assistive technologiím identifikovat a odkrýt uživateli editovatelné textfieldy.
Rozložení ineraktivních komponent do logického uspořádání pro procházení pomocí klávesy TAB.
Spousta uživatelů s postižením není schopna používat myš a spoléhá se při přecházení mezi
komponentami pouze na klávesnici. Logické uspořádání usnadní těmto uživatelům sledovat pozici komponent v aplikaci.
Je třeba přizpůsobit navigační pořadí podle locale uživatele. Například angličtina má strukturu navigace
zleva doprava a shora dolů.
Přiřazení mnemonik všem významným funkcím aplikace.
Pokud se uživatel spoléhá výlučně na klávesnici, je pro něj potřebný rychlý přechod na
důležité části UI (bez ohledu kde se zrovna nachází). Mnemoniky umožní navigaci bez procházení
komponent, jejichž navštívení není momentálně žádoucí.
Při vytváření komponent je nutné mít na paměti, že třída JComponent neimplementuje Accessible interface.
To je důvod, proč instance přímých podtříd nejsou accessibilní. Pokud uživatelská komponenta dědí přímo z třídy JComponent,
musí explicitně mít accessible kontext (takovou třídu nazýváme AccessibleJComponent), který implementuje
AccessibleComponent interface a poskytuje minimální množství accessible informací.
Accessible kontext pro uživatelské komponenty může být poskytnut vytvořením podtřídy AccessibleJComponent
a přepsáním důležitých metod.
Vyhněte se hard-kódováníAvoid barev a fontů.
Je důležité respektovat potřeby uživatele upravit tato nastavení - mohou být kritické pro
přečtení a pochopení kontextu obrazovky.
Použijte Java[tm] Accessibility Helper pro určení jak přátelský je váš program. Java
Accessibility Helper pomáhá vývojářům Java softwaru vytvářet JFC aplikace accessibilní pro osoby s postižením.
Helper generuje report obsahující prioritizovaný seznam problémů a potenciálních problémů v testované aplikaci.
Například zkontroluje, že všechny vstupní komponenty jsou dosažitelné z klávesnice.
AccessibilityTester z a11y.netbeans.org:
NetBeans AccessibilityTester může být použit při testování formulářů Form Editoru (nebo
testování applikací). Instalujte a11y.nbm
jako modul do NetBeans - přidá akci do toolbaru.
Accessibility Helper od společnosti
Sun.Pro testování NetBeans je doporučené použít verzi 02 - v aktuální verze jsou známé chyby.
Java
Accessibility Utilities od společnosti Sun. Ferret je dobrým nástrojem pro rychlé vyhodnocení.
A11yprop.zip
obsahuje Windows .bat soubor a soubor accessibility.properties pro použití těchto nástrojů.
Rozbalte tyto soubory do adresáře JDK_HOME/jre/lib.