Small GNOME foot in banner [Making Applications Accessible]
back next

ATK Relation Sets

  • many-to-many mapping of UI objects
  • relationships may be reciprocal
  • Relation types:
    • LABEL_FOR / LABELLED_BY
    • CONTROLLER_FOR / CONTROLLED_BY
    • MEMBER_OF
    • NODE_CHILD_OF
  • 
    /* This code snippet associates a label with a text entry field */
    
      GtkWidget *gtk_entry, *gtk_label;
      AtkObject *atk_entry, *atk_label;
      Atkrelation *relation;
      AtkRelationSet *set;
      ...
      atk_entry = gtk_widget_get_accessible (gtk_entry);
      atk_label = gtk_widget_get_accessible (gtk_label);
    
      relation = atk_relation_new (&atk_label, 1, ATK_RELATION_LABELLED_BY);
      set = atk_object_ref_relation_set (atk_entry);
      atk_relation_set_add (set, relation);
    ...