Merge branch 'a11y-fixes' into 'master'

A11y fixes

See merge request GNOME/gtk!1396
This commit is contained in:
Matthias Clasen 2020-02-06 23:54:39 +00:00
commit cf69b7d4c2
23 changed files with 632 additions and 572 deletions

View File

@ -0,0 +1,87 @@
/* GTK+ - accessibility implementations
* Copyright 2020 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#include "config.h"
#include "gtkcompositeaccessible.h"
#include <gtk/gtk.h>
#include "gtkwidgetprivate.h"
G_DEFINE_TYPE (GtkCompositeAccessible, gtk_composite_accessible, GTK_TYPE_WIDGET_ACCESSIBLE)
static int
gtk_composite_accessible_get_n_children (AtkObject *obj)
{
GtkWidget *widget;
GtkWidget *child;
int count = 0;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
if (widget == NULL)
return 0;
for (child = gtk_widget_get_first_child (widget); child; child = gtk_widget_get_next_sibling (child))
count++;
return count;
}
static AtkObject *
gtk_composite_accessible_ref_child (AtkObject *obj,
int i)
{
GtkWidget *widget;
GtkWidget *child;
int pos;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
if (widget == NULL)
return NULL;
for (child = gtk_widget_get_first_child (widget), pos = 0; child && pos < i; child = gtk_widget_get_next_sibling (child), pos++);
if (child)
return g_object_ref (gtk_widget_get_accessible (GTK_WIDGET (child)));
return NULL;
}
static void
gtk_composite_accessible_initialize (AtkObject *obj,
gpointer data)
{
ATK_OBJECT_CLASS (gtk_composite_accessible_parent_class)->initialize (obj, data);
obj->role = ATK_ROLE_FILLER;
}
static void
gtk_composite_accessible_class_init (GtkCompositeAccessibleClass *klass)
{
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
class->initialize = gtk_composite_accessible_initialize;
class->get_n_children = gtk_composite_accessible_get_n_children;
class->ref_child = gtk_composite_accessible_ref_child;
}
static void
gtk_composite_accessible_init (GtkCompositeAccessible *composite)
{
}

View File

@ -0,0 +1,55 @@
/* GTK+ - accessibility implementations
* Copyright 2020 Red Hat, Inc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GTK_COMPOSITE_ACCESSIBLE_H__
#define __GTK_COMPOSITE_ACCESSIBLE_H__
#if !defined (__GTK_A11Y_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk-a11y.h> can be included directly."
#endif
#include <gtk/gtkwidget.h>
#include <gtk/a11y/gtkwidgetaccessible.h>
G_BEGIN_DECLS
#define GTK_TYPE_COMPOSITE_ACCESSIBLE (gtk_composite_accessible_get_type ())
#define GTK_COMPOSITE_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMPOSITE_ACCESSIBLE, GtkCompositeAccessible))
#define GTK_COMPOSITE_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_COMPOSITE_ACCESSIBLE, GtkCompositeAccessibleClass))
#define GTK_IS_COMPOSITE_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_COMPOSITE_ACCESSIBLE))
#define GTK_IS_COMPOSITE_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_COMPOSITE_ACCESSIBLE))
#define GTK_COMPOSITE_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_COMPOSITE_ACCESSIBLE, GtkCompositeAccessibleClass))
typedef struct _GtkCompositeAccessible GtkCompositeAccessible;
typedef struct _GtkCompositeAccessibleClass GtkCompositeAccessibleClass;
struct _GtkCompositeAccessible
{
GtkWidgetAccessible parent;
};
struct _GtkCompositeAccessibleClass
{
GtkWidgetAccessibleClass parent_class;
};
GDK_AVAILABLE_IN_ALL
GType gtk_composite_accessible_get_type (void);
G_END_DECLS
#endif /* __GTK_COMPOSITE_ACCESSIBLE_H__ */

View File

@ -409,16 +409,26 @@ gtk_widget_accessible_get_index_in_parent (AtkObject *accessible)
}
}
if (!GTK_IS_WIDGET (widget))
return -1;
parent_widget = gtk_widget_get_parent (widget);
if (!GTK_IS_CONTAINER (parent_widget))
return -1;
if (GTK_IS_CONTAINER (parent_widget))
{
children = gtk_container_get_children (GTK_CONTAINER (parent_widget));
index = g_list_index (children, widget);
g_list_free (children);
}
else if (GTK_IS_WIDGET (parent_widget))
{
GtkWidget *child;
children = gtk_container_get_children (GTK_CONTAINER (parent_widget));
for (child = gtk_widget_get_first_child (parent_widget), index = 0; child; child = gtk_widget_get_next_sibling (child), index++)
{
if (child == widget)
break;
}
}
else
index = -1;
index = g_list_index (children, widget);
g_list_free (children);
return index;
}

View File

@ -7,6 +7,7 @@ a11y_sources = files([
'gtkcellaccessibleparent.c',
'gtkcolorswatchaccessible.c',
'gtkcomboboxaccessible.c',
'gtkcompositeaccessible.c',
'gtkcontaineraccessible.c',
'gtkcontainercellaccessible.c',
'gtkentryaccessible.c',
@ -58,6 +59,7 @@ a11y_headers = files([
'gtkcellaccessible.h',
'gtkcellaccessibleparent.h',
'gtkcomboboxaccessible.h',
'gtkcompositeaccessible.h',
'gtkcontaineraccessible.h',
'gtkcontainercellaccessible.h',
'gtkentryaccessible.h',

View File

@ -33,6 +33,7 @@
#include <gtk/a11y/gtkcellaccessible.h>
#include <gtk/a11y/gtkcellaccessibleparent.h>
#include <gtk/a11y/gtkcomboboxaccessible.h>
#include <gtk/a11y/gtkcompositeaccessible.h>
#include <gtk/a11y/gtkcontaineraccessible.h>
#include <gtk/a11y/gtkcontainercellaccessible.h>
#include <gtk/a11y/gtkentryaccessible.h>

View File

@ -31,6 +31,8 @@
#include "gtkstylecontext.h"
#include "gtkboxlayout.h"
#include "a11y/gtkcompositeaccessible.h"
#include <math.h>
/**
@ -745,6 +747,8 @@ gtk_color_chooser_widget_class_init (GtkColorChooserWidgetClass *class)
*/
gtk_widget_class_install_action (widget_class, "color.customize", "(dddd)",
gtk_color_chooser_widget_activate_color_customize);
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_COMPOSITE_ACCESSIBLE);
}
/* GtkColorChooser implementation {{{1 */

View File

@ -51,6 +51,8 @@
#include "gtkbinlayout.h"
#include "gtkgestureclick.h"
#include "a11y/gtkcontaineraccessibleprivate.h"
/**
* SECTION:gtkinfobar
* @short_description: Report important messages to the user
@ -351,6 +353,18 @@ gtk_info_bar_remove (GtkContainer *container,
gtk_container_remove (GTK_CONTAINER (priv->content_area), child);
}
static void
gtk_info_bar_forall (GtkContainer *container,
GtkCallback callback,
gpointer user_data)
{
GtkInfoBar *self = GTK_INFO_BAR (container);
GtkInfoBarPrivate *priv = gtk_info_bar_get_instance_private (self);
if (priv->revealer)
(*callback) (priv->revealer, user_data);
}
static void
gtk_info_bar_dispose (GObject *object)
{
@ -380,6 +394,7 @@ gtk_info_bar_class_init (GtkInfoBarClass *klass)
container_class->add = gtk_info_bar_add;
container_class->remove = gtk_info_bar_remove;
container_class->forall = gtk_info_bar_forall;
klass->close = gtk_info_bar_close;

View File

@ -33,6 +33,8 @@
#include "gtktypebuiltins.h"
#include "gtkwidgetprivate.h"
#include "a11y/gtkcompositeaccessible.h"
/**
* SECTION:gtkstackswitcher
* @Short_description: A controller for GtkStack
@ -595,6 +597,7 @@ gtk_stack_switcher_class_init (GtkStackSwitcherClass *class)
gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
gtk_widget_class_set_css_name (widget_class, I_("stackswitcher"));
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_COMPOSITE_ACCESSIBLE);
}
/**

View File

@ -364,7 +364,7 @@ See the GNU General Public License, version 3 or later for details.
"filler"
parent: headerbar1
index: 0
state: enabled horizontal sensitive
state: enabled sensitive
toolkit: gtk
<AtkComponent>
layer: widget

View File

@ -929,14 +929,6 @@ parse_command_line (int *argc, char ***argv)
return FALSE;
}
gtk_test_init (argc, argv);
/* gtk_test_init does not call setlocale(), so do it ourselves,
* since running in the C locale breaks some our fancy
* utf8 output.
*/
setlocale (LC_ALL, "en_US.utf8");
return TRUE;
}
@ -960,6 +952,26 @@ main (int argc, char **argv)
fix_settings ();
if (argc == 3 && strcmp (argv[1], "--generate") == 0)
{
GFile *file = g_file_new_for_commandline_arg (argv[2]);
gtk_init ();
dump_to_stdout (file);
g_object_unref (file);
return 0;
}
gtk_test_init (&argc, &argv);
/* gtk_test_init does not call setlocale(), so do it ourselves,
* since running in the C locale breaks some our fancy
* utf8 output.
*/
setlocale (LC_ALL, "en_US.utf8");
if (argc < 2)
{
const char *basedir;
@ -974,16 +986,6 @@ main (int argc, char **argv)
g_object_unref (dir);
}
else if (argc == 3 && strcmp (argv[1], "--generate") == 0)
{
GFile *file = g_file_new_for_commandline_arg (argv[2]);
dump_to_stdout (file);
g_object_unref (file);
return 0;
}
else
{
guint i;

View File

@ -51,6 +51,7 @@ window1
button5
"push button"
parent: unnamed-GtkWidgetAccessible-1
index: 1
name: Center
state: enabled focusable sensitive showing visible
toolkit: gtk

View File

@ -30,7 +30,7 @@ window1
"filler"
parent: dialog-vbox1
index: 0
state: enabled sensitive showing vertical visible
state: enabled sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
@ -741,87 +741,176 @@ window1
action 1 description: Activates the color
action 2 name: customize
action 2 description: Customizes the color
unnamed-GtkContainerAccessible-41
GtkColorEditor
"filler"
parent: chooser
index: 1
state: enabled horizontal sensitive showing visible
state: enabled horizontal sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
GtkColorEditor
"filler"
parent: unnamed-GtkContainerAccessible-41
overlay
"panel"
parent: GtkColorEditor
index: 0
state: enabled horizontal sensitive
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
overlay
grid
"panel"
parent: GtkColorEditor
parent: overlay
index: 0
state: enabled sensitive visible
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
grid
picker_button
"push button"
parent: grid
index: 0
description: Pick a color from the screen
state: enabled focusable sensitive visible has-tooltip
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkImage>
image size: 16 x 16
image description: (null)
<AtkAction>
action 0 name: click
action 0 description: Clicks the button
swatch
"radio button"
parent: grid
index: 1
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkAction>
action 0 name: select
action 0 description: Selects the color
action 1 name: activate
action 1 description: Activates the color
action 2 name: customize
action 2 description: Customizes the color
entry
"text"
parent: grid
index: 2
name: Color Name
state: editable enabled focusable sensitive single-line visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text:
character count: 0
caret offset: -1
default attributes: bg-color: <omitted>
bg-full-height: 0
direction: <omitted>
editable: false
family-name: <omitted>
fg-color: <omitted>
indent: 0
invisible: false
justification: left
language: <omitted>
left-margin: 0
pixels-above-lines: 0
pixels-below-lines: 0
pixels-inside-wrap: 0
right-margin: 0
rise: 0
scale: 1
size: <omitted>
stretch: <omitted>
strikethrough: false
style: <omitted>
underline: none
variant: <omitted>
weight: <omitted>
wrap-mode: word
<AtkAction>
action 0 name: activate
action 0 description: Activates the entry
h_slider
"color chooser"
parent: grid
index: 3
name: Hue
state: enabled focusable sensitive vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 1.000000
current value: 0.000000
a_slider
"color chooser"
parent: grid
index: 4
name: Alpha
state: enabled focusable horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 1.000000
current value: 0.000000
sv_plane
"color chooser"
parent: grid
index: 5
name: Color Plane
state: enabled focusable sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
sv_popup
"filler"
parent: overlay
index: 1
state: enabled horizontal sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
grid2
"panel"
parent: overlay
parent: sv_popup
index: 0
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
picker_button
"push button"
parent: grid
label1
"label"
parent: grid2
index: 0
description: Pick a color from the screen
state: enabled focusable sensitive visible has-tooltip
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkImage>
image size: 16 x 16
image description: (null)
<AtkAction>
action 0 name: click
action 0 description: Clicks the button
swatch
"radio button"
parent: grid
index: 1
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkAction>
action 0 name: select
action 0 description: Selects the color
action 1 name: activate
action 1 description: Activates the color
action 2 name: customize
action 2 description: Customizes the color
entry
"text"
parent: grid
index: 2
name: Color Name
state: editable enabled focusable sensitive single-line visible
name: S
state: enabled multi-line sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text:
character count: 0
text: S
character count: 1
caret offset: -1
default attributes: bg-color: <omitted>
bg-full-height: 0
@ -848,27 +937,209 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
<AtkAction>
action 0 name: activate
action 0 description: Activates the entry
h_slider
"color chooser"
parent: grid
index: 3
name: Hue
state: enabled focusable sensitive vertical visible
<AtkHypertext>
label2
"label"
parent: grid2
index: 1
name: V
state: enabled multi-line sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text: V
character count: 1
caret offset: -1
default attributes: bg-color: <omitted>
bg-full-height: 0
direction: <omitted>
editable: false
family-name: <omitted>
fg-color: <omitted>
indent: 0
invisible: false
justification: left
language: <omitted>
left-margin: 0
pixels-above-lines: 0
pixels-below-lines: 0
pixels-inside-wrap: 0
right-margin: 0
rise: 0
scale: 1
size: <omitted>
stretch: <omitted>
strikethrough: false
style: <omitted>
underline: none
variant: <omitted>
weight: <omitted>
wrap-mode: word
<AtkHypertext>
s_entry
"spin button"
parent: grid2
index: 2
name: Saturation
state: enabled focusable horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 1.000000
maximum value: 100.000000
current value: 0.000000
a_slider
"color chooser"
parent: grid
index: 4
v_entry
"spin button"
parent: grid2
index: 3
name: Value
state: enabled focusable horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 100.000000
current value: 0.000000
h_popup
"filler"
parent: overlay
index: 2
state: enabled horizontal sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
grid3
"panel"
parent: h_popup
index: 0
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
label3
"label"
parent: grid3
index: 0
name: H
state: enabled multi-line sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text: H
character count: 1
caret offset: -1
default attributes: bg-color: <omitted>
bg-full-height: 0
direction: <omitted>
editable: false
family-name: <omitted>
fg-color: <omitted>
indent: 0
invisible: false
justification: left
language: <omitted>
left-margin: 0
pixels-above-lines: 0
pixels-below-lines: 0
pixels-inside-wrap: 0
right-margin: 0
rise: 0
scale: 1
size: <omitted>
stretch: <omitted>
strikethrough: false
style: <omitted>
underline: none
variant: <omitted>
weight: <omitted>
wrap-mode: word
<AtkHypertext>
h_entry
"spin button"
parent: grid3
index: 1
name: Hue
state: enabled focusable horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 100.000000
current value: 0.000000
a_popup
"filler"
parent: overlay
index: 3
state: enabled horizontal sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
grid4
"panel"
parent: a_popup
index: 0
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
label4
"label"
parent: grid4
index: 0
name: A
state: enabled multi-line sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text: A
character count: 1
caret offset: -1
default attributes: bg-color: <omitted>
bg-full-height: 0
direction: <omitted>
editable: false
family-name: <omitted>
fg-color: <omitted>
indent: 0
invisible: false
justification: left
language: <omitted>
left-margin: 0
pixels-above-lines: 0
pixels-below-lines: 0
pixels-inside-wrap: 0
right-margin: 0
rise: 0
scale: 1
size: <omitted>
stretch: <omitted>
strikethrough: false
style: <omitted>
underline: none
variant: <omitted>
weight: <omitted>
wrap-mode: word
<AtkHypertext>
a_entry
"spin button"
parent: grid4
index: 1
name: Alpha
state: enabled focusable horizontal sensitive visible
toolkit: gtk
@ -877,288 +1148,8 @@ window1
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 1.000000
maximum value: 100.000000
current value: 0.000000
sv_plane
"color chooser"
parent: grid
index: 5
name: Color Plane
state: enabled focusable sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
sv_popup
"filler"
parent: overlay
index: 1
state: enabled horizontal sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
grid2
"panel"
parent: sv_popup
index: 0
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
label1
"label"
parent: grid2
index: 0
name: S
state: enabled multi-line sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text: S
character count: 1
caret offset: -1
default attributes: bg-color: <omitted>
bg-full-height: 0
direction: <omitted>
editable: false
family-name: <omitted>
fg-color: <omitted>
indent: 0
invisible: false
justification: left
language: <omitted>
left-margin: 0
pixels-above-lines: 0
pixels-below-lines: 0
pixels-inside-wrap: 0
right-margin: 0
rise: 0
scale: 1
size: <omitted>
stretch: <omitted>
strikethrough: false
style: <omitted>
underline: none
variant: <omitted>
weight: <omitted>
wrap-mode: word
<AtkHypertext>
label2
"label"
parent: grid2
index: 1
name: V
state: enabled multi-line sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text: V
character count: 1
caret offset: -1
default attributes: bg-color: <omitted>
bg-full-height: 0
direction: <omitted>
editable: false
family-name: <omitted>
fg-color: <omitted>
indent: 0
invisible: false
justification: left
language: <omitted>
left-margin: 0
pixels-above-lines: 0
pixels-below-lines: 0
pixels-inside-wrap: 0
right-margin: 0
rise: 0
scale: 1
size: <omitted>
stretch: <omitted>
strikethrough: false
style: <omitted>
underline: none
variant: <omitted>
weight: <omitted>
wrap-mode: word
<AtkHypertext>
s_entry
"spin button"
parent: grid2
index: 2
name: Saturation
state: enabled focusable horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 100.000000
current value: 0.000000
v_entry
"spin button"
parent: grid2
index: 3
name: Value
state: enabled focusable horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 100.000000
current value: 0.000000
h_popup
"filler"
parent: overlay
index: 2
state: enabled horizontal sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
grid3
"panel"
parent: h_popup
index: 0
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
label3
"label"
parent: grid3
index: 0
name: H
state: enabled multi-line sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text: H
character count: 1
caret offset: -1
default attributes: bg-color: <omitted>
bg-full-height: 0
direction: <omitted>
editable: false
family-name: <omitted>
fg-color: <omitted>
indent: 0
invisible: false
justification: left
language: <omitted>
left-margin: 0
pixels-above-lines: 0
pixels-below-lines: 0
pixels-inside-wrap: 0
right-margin: 0
rise: 0
scale: 1
size: <omitted>
stretch: <omitted>
strikethrough: false
style: <omitted>
underline: none
variant: <omitted>
weight: <omitted>
wrap-mode: word
<AtkHypertext>
h_entry
"spin button"
parent: grid3
index: 1
name: Hue
state: enabled focusable horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 100.000000
current value: 0.000000
a_popup
"filler"
parent: overlay
index: 3
state: enabled horizontal sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
grid4
"panel"
parent: a_popup
index: 0
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
label4
"label"
parent: grid4
index: 0
name: A
state: enabled multi-line sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text: A
character count: 1
caret offset: -1
default attributes: bg-color: <omitted>
bg-full-height: 0
direction: <omitted>
editable: false
family-name: <omitted>
fg-color: <omitted>
indent: 0
invisible: false
justification: left
language: <omitted>
left-margin: 0
pixels-above-lines: 0
pixels-below-lines: 0
pixels-inside-wrap: 0
right-margin: 0
rise: 0
scale: 1
size: <omitted>
stretch: <omitted>
strikethrough: false
style: <omitted>
underline: none
variant: <omitted>
weight: <omitted>
wrap-mode: word
<AtkHypertext>
a_entry
"spin button"
parent: grid4
index: 1
name: Alpha
state: enabled focusable horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 100.000000
current value: 0.000000
action_box
"filler"
parent: ___object_1___
@ -1188,7 +1179,7 @@ window1
alpha: 1
cancel_button
"push button"
parent: headerbar
parent: unnamed-GtkContainerAccessible-41
index: 0
name: Cancel
state: enabled focusable sensitive showing visible
@ -1205,8 +1196,8 @@ window1
action 0 keybinding: <Alt>c
ok_button
"push button"
parent: headerbar
index: 1
parent: unnamed-GtkContainerAccessible-42
index: 0
name: Select
state: enabled focusable sensitive showing visible default
toolkit: gtk

View File

@ -18,7 +18,7 @@ window1
alpha: 1
button1
"push button"
parent: headerbar1
parent: unnamed-GtkContainerAccessible-0
index: 0
name: Yes
state: enabled focusable focused sensitive showing visible
@ -34,8 +34,8 @@ window1
action 0 description: Clicks the button
page2
"push button"
parent: headerbar1
index: 1
parent: unnamed-GtkContainerAccessible-1
index: 0
name: No
state: enabled focusable sensitive showing visible
toolkit: gtk

View File

@ -28,7 +28,7 @@ window1
<AtkText>
text: One
character count: 3
caret offset: 0
caret offset: -1
<AtkImage>
image size: 0 x 0
image description: (null)
@ -46,7 +46,7 @@ window1
<AtkText>
text: Three
character count: 5
caret offset: 0
caret offset: -1
<AtkImage>
image size: 0 x 0
image description: (null)
@ -64,7 +64,7 @@ window1
<AtkText>
text: Five
character count: 4
caret offset: 0
caret offset: -1
<AtkImage>
image size: 0 x 0
image description: (null)
@ -82,7 +82,7 @@ window1
<AtkText>
text: Seven
character count: 5
caret offset: 0
caret offset: -1
<AtkImage>
image size: 0 x 0
image description: (null)

View File

@ -12,12 +12,12 @@ window1
parent: window1
index: 0
name: Information
state: enabled horizontal sensitive showing visible
state: enabled sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
revealer
unnamed-GtkContainerAccessible-0
"panel"
parent: bar1
index: 0
@ -26,18 +26,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
content
unnamed-GtkContainerAccessible-1
"filler"
parent: revealer
parent: unnamed-GtkContainerAccessible-0
index: 0
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
box1
unnamed-GtkContainerAccessible-2
"filler"
parent: content
parent: unnamed-GtkContainerAccessible-1
index: 0
state: enabled horizontal sensitive showing visible
toolkit: gtk
@ -46,7 +46,7 @@ window1
alpha: 1
label1
"label"
parent: box1
parent: unnamed-GtkContainerAccessible-2
index: 0
name: Some important info
state: enabled multi-line sensitive showing visible
@ -84,18 +84,18 @@ window1
weight: <omitted>
wrap-mode: word
<AtkHypertext>
action_area
unnamed-GtkContainerAccessible-3
"filler"
parent: content
parent: unnamed-GtkContainerAccessible-1
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
close_button
unnamed-GtkButtonAccessible-4
"push button"
parent: content
parent: unnamed-GtkContainerAccessible-1
index: 2
name: Close
state: enabled focusable sensitive

View File

@ -8,14 +8,10 @@
<object class="GtkInfoBar" id="bar1">
<property name="visible">True</property>
<property name="message-type">info</property>
<child internal-child="content_area">
<object class="GtkBox" id="box1">
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">Some important info</property>
</object>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">Some important info</property>
</object>
</child>
</object>

View File

@ -25,16 +25,3 @@ window1
<AtkComponent>
layer: widget
alpha: 1
imagemenuitem
"menu item"
parent: menu
index: 0
state: enabled selectable sensitive visible
toolkit: gtk
<AtkComponent>
layer: popup
alpha: 1
<AtkAction>
action 0 name: click
action 0 description: Clicks the menuitem
<AtkSelection>

View File

@ -2,11 +2,9 @@
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkPopover" id="menu">
<property name="visible">True</property>
<child>
<object class="GtkButton" id="button">
<property name="label" translatable="yes">_New</property>
<property name="visible">True</property>
<property name="use_underline">True</property>
</object>
</child>
@ -15,9 +13,8 @@
<property name="can_focus">False</property>
<child>
<object class="GtkMenuButton" id="menubutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="popup">menu</property>
<property name="popover">menu</property>
</object>
</child>
</object>

View File

@ -12,7 +12,6 @@
<property name="can_focus">False</property>
<child>
<object class="GtkMenuButton" id="menubutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="menu-model">menu</property>
</object>

View File

@ -1,27 +0,0 @@
window1
"frame"
index: 0
state: enabled resizable sensitive showing visible
toolkit: gtk
window-type: normal
<AtkComponent>
layer: window
alpha: 1
unnamed-GtkContainerAccessible-0
"panel"
parent: window1
state: enabled sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
menubutton
"toggle button"
parent: window1
index: 0
name: Menu
state: enabled focusable focused sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<menu id="menu">
<section>
<item>
<attribute name="label">New</attribute>
</item>
</section>
</menu>
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
<object class="GtkMenuButton" id="menubutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="menu-model">menu</property>
<property name="use-popover">True</property>
</object>
</child>
</object>
</interface>

View File

@ -2,43 +2,41 @@ testexecdir = join_paths(installed_test_bindir, 'a11y')
testdatadir = join_paths(installed_test_datadir, 'a11y')
a11y_state_tests = [
'hello-world',
'mnemonic',
'accessible-name',
'notebook',
'range',
'link',
'text',
'buttons',
'colorchooser',
'about',
'messagedialog',
'expander',
'accessible-name',
'actionbar',
'assistant',
'pickers',
'label',
'lockbutton',
'spinner',
'progress',
'infobar',
'buttons',
'calendar',
'statusbar',
'paned',
'iconview',
'colorchooser',
'combos',
'entries',
'scale-drawvalue',
'placeholder-text',
'menu',
'expander',
'headerbar',
'hello-world',
'iconview',
'infobar',
'label',
'link',
'listbox',
'lockbutton',
'menubutton',
'menubutton2',
'menubutton3',
'combos',
'listbox',
'messagedialog',
'mnemonic',
'notebook',
'paned',
'pickers',
'placeholder-text',
'progress',
'range',
'scale-drawvalue',
'spinner',
'statusbar',
'stack',
'headerbar',
'tree',
'actionbar',
'text',
'tooltips',
'tree',
]
a11y_dump_bin = executable('accessibility-dump',
@ -111,80 +109,41 @@ a11y_installed_tests = [
]
installed_test_data = [
'hello-world.ui',
'hello-world.txt',
'mnemonic.ui',
'mnemonic.txt',
'accessible-name.ui',
'accessible-name.txt',
'notebook.ui',
'notebook.txt',
'range.ui',
'range.txt',
'link.ui',
'link.txt',
'text.ui',
'text.txt',
'buttons.ui',
'buttons.txt',
'colorchooser.ui',
'colorchooser.txt',
'about.ui',
'about.txt',
'messagedialog.ui',
'messagedialog.txt',
'expander.ui',
'expander.txt',
'assistant.ui',
'assistant.txt',
'pickers.ui',
'pickers.txt',
'label.ui',
'label.txt',
'lockbutton.ui',
'lockbutton.txt',
'spinner.ui',
'spinner.txt',
'progress.ui',
'progress.txt',
'infobar.ui',
'infobar.txt',
'calendar.ui',
'calendar.txt',
'statusbar.ui',
'statusbar.txt',
'paned.ui',
'paned.txt',
'iconview.ui',
'iconview.txt',
'entries.ui',
'entries.txt',
'scale-drawvalue.ui',
'scale-drawvalue.txt',
'placeholder-text.ui',
'placeholder-text.txt',
'menu.ui',
'menu.txt',
'menubutton.ui',
'menubutton.txt',
'menubutton2.ui',
'menubutton2.txt',
'menubutton3.ui',
'menubutton3.txt',
'combos.ui',
'combos.txt',
'listbox.ui',
'listbox.txt',
'stack.ui',
'stack.txt',
'headerbar.ui',
'headerbar.txt',
'tree.ui',
'tree.txt',
'actionbar.ui',
'actionbar.txt',
'tooltips.ui',
'tooltips.txt',
'about.ui', 'about.txt',
'accessible-name.ui', 'accessible-name.txt',
'actionbar.ui', 'actionbar.txt',
'assistant.ui', 'assistant.txt',
'buttons.ui', 'buttons.txt',
'calendar.ui', 'calendar.txt',
'colorchooser.ui', 'colorchooser.txt',
'combos.ui', 'combos.txt',
'entries.ui', 'entries.txt',
'expander.ui', 'expander.txt',
'headerbar.ui', 'headerbar.txt',
'hello-world.ui', 'hello-world.txt',
'iconview.ui', 'iconview.txt',
'infobar.ui', 'infobar.txt',
'label.ui', 'label.txt',
'link.ui', 'link.txt',
'listbox.ui', 'listbox.txt',
'lockbutton.ui', 'lockbutton.txt',
'menubutton.ui', 'menubutton.txt',
'menubutton2.ui', 'menubutton2.txt',
'messagedialog.ui', 'messagedialog.txt',
'mnemonic.ui', 'mnemonic.txt',
'notebook.ui', 'notebook.txt',
'paned.ui', 'paned.txt',
'pickers.ui', 'pickers.txt',
'placeholder-text.ui', 'placeholder-text.txt',
'progress.ui', 'progress.txt',
'range.ui', 'range.txt',
'scale-drawvalue.ui', 'scale-drawvalue.txt',
'spinner.ui', 'spinner.txt',
'stack.ui', 'stack.txt',
'statusbar.ui', 'statusbar.txt',
'text.ui', 'text.txt',
'tooltips.ui', 'tooltips.txt',
'tree.ui', 'tree.txt',
]
if get_option('install-tests')

View File

@ -20,7 +20,7 @@ window1
"filler"
parent: box1
index: 0
state: enabled horizontal sensitive showing visible
state: enabled sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget