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 Stäng-knapp:

    Exempel 1-1Tillhandahå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-2Relatera 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.