#include static void button_role (void) { GtkWidget *button = gtk_button_new (); g_object_ref_sink (button); gtk_test_accessible_assert_role (button, GTK_ACCESSIBLE_ROLE_BUTTON); /* Simple command buttons have a "pressed" state set to "undefined" */ gtk_test_accessible_assert_state (button, GTK_ACCESSIBLE_STATE_PRESSED, GTK_ACCESSIBLE_VALUE_UNDEFINED); g_object_unref (button); } static void button_label (void) { GtkWidget *button = gtk_button_new_with_label ("Hello"); g_object_ref_sink (button); gtk_test_accessible_assert_relation (GTK_ACCESSIBLE (button), GTK_ACCESSIBLE_RELATION_LABELLED_BY, gtk_widget_get_first_child (button), NULL); g_object_unref (button); } /* Check that we set up a labelled_by relationship between a button * and its label. */ static void button_relation (void) { GtkWidget *button = gtk_button_new_with_mnemonic ("_Hello"); g_object_ref_sink (button); gtk_test_accessible_assert_relation (GTK_ACCESSIBLE (button), GTK_ACCESSIBLE_RELATION_LABELLED_BY, gtk_widget_get_first_child (button), NULL); g_object_unref (button); } static void button_state (void) { GtkWidget *button = gtk_button_new_with_mnemonic ("_Hello"); g_object_ref_sink (button); gtk_test_accessible_assert_state (GTK_ACCESSIBLE (button), GTK_ACCESSIBLE_STATE_HIDDEN, button, FALSE, -1); gtk_widget_set_visible (button, FALSE); gtk_test_accessible_assert_state (GTK_ACCESSIBLE (button), GTK_ACCESSIBLE_STATE_HIDDEN, button, TRUE, -1); g_object_unref (button); } static void linkbutton_role (void) { GtkWidget *button = gtk_link_button_new ("Hello"); g_object_ref_sink (button); gtk_test_accessible_assert_role (button, GTK_ACCESSIBLE_ROLE_LINK); g_object_unref (button); } static void linkbutton_label (void) { GtkWidget *button = gtk_link_button_new ("Hello"); g_object_ref_sink (button); gtk_test_accessible_assert_relation (GTK_ACCESSIBLE (button), GTK_ACCESSIBLE_RELATION_LABELLED_BY, gtk_widget_get_first_child (button), NULL); g_object_unref (button); } int main (int argc, char *argv[]) { gtk_test_init (&argc, &argv, NULL); g_test_add_func ("/a11y/button/role", button_role); g_test_add_func ("/a11y/button/label", button_label); g_test_add_func ("/a11y/button/relation", button_relation); g_test_add_func ("/a11y/button/state", button_state); g_test_add_func ("/a11y/linkbutton/role", linkbutton_role); g_test_add_func ("/a11y/linkbutton/label", linkbutton_label); return g_test_run (); }