Exemples d'utilisation de l'API d'accessibilité

Comme remarqué plus tôt, vous avez peu ou pas de travail à faire pour rendre votre application accessible si vous utilisez les éléments graphiques de GTK, ou n'importe quel élément graphique provenant de bibliothèques qui implémentent les interfaces ATK. Les deux choses les plus courantes que vous allez faire dans ce cas sont :

  • fournir des descriptions pour certains contrôles et images avec les fonctions atk_object_set_description() ou atk_image_set_description() :

    Exemple I.3 Définition de la description d'accessibilité pour un bouton
    {
       AtkObject *obj;
       obj = gtk_widget_get_accessible(button);
       atk_object_set_description(obj,_("Ouvre la boîte de dialogue Préférences"));
    }
    

  • spécifier des relations entre tout regroupement inhabituel d'éléments graphiques en utilisant les fonctions atk_relation_new() et atk_relation_set_add() :

    Exemple I.4 Spécification des relations d'accessibilité entre deux contrôles
    {
      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));
    }
    

Les exemples dans la suite de cette section, vont vous donner un aperçu de l'étendue d'ATK. Ils couvrent des techniques dont vous pouvez ne jamais avoir besoin en tant que développeur d'application, bien qu'elles puissent vous intéresser si vous écrivez vos propres éléments graphiques personnalisés (consultez la section pour rendre vos composants personnalisés accessibles) ou si vous voulez écrire une application de technologie d'assistance. Quel que soit votre but, le code source de GAIL est un excellent tutoriel pour une utilisation avancée d'ATK. Notez que depuis GTK+ 3.1.10, le module Gail a été fusionné dans GTK+ et n'existe plus seul.