Příručka k programování s podporou zpřístupnění
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 Pokyny k uživatelskému rozhraní ohledně podpory zpřístupnění v této příručce můžete najít seznam věcí, které byste měli vzít do úvahy, když navrhujete GUI.):
-
U komponent, které nezobrazují krátký název (jako jsou grafická tlačítka), určete název pomocí atk_object_set_name(). Budete to chtít u čistě obrázkových tlačítek, u panelů, které poskytují logické seskupení, u textových oblastí a pod.
-
Pokud nemůžete ke komponentě poskytnout vysvětlivku, použijte místo toho atk_object_set_description(), která poskytne popis, který mohou asistenční technologie předat uživateli. Například poskytnutí zpřístupňujícího popisu pro tlačítko by vypadalo takto:
Příklad 1-1 Poskytnutí zpřístupňujícího popisu pro GtkButton{ AtkObject *obj; obj = gtk_widget_get_accessible(button); atk_object_set_description(obj,_("Closes the window")); }
-
Použijte atk_image_set_description() k poskytnutí textového popisu ke všem obrázkům a ikonám ve svém programu.
-
Pokud několik komponent tvoří logickou skupinu, zkuste je vložit do jednoho kontejneru.
-
Kdykoliv máte popisek, který popisuje jinou komponentu, použijte atk_relation_set_add_relation(), aby asistenční technologie dokázala najít komponentu, se kterou je popisek svázán. (Když přidružíte popisek s komponentou pomocí gtk_label_set_mnemonic_widget(), je vztah ATK_RELATION_LABEL_FOR vygenerován automaticky, takže následující kód nebude nutný):
Příklad 1-2 Vytvoření vztahu mezi GtkLabel a GtkWidget{ GtkWidget *widget; GtkLabel *label; AtkObject *atk_widget, *atk_label; AtkRelationSet *relation_set; AtkRelation *relation; AtkObject *targets[1]; atk_widget = gtk_widget_get_accessible(widget); atk_label = gtk_widget_get_accessible (GTK_WIDGET(label)); relation_set = atk_object_ref_relation_set (atk_label); targets[0] = atk_widget; relation = atk_relation_new(targets,1, ATK_RELATION_LABEL_FOR); atk_relation_set_add(relation_set,relation); g_object_unref(G_OBJECT(relation)); }
-
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 zpřístupnění vlastních komponent.
-
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.