diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2020-06-16 16:41:59 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2020-07-26 20:31:14 +0100 |
commit | c63087a5631e72cd1c45bdc5a41bf605195be64c (patch) | |
tree | 5336167dacb3d88a5d23220d0846f7847605590c /gtk/gtkaccessible.h | |
parent | ea0fc7619ddd0ad20cd7c83e3e8c8672004c20c9 (diff) | |
download | gtk+-c63087a5631e72cd1c45bdc5a41bf605195be64c.tar.gz |
Remove ATK
To build a better world sometimes means having to tear the old one down.
-- Alexander Pierce, "Captain America: The Winter Soldier"
ATK served us well for nearly 20 years, but the world has changed, and
GTK has changed with it. Now ATK is mostly a hindrance towards improving
the accessibility stack:
- it maps to a very specific implementation, AT-SPI, which is Linux and
Unix specific
- it requires implementing the same functionality in three different
layers of the stack: AT-SPI, ATK, and GTK
- only GTK uses it; every other Linux and Unix toolkit and application
talks to AT-SPI directly, including assistive technologies
Sadly, we cannot incrementally port GTK to a new accessibility stack;
since ATK insulates us entirely from the underlying implementation, we
cannot replace it piecemeal. Instead, we're going to remove everything
and then incrementally build on a clean slate:
- add an "accessible" interface, implemented by GTK objects directly,
which describe the accessible role and state changes for every UI
element
- add an "assistive technology context" to proxy a native accessibility
API, and assign it to every widget
- implement the AT context depending on the platform
For more information, see: https://gitlab.gnome.org/GNOME/gtk/-/issues/2833
Diffstat (limited to 'gtk/gtkaccessible.h')
-rw-r--r-- | gtk/gtkaccessible.h | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/gtk/gtkaccessible.h b/gtk/gtkaccessible.h deleted file mode 100644 index 26125f0ca4..0000000000 --- a/gtk/gtkaccessible.h +++ /dev/null @@ -1,58 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright 2001 Sun Microsystems Inc. - * Copyright 2020 GNOME Foundation - * - * 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_ACCESSIBLE_H__ -#define __GTK_ACCESSIBLE_H__ - -#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) -#error "Only <gtk/gtk.h> can be included directly." -#endif - -#include <atk/atk.h> -#include <gtk/gtkwidget.h> - -G_BEGIN_DECLS - -#define GTK_TYPE_ACCESSIBLE (gtk_accessible_get_type ()) - -#if !ATK_CHECK_VERSION(2, 37, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC(AtkObject, g_object_unref) -#endif - -GDK_AVAILABLE_IN_ALL -G_DECLARE_DERIVABLE_TYPE (GtkAccessible, gtk_accessible, GTK, ACCESSIBLE, AtkObject) - -struct _GtkAccessibleClass -{ - AtkObjectClass parent_class; - - void (* widget_set) (GtkAccessible *accessible); - void (* widget_unset) (GtkAccessible *accessible); - - gpointer _padding[8]; -}; - -GDK_AVAILABLE_IN_ALL -void gtk_accessible_set_widget (GtkAccessible *accessible, - GtkWidget *widget); -GDK_AVAILABLE_IN_ALL -GtkWidget *gtk_accessible_get_widget (GtkAccessible *accessible); - -G_END_DECLS - -#endif /* __GTK_ACCESSIBLE_H__ */ |