Kodriktlinjer för att stödja tillgänglighet
Här är några saker du kan göra i din kod för att få ditt program att fungera så bra som möjligt med hjälpmedelsteknologier. (Du kan hitta en lista över saker att överväga då du designar ditt grafiska användargränssnitt i avsnittet Riktlinjer för användargränssnitt som stöder tillgänglighet senare i detta dokument):
-
För komponenter som inte visar en kort sträng (så som en grafisk knapp), ange ett namn för den med atk_object_set_name(). Du kan vilja göra detta för knappar med bara bilder, paneler som tillhandahåller logiska grupperingar, textområden och så vidare.
-
Om du inte kan tillhandahålla en inforuta för en komponent, använd istället atk_object_set_description() för att tillhandahålla en beskrivning som hjälpmedelsteknologier kan ge användaren. För att till exempel tillhandahålla en tillgänglig beskrivning för en -knapp:
Exempel 1-1 Tillhandahålla en tillgänglighetsbeskrivning för en GtkButton{ AtkObject *obj; obj = gtk_widget_get_accessible(button); atk_object_set_description(obj,_("Stänger fönstret")); }
-
Använd atk_image_set_description() för att tillhandahålla en textbeskrivning för alla bilder och ikoner i ditt program.
-
Om flera komponenter formar en logisk grupp, försök placera dem i en behållare.
-
Närhelst du har en etikett som beskriver en annan komponent, använd atk_relation_set_add_relation() så att hjälpmedelsteknologier kan hitta komponenten som etiketten är associerad med. (Om du associerar etiketten med komponenten med hjälp av gtk_label_set_mnemonic_widget() så genereras ATK_RELATION_LABEL_FOR-relationen automatiskt, så följande kod skulle inte vara nödvändig):
Exempel 1-2 Relatera en GtkLabel till en 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)); }
-
Om du skapar en anpassad komponent, säkerställ att den stöder tillgänglighet. Anpassade komponenter som är ättlingar till andra GTK-komponenter bör åsidosätta ärvd tillgänglighetsinformation där så är lämpligt. För mer information, se Göra anpassade komponenter tillgängliga.
-
Förstör inte det som du får gratis! Om ditt grafiska användargränssnitt har en otillgänglig behållare så kan det hända att alla komponenter i den behållaren blir otillgängliga.