[gtk/ebassi/new-a11y: 1/32] Remove ATK



commit d5fbb17b54265c4520ea4b15d79b001133bdf2b1
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Tue Jun 16 16:41:59 2020 +0100

    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

 README.md                                        |    2 -
 demos/gtk-demo/demo.ui                           |   16 -
 demos/gtk-demo/demotaggedentry.c                 |    2 -
 demos/gtk-demo/filtermodel.ui                    |   18 -
 demos/gtk-demo/listbox.ui                        |    3 -
 demos/gtk-demo/scale.ui                          |   18 -
 demos/icon-browser/window.ui                     |   48 -
 demos/widget-factory/widget-factory.c            |    1 -
 demos/widget-factory/widget-factory.ui           |   21 -
 docs/reference/gtk/building.md                   |    8 +-
 docs/reference/gtk/compiling.md                  |    4 +-
 docs/reference/gtk/overview.xml                  |   12 -
 gtk/a11y/gtk-a11y-autocleanups.h                 |   67 -
 gtk/a11y/gtkaccessibility.c                      |   43 -
 gtk/a11y/gtkaccessibility.h                      |   30 -
 gtk/a11y/gtkaccessibilityutil.c                  |  109 --
 gtk/a11y/gtkaccessibilityutil.h                  |   29 -
 gtk/a11y/gtkbooleancellaccessible.c              |  164 --
 gtk/a11y/gtkbooleancellaccessible.h              |   58 -
 gtk/a11y/gtkbuttonaccessible.c                   |  436 -----
 gtk/a11y/gtkbuttonaccessible.h                   |   60 -
 gtk/a11y/gtkcellaccessible.c                     |  533 ------
 gtk/a11y/gtkcellaccessible.h                     |   60 -
 gtk/a11y/gtkcellaccessibleparent.c               |  271 ---
 gtk/a11y/gtkcellaccessibleparent.h               |  140 --
 gtk/a11y/gtkcellaccessibleprivate.h              |   42 -
 gtk/a11y/gtkcolorswatchaccessible.c              |  211 ---
 gtk/a11y/gtkcolorswatchaccessibleprivate.h       |   52 -
 gtk/a11y/gtkcomboboxaccessible.c                 |  435 -----
 gtk/a11y/gtkcomboboxaccessible.h                 |   57 -
 gtk/a11y/gtkcompositeaccessible.c                |   87 -
 gtk/a11y/gtkcompositeaccessible.h                |   55 -
 gtk/a11y/gtkcontainercellaccessible.c            |  180 --
 gtk/a11y/gtkcontainercellaccessible.h            |   69 -
 gtk/a11y/gtkentryaccessible.c                    | 1537 ----------------
 gtk/a11y/gtkentryaccessible.h                    |   60 -
 gtk/a11y/gtkexpanderaccessible.c                 |  251 ---
 gtk/a11y/gtkexpanderaccessible.h                 |   57 -
 gtk/a11y/gtkexpanderaccessibleprivate.h          |   31 -
 gtk/a11y/gtkflowboxaccessible.c                  |  258 ---
 gtk/a11y/gtkflowboxaccessible.h                  |   57 -
 gtk/a11y/gtkflowboxaccessibleprivate.h           |   30 -
 gtk/a11y/gtkflowboxchildaccessible.c             |   70 -
 gtk/a11y/gtkflowboxchildaccessible.h             |   54 -
 gtk/a11y/gtkframeaccessible.c                    |   65 -
 gtk/a11y/gtkframeaccessible.h                    |   57 -
 gtk/a11y/gtkiconviewaccessible.c                 | 1540 ----------------
 gtk/a11y/gtkiconviewaccessible.h                 |   54 -
 gtk/a11y/gtkiconviewaccessibleprivate.h          |   33 -
 gtk/a11y/gtkimageaccessible.c                    |  338 ----
 gtk/a11y/gtkimageaccessible.h                    |   57 -
 gtk/a11y/gtkimagecellaccessible.c                |  123 --
 gtk/a11y/gtkimagecellaccessible.h                |   58 -
 gtk/a11y/gtklabelaccessible.c                    | 1192 -------------
 gtk/a11y/gtklabelaccessible.h                    |   57 -
 gtk/a11y/gtklabelaccessibleprivate.h             |   34 -
 gtk/a11y/gtklevelbaraccessible.c                 |  178 --
 gtk/a11y/gtklevelbaraccessible.h                 |   58 -
 gtk/a11y/gtklinkbuttonaccessible.c               |  234 ---
 gtk/a11y/gtklinkbuttonaccessible.h               |   57 -
 gtk/a11y/gtklistboxaccessible.c                  |  248 ---
 gtk/a11y/gtklistboxaccessible.h                  |   57 -
 gtk/a11y/gtklistboxaccessibleprivate.h           |   33 -
 gtk/a11y/gtklistboxrowaccessible.c               |   72 -
 gtk/a11y/gtklistboxrowaccessible.h               |   54 -
 gtk/a11y/gtklockbuttonaccessible.c               |   63 -
 gtk/a11y/gtklockbuttonaccessible.h               |   57 -
 gtk/a11y/gtklockbuttonaccessibleprivate.h        |   31 -
 gtk/a11y/gtkmenubuttonaccessible.c               |  117 --
 gtk/a11y/gtkmenubuttonaccessible.h               |   57 -
 gtk/a11y/gtknotebookaccessible.c                 |  312 ----
 gtk/a11y/gtknotebookaccessible.h                 |   57 -
 gtk/a11y/gtknotebookaccessibleprivate.h          |   30 -
 gtk/a11y/gtknotebookpageaccessible.c             |  334 ----
 gtk/a11y/gtknotebookpageaccessible.h             |   64 -
 gtk/a11y/gtkpanedaccessible.c                    |  200 ---
 gtk/a11y/gtkpanedaccessible.h                    |   57 -
 gtk/a11y/gtkpasswordentryaccessible.c            |  654 -------
 gtk/a11y/gtkpasswordentryaccessible.h            |   48 -
 gtk/a11y/gtkpasswordentryaccessibleprivate.h     |   29 -
 gtk/a11y/gtkpictureaccessible.c                  |  136 --
 gtk/a11y/gtkpictureaccessibleprivate.h           |   34 -
 gtk/a11y/gtkpopoveraccessible.c                  |   93 -
 gtk/a11y/gtkpopoveraccessible.h                  |   56 -
 gtk/a11y/gtkprogressbaraccessible.c              |  107 --
 gtk/a11y/gtkprogressbaraccessible.h              |   57 -
 gtk/a11y/gtkprogressbaraccessibleprivate.h       |   29 -
 gtk/a11y/gtkradiobuttonaccessible.c              |  118 --
 gtk/a11y/gtkradiobuttonaccessible.h              |   57 -
 gtk/a11y/gtkrangeaccessible.c                    |  305 ----
 gtk/a11y/gtkrangeaccessible.h                    |   57 -
 gtk/a11y/gtkrenderercellaccessible.c             |  123 --
 gtk/a11y/gtkrenderercellaccessible.h             |   61 -
 gtk/a11y/gtkscaleaccessible.c                    |   53 -
 gtk/a11y/gtkscaleaccessible.h                    |   57 -
 gtk/a11y/gtkscalebuttonaccessible.c              |  376 ----
 gtk/a11y/gtkscalebuttonaccessible.h              |   54 -
 gtk/a11y/gtkscrollbaraccessible.c                |  293 ---
 gtk/a11y/gtkscrollbaraccessible.h                |   54 -
 gtk/a11y/gtkscrolledwindowaccessible.c           |  173 --
 gtk/a11y/gtkscrolledwindowaccessible.h           |   57 -
 gtk/a11y/gtksearchentryaccessible.c              | 1010 -----------
 gtk/a11y/gtksearchentryaccessible.h              |   48 -
 gtk/a11y/gtkspinbuttonaccessible.c               |  277 ---
 gtk/a11y/gtkspinbuttonaccessible.h               |   57 -
 gtk/a11y/gtkspinneraccessible.c                  |   80 -
 gtk/a11y/gtkspinneraccessible.h                  |   57 -
 gtk/a11y/gtkstackaccessible.c                    |  102 --
 gtk/a11y/gtkstackaccessible.h                    |   54 -
 gtk/a11y/gtkstackaccessibleprivate.h             |   32 -
 gtk/a11y/gtkstatusbaraccessible.c                |   99 -
 gtk/a11y/gtkstatusbaraccessible.h                |   57 -
 gtk/a11y/gtkswitchaccessible.c                   |  133 --
 gtk/a11y/gtkswitchaccessible.h                   |   57 -
 gtk/a11y/gtktextaccessible.c                     | 1016 -----------
 gtk/a11y/gtktextaccessible.h                     |   57 -
 gtk/a11y/gtktextcellaccessible.c                 |  701 --------
 gtk/a11y/gtktextcellaccessible.h                 |   58 -
 gtk/a11y/gtktextviewaccessible.c                 | 1819 -------------------
 gtk/a11y/gtktextviewaccessible.h                 |   58 -
 gtk/a11y/gtktextviewaccessibleprivate.h          |   30 -
 gtk/a11y/gtktogglebuttonaccessible.c             |   84 -
 gtk/a11y/gtktogglebuttonaccessible.h             |   57 -
 gtk/a11y/gtktoplevelaccessible.c                 |  253 ---
 gtk/a11y/gtktoplevelaccessible.h                 |   59 -
 gtk/a11y/gtktreeviewaccessible.c                 | 2084 ----------------------
 gtk/a11y/gtktreeviewaccessible.h                 |   54 -
 gtk/a11y/gtktreeviewaccessibleprivate.h          |   68 -
 gtk/a11y/gtkwidgetaccessible.c                   |  789 --------
 gtk/a11y/gtkwidgetaccessible.h                   |   41 -
 gtk/a11y/gtkwidgetaccessibleprivate.h            |   44 -
 gtk/a11y/gtkwindowaccessible.c                   |  346 ----
 gtk/a11y/gtkwindowaccessible.h                   |   57 -
 gtk/a11y/gtkwindowaccessibleprivate.h            |   30 -
 gtk/a11y/meson.build                             |  109 --
 gtk/gtk-a11y.h                                   |   85 -
 gtk/gtk.h                                        |    1 -
 gtk/gtkaccellabel.c                              |    2 -
 gtk/gtkaccessible.c                              |  215 ---
 gtk/gtkaccessible.h                              |   58 -
 gtk/gtkactionbar.c                               |    2 -
 gtk/gtkassistant.c                               |   90 -
 gtk/gtkbox.c                                     |    1 -
 gtk/gtkbutton.c                                  |   11 -
 gtk/gtkcalendar.c                                |    1 -
 gtk/gtkcellrenderer.c                            |   57 +-
 gtk/gtkcellrenderer.h                            |   10 -
 gtk/gtkcellrendererpixbuf.c                      |    6 -
 gtk/gtkcellrenderertext.c                        |    4 -
 gtk/gtkcellrenderertoggle.c                      |    4 -
 gtk/gtkcenterbox.c                               |    1 -
 gtk/gtkcheckbutton.c                             |    1 -
 gtk/gtkcolorchooserwidget.c                      |   57 -
 gtk/gtkcolorplane.c                              |    9 -
 gtk/gtkcolorscale.c                              |   12 -
 gtk/gtkcolorswatch.c                             |    3 -
 gtk/gtkcombobox.c                                |   26 -
 gtk/gtkcombobox.h                                |    2 -
 gtk/gtkdialog.c                                  |    2 -
 gtk/gtkdrawingarea.c                             |    2 -
 gtk/gtkentry.c                                   |    3 -
 gtk/gtkentrycompletion.c                         |   34 -
 gtk/gtkexpander.c                                |   18 -
 gtk/gtkfilechooserdialog.c                       |    2 -
 gtk/gtkflowbox.c                                 |    7 -
 gtk/gtkfontchooserdialog.c                       |    3 -
 gtk/gtkfontchooserwidget.c                       |    2 -
 gtk/gtkframe.c                                   |    3 -
 gtk/gtkglarea.c                                  |    2 -
 gtk/gtkheaderbar.c                               |    1 -
 gtk/gtkiconview.c                                |   80 +-
 gtk/gtkimage.c                                   |    3 -
 gtk/gtkinfobar.c                                 |   39 -
 gtk/gtklabel.c                                   |   27 -
 gtk/gtklevelbar.c                                |    3 -
 gtk/gtklinkbutton.c                              |    3 -
 gtk/gtklistbox.c                                 |    8 -
 gtk/gtklockbutton.c                              |    6 -
 gtk/gtkmain.c                                    |    2 -
 gtk/gtkmenubutton.c                              |    4 -
 gtk/gtkmessagedialog.c                           |   39 -
 gtk/gtkmodelbutton.c                             |   36 +-
 gtk/gtknotebook.c                                |    9 -
 gtk/gtkpaned.c                                   |    3 -
 gtk/gtkpango.c                                   | 1017 -----------
 gtk/gtkpango.h                                   |   27 -
 gtk/gtkpasswordentry.c                           |    9 -
 gtk/gtkpathbar.c                                 |    3 -
 gtk/gtkpicture.c                                 |    3 -
 gtk/gtkprogressbar.c                             |   11 -
 gtk/gtkradiobutton.c                             |    2 -
 gtk/gtkrange.c                                   |   11 -
 gtk/gtkscale.c                                   |    3 -
 gtk/gtkscalebutton.c                             |    3 -
 gtk/gtkscrollbar.c                               |    3 -
 gtk/gtkscrolledwindow.c                          |    3 -
 gtk/gtksearchentry.c                             |    3 -
 gtk/gtkseparator.c                               |    1 -
 gtk/gtkspinbutton.c                              |    3 -
 gtk/gtkspinner.c                                 |    2 -
 gtk/gtkstack.c                                   |    8 -
 gtk/gtkstackswitcher.c                           |    3 -
 gtk/gtkstatusbar.c                               |    2 -
 gtk/gtkstylecontext.c                            |   52 -
 gtk/gtkstylecontextprivate.h                     |    6 -
 gtk/gtkswitch.c                                  |    9 -
 gtk/gtktext.c                                    |    4 -
 gtk/gtktextbuffer.c                              |  310 ----
 gtk/gtktextbufferprivate.h                       |   16 -
 gtk/gtktextview.c                                |    4 -
 gtk/gtktogglebutton.c                            |    4 -
 gtk/gtktooltip.c                                 |    1 -
 gtk/gtktooltipwindow.c                           |    2 -
 gtk/gtktreeselection.c                           |    3 -
 gtk/gtktreeview.c                                |   61 +-
 gtk/gtktreeviewcolumn.c                          |    8 -
 gtk/gtkviewport.c                                |    2 -
 gtk/gtkvolumebutton.c                            |    4 -
 gtk/gtkwidget.c                                  |  562 +-----
 gtk/gtkwidget.h                                  |   18 -
 gtk/gtkwidgetprivate.h                           |    6 -
 gtk/gtkwindow.c                                  |    4 -
 gtk/gtkwindowcontrols.c                          |   14 -
 gtk/inspector/misc-info.c                        |   31 -
 gtk/inspector/misc-info.ui                       |   91 -
 gtk/meson.build                                  |   15 +-
 gtk/ui/gtkcoloreditor.ui                         |   25 -
 gtk/ui/gtkfilechooserwidget.ui                   |    5 -
 gtk/ui/gtkprintunixdialog.ui                     |   56 -
 gtk/ui/gtkvolumebutton.ui                        |   18 -
 meson.build                                      |   13 +-
 tests/testlist3.c                                |    7 -
 testsuite/a11y/README                            |   18 -
 testsuite/a11y/about.txt                         |  434 -----
 testsuite/a11y/about.ui                          |   12 -
 testsuite/a11y/accessibile-name.txt              |   44 -
 testsuite/a11y/accessibility-dump.c              | 1003 -----------
 testsuite/a11y/accessible-name.txt               |   32 -
 testsuite/a11y/accessible-name.ui                |   18 -
 testsuite/a11y/actionbar.txt                     |  105 --
 testsuite/a11y/actionbar.ui                      |   33 -
 testsuite/a11y/assistant.txt                     |  161 --
 testsuite/a11y/assistant.ui                      |   24 -
 testsuite/a11y/buttons.txt                       |  164 --
 testsuite/a11y/buttons.ui                        |  108 --
 testsuite/a11y/calendar.txt                      |   25 -
 testsuite/a11y/calendar.ui                       |   14 -
 testsuite/a11y/children.c                        |  265 ---
 testsuite/a11y/children.test.in                  |    4 -
 testsuite/a11y/colorchooser.txt                  | 1212 -------------
 testsuite/a11y/colorchooser.ui                   |    6 -
 testsuite/a11y/combos.txt                        |  274 ---
 testsuite/a11y/combos.ui                         |   40 -
 testsuite/a11y/derive.c                          |   83 -
 testsuite/a11y/derive.test.in                    |    4 -
 testsuite/a11y/entries.txt                       |  310 ----
 testsuite/a11y/entries.ui                        |   71 -
 testsuite/a11y/expander.txt                      |   67 -
 testsuite/a11y/expander.ui                       |   18 -
 testsuite/a11y/headerbar.txt                     |   57 -
 testsuite/a11y/headerbar.ui                      |   19 -
 testsuite/a11y/hello-world.txt                   |   32 -
 testsuite/a11y/hello-world.ui                    |   13 -
 testsuite/a11y/iconview.txt                      |   98 -
 testsuite/a11y/iconview.ui                       |   31 -
 testsuite/a11y/infobar.txt                       |  118 --
 testsuite/a11y/infobar.ui                        |   18 -
 testsuite/a11y/label-static.txt                  |   82 -
 testsuite/a11y/label-static.ui                   |   15 -
 testsuite/a11y/label.txt                         |   82 -
 testsuite/a11y/label.ui                          |   12 -
 testsuite/a11y/link.txt                          |   37 -
 testsuite/a11y/link.ui                           |   14 -
 testsuite/a11y/listbox.txt                       |  192 --
 testsuite/a11y/listbox.ui                        |   40 -
 testsuite/a11y/lockbutton.txt                    |   34 -
 testsuite/a11y/lockbutton.ui                     |   11 -
 testsuite/a11y/menubutton.txt                    |   26 -
 testsuite/a11y/menubutton.ui                     |   19 -
 testsuite/a11y/menubutton2.txt                   |   26 -
 testsuite/a11y/menubutton2.ui                    |   18 -
 testsuite/a11y/meson.build                       |  156 --
 testsuite/a11y/messagedialog.txt                 |  192 --
 testsuite/a11y/messagedialog.ui                  |   10 -
 testsuite/a11y/misc.c                            |   57 -
 testsuite/a11y/misc.test.in                      |    4 -
 testsuite/a11y/mnemonic.txt                      |  110 --
 testsuite/a11y/mnemonic.ui                       |   24 -
 testsuite/a11y/notebook.txt                      |   75 -
 testsuite/a11y/notebook.ui                       |   36 -
 testsuite/a11y/paned.txt                         |  109 --
 testsuite/a11y/paned.ui                          |   18 -
 testsuite/a11y/pickers.txt                       |   52 -
 testsuite/a11y/pickers.ui                        |   33 -
 testsuite/a11y/placeholder-text.txt              |  151 --
 testsuite/a11y/placeholder-text.ui               |   27 -
 testsuite/a11y/progress.txt                      |   29 -
 testsuite/a11y/progress.ui                       |   14 -
 testsuite/a11y/range.txt                         |   52 -
 testsuite/a11y/range.ui                          |   34 -
 testsuite/a11y/scale-drawvalue.txt               |   30 -
 testsuite/a11y/scale-drawvalue.ui                |   21 -
 testsuite/a11y/spinner.txt                       |   30 -
 testsuite/a11y/spinner.ui                        |   12 -
 testsuite/a11y/stack.txt                         |   91 -
 testsuite/a11y/stack.ui                          |   39 -
 testsuite/a11y/state/focus1.in                   |    8 -
 testsuite/a11y/state/focus1.out                  |    4 -
 testsuite/a11y/state/focus1.ui                   |   22 -
 testsuite/a11y/state/focus2.in                   |    9 -
 testsuite/a11y/state/focus2.out                  |    7 -
 testsuite/a11y/state/focus2.ui                   |   20 -
 testsuite/a11y/state/state-record.c              |  383 ----
 testsuite/a11y/statusbar.txt                     |   26 -
 testsuite/a11y/statusbar.ui                      |   11 -
 testsuite/a11y/testfocus.c                       |  118 --
 testsuite/a11y/tests.test.in                     |    4 -
 testsuite/a11y/text.c                            | 1099 ------------
 testsuite/a11y/text.test.in                      |    4 -
 testsuite/a11y/text.txt                          |   55 -
 testsuite/a11y/text.ui                           |   16 -
 testsuite/a11y/tooltips.txt                      |   86 -
 testsuite/a11y/tooltips.ui                       |   33 -
 testsuite/a11y/tree-performance.c                |  369 ----
 testsuite/a11y/tree-relationships.c              |  382 ----
 testsuite/a11y/tree.test.in                      |    4 -
 testsuite/a11y/tree.txt                          |  413 -----
 testsuite/a11y/tree.ui                           |   45 -
 testsuite/a11y/util.c                            |   62 -
 testsuite/a11y/util.test.in                      |    4 -
 testsuite/a11y/value.c                           |  126 --
 testsuite/a11y/value.test.in                     |    4 -
 testsuite/css/nodes/buttons.ui                   |    5 -
 testsuite/gtk/accessible.c                       |   49 -
 testsuite/gtk/builder.c                          |   37 +-
 testsuite/gtk/focus-chain/widget-factory.ui      |   21 -
 testsuite/gtk/focus-chain/widget-factory2.ui     |   21 -
 testsuite/gtk/focus-chain/widget-factory3.ui     |   21 -
 testsuite/gtk/meson.build                        |    1 -
 testsuite/gtk/notify.c                           |    6 +-
 testsuite/meson.build                            |    1 -
 testsuite/tools/simplify-data-3to4/grid.expected |    5 -
 testsuite/tools/simplify-data-3to4/grid.ui       |    5 -
 343 files changed, 22 insertions(+), 38562 deletions(-)
---
diff --git a/README.md b/README.md
index 3f092f4d0c..50d6a3d9ee 100644
--- a/README.md
+++ b/README.md
@@ -56,7 +56,6 @@ building for:
   - [Pango](https://download.gnome.org/sources/pango)
   - [Epoxy](https://github.com/anholt/libepoxy)
   - [Graphene](https://github.com/ebassi/graphene)
-  - [ATK](https://download.gnome.org/sources/atk)
   - [Xkb-common](https://github.com/xkbcommon/libxkbcommon)
 
 If you are building the X11 backend, you will also need:
@@ -70,7 +69,6 @@ If you are building the X11 backend, you will also need:
     - xcursor
     - xdamage
     - xcomposite
-  - [atk-bridge-2.0](https://download.gnome.org/sources/at-spi2-atk)
 
 If you are building the Wayland backend, you will also need:
 
diff --git a/demos/gtk-demo/demo.ui b/demos/gtk-demo/demo.ui
index 7cb39a33e7..c93d6d46b5 100644
--- a/demos/gtk-demo/demo.ui
+++ b/demos/gtk-demo/demo.ui
@@ -95,9 +95,6 @@
     <property name="program-name" translatable="yes">Builder demo</property>
     <property name="logo-icon-name" translatable="yes">gtk3-demo</property>
     <property name="modal">True</property>
-    <accessibility>
-      <relation target="window1" type="subwindow-of"/>
-    </accessibility>
   </object>
   <object class="GtkWindow" id="window1">
     <property name="default-height">250</property>
@@ -113,11 +110,6 @@
         </child>
         <child>
           <object class="GtkBox" id="toolbar1">
-            <child internal-child="accessible">
-              <object class="AtkObject" id="a11y-toolbar">
-                <property name="AtkObject::accessible-name">The toolbar</property>
-              </object>
-            </child>
             <child>
               <object class="GtkButton">
                 <property name="label" translatable="yes">New</property>
@@ -174,14 +166,6 @@
               <object class="GtkTreeView" id="treeview1">
                 <property name="model">liststore1</property>
                 <property name="tooltip-column">3</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="a11y-treeview">
-                    <property name="AtkObject::accessible-name">Name list</property>
-                    <property name="AtkObject::accessible-description">
-                                    A list of person with name, surname and age columns
-                                  </property>
-                  </object>
-                </child>
                 <child>
                   <object class="GtkTreeViewColumn" id="column1">
                     <property name="title">Name</property>
diff --git a/demos/gtk-demo/demotaggedentry.c b/demos/gtk-demo/demotaggedentry.c
index 63794cdf5f..922127dee4 100644
--- a/demos/gtk-demo/demotaggedentry.c
+++ b/demos/gtk-demo/demotaggedentry.c
@@ -23,7 +23,6 @@
 #include "demotaggedentry.h"
 
 #include <gtk/gtk.h>
-#include <gtk/gtk-a11y.h>
 
 struct _DemoTaggedEntry
 {
@@ -119,7 +118,6 @@ demo_tagged_entry_class_init (DemoTaggedEntryClass *klass)
   gtk_editable_install_properties (object_class, 1);
 
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_ENTRY_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, "entry");
 }
 
diff --git a/demos/gtk-demo/filtermodel.ui b/demos/gtk-demo/filtermodel.ui
index a4dc98b34a..1d0762d93d 100644
--- a/demos/gtk-demo/filtermodel.ui
+++ b/demos/gtk-demo/filtermodel.ui
@@ -45,9 +45,6 @@
             <attributes>
               <attribute name="weight" value="bold"></attribute>
             </attributes>
-            <accessibility>
-              <relation type="label-for" target="treeview1"/>
-            </accessibility>
             <layout>
               <property name="left-attach">0</property>
               <property name="top-attach">0</property>
@@ -83,9 +80,6 @@
                 </child>
               </object>
             </child>
-            <accessibility>
-              <relation type="labelled-by" target="label1"/>
-            </accessibility>
             <layout>
               <property name="left-attach">0</property>
               <property name="top-attach">1</property>
@@ -133,9 +127,6 @@
                 </child>
               </object>
             </child>
-            <accessibility>
-              <relation type="labelled-by" target="label2"/>
-            </accessibility>
             <layout>
               <property name="left-attach">1</property>
               <property name="top-attach">1</property>
@@ -149,9 +140,6 @@
             <attributes>
               <attribute name="weight" value="bold"></attribute>
             </attributes>
-            <accessibility>
-              <relation type="label-for" target="treeview2"/>
-            </accessibility>
             <layout>
               <property name="left-attach">1</property>
               <property name="top-attach">0</property>
@@ -165,9 +153,6 @@
             <attributes>
               <attribute name="weight" value="bold"></attribute>
             </attributes>
-            <accessibility>
-              <relation type="label-for" target="treeview3"/>
-            </accessibility>
             <layout>
               <property name="left-attach">0</property>
               <property name="top-attach">2</property>
@@ -197,9 +182,6 @@
                 </child>
               </object>
             </child>
-            <accessibility>
-              <relation type="labelled-by" target="label3"/>
-            </accessibility>
             <layout>
               <property name="left-attach">0</property>
               <property name="top-attach">3</property>
diff --git a/demos/gtk-demo/listbox.ui b/demos/gtk-demo/listbox.ui
index 6b63609362..feb9307b59 100644
--- a/demos/gtk-demo/listbox.ui
+++ b/demos/gtk-demo/listbox.ui
@@ -84,9 +84,6 @@
             <property name="yalign">0</property>
             <property name="label" translatable="0">Message</property>
             <property name="wrap">1</property>
-            <accessibility>
-              <role type="static"/>
-            </accessibility>
             <layout>
               <property name="left-attach">1</property>
               <property name="top-attach">1</property>
diff --git a/demos/gtk-demo/scale.ui b/demos/gtk-demo/scale.ui
index 9859d17408..be6d0de3a0 100644
--- a/demos/gtk-demo/scale.ui
+++ b/demos/gtk-demo/scale.ui
@@ -33,9 +33,6 @@
           <object class="GtkLabel" id="label_plain">
             <property name="label">Plain</property>
             <property name="xalign">0</property>
-            <accessibility>
-              <relation type="label-for" target="scale_plain"/>
-            </accessibility>
             <layout>
               <property name="left-attach">0</property>
               <property name="top-attach">0</property>
@@ -48,9 +45,6 @@
             <property name="draw-value">0</property>
             <property name="adjustment">adjustment1</property>
             <property name="hexpand">1</property>
-            <accessibility>
-              <relation type="labelled-by" target="label_plain"/>
-            </accessibility>
             <layout>
               <property name="left-attach">1</property>
               <property name="top-attach">0</property>
@@ -61,9 +55,6 @@
           <object class="GtkLabel" id="label_marks">
             <property name="label">Marks</property>
             <property name="xalign">0</property>
-            <accessibility>
-              <relation type="label-for" target="scale_marks"/>
-            </accessibility>
             <layout>
               <property name="left-attach">0</property>
               <property name="top-attach">1</property>
@@ -83,9 +74,6 @@
               <mark value="3" position="bottom"></mark>
               <mark value="4" position="bottom"></mark>
             </marks>
-            <accessibility>
-              <relation type="labelled-by" target="label_marks"/>
-            </accessibility>
             <layout>
               <property name="left-attach">1</property>
               <property name="top-attach">1</property>
@@ -96,9 +84,6 @@
           <object class="GtkLabel" id="label_discrete">
             <property name="label">Discrete</property>
             <property name="xalign">0</property>
-            <accessibility>
-              <relation type="label-for" target="scale_discrete"/>
-            </accessibility>
             <layout>
               <property name="left-attach">0</property>
               <property name="top-attach">2</property>
@@ -112,9 +97,6 @@
             <property name="draw-value">0</property>
             <property name="adjustment">adjustment3</property>
             <property name="hexpand">1</property>
-            <accessibility>
-              <relation type="labelled-by" target="label_discrete"/>
-            </accessibility>
             <marks>
               <mark value="0" position="bottom"></mark>
               <mark value="1" position="bottom"></mark>
diff --git a/demos/icon-browser/window.ui b/demos/icon-browser/window.ui
index ab76bb5bac..651db7b3e9 100644
--- a/demos/icon-browser/window.ui
+++ b/demos/icon-browser/window.ui
@@ -245,9 +245,6 @@
               <object class="GtkImage" id="image1">
                 <property name="halign">center</property>
                 <property name="valign">end</property>
-                <accessibility>
-                  <relation type="labelled-by" target="label1"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">0</property>
                   <property name="top-attach">1</property>
@@ -258,9 +255,6 @@
              <object class="GtkImage" id="image2">
                 <property name="halign">center</property>
                 <property name="valign">end</property>
-                <accessibility>
-                  <relation type="labelled-by" target="label2"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">1</property>
                   <property name="top-attach">1</property>
@@ -271,9 +265,6 @@
               <object class="GtkImage" id="image3">
                 <property name="halign">center</property>
                 <property name="valign">end</property>
-                <accessibility>
-                  <relation type="labelled-by" target="label3"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">2</property>
                   <property name="top-attach">1</property>
@@ -284,9 +275,6 @@
               <object class="GtkImage" id="image4">
                 <property name="halign">center</property>
                 <property name="valign">end</property>
-                <accessibility>
-                  <relation type="labelled-by" target="label4"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">3</property>
                   <property name="top-attach">1</property>
@@ -297,9 +285,6 @@
               <object class="GtkImage" id="image5">
                 <property name="halign">center</property>
                 <property name="valign">end</property>
-                <accessibility>
-                  <relation type="labelled-by" target="label5"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">4</property>
                   <property name="top-attach">1</property>
@@ -310,9 +295,6 @@
               <object class="GtkImage" id="image6">
                 <property name="halign">center</property>
                 <property name="valign">end</property>
-                <accessibility>
-                  <relation type="labelled-by" target="label5"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">5</property>
                   <property name="top-attach">1</property>
@@ -323,9 +305,6 @@
               <object class="GtkImage" id="image7">
                 <property name="halign">center</property>
                 <property name="valign">end</property>
-                <accessibility>
-                  <relation type="labelled-by" target="label5"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">6</property>
                   <property name="top-attach">1</property>
@@ -336,9 +315,6 @@
               <object class="GtkImage" id="image8">
                 <property name="halign">center</property>
                 <property name="valign">end</property>
-                <accessibility>
-                  <relation type="labelled-by" target="label6"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">7</property>
                   <property name="top-attach">1</property>
@@ -353,9 +329,6 @@
                 <style>
                   <class name="dim-label"/>
                 </style>
-                <accessibility>
-                  <relation type="label-for" target="image1"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">0</property>
                   <property name="top-attach">2</property>
@@ -370,9 +343,6 @@
                 <style>
                   <class name="dim-label"/>
                 </style>
-                <accessibility>
-                  <relation type="label-for" target="image2"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">1</property>
                   <property name="top-attach">2</property>
@@ -387,9 +357,6 @@
                 <style>
                   <class name="dim-label"/>
                 </style>
-                <accessibility>
-                  <relation type="label-for" target="image3"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">2</property>
                   <property name="top-attach">2</property>
@@ -404,9 +371,6 @@
                 <style>
                   <class name="dim-label"/>
                 </style>
-                <accessibility>
-                  <relation type="label-for" target="image4"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">3</property>
                   <property name="top-attach">2</property>
@@ -421,9 +385,6 @@
                 <style>
                   <class name="dim-label"/>
                 </style>
-                <accessibility>
-                  <relation type="label-for" target="image5"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">4</property>
                   <property name="top-attach">2</property>
@@ -438,9 +399,6 @@
                 <style>
                   <class name="dim-label"/>
                 </style>
-                <accessibility>
-                  <relation type="label-for" target="image6"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">5</property>
                   <property name="top-attach">2</property>
@@ -455,9 +413,6 @@
                 <style>
                   <class name="dim-label"/>
                 </style>
-                <accessibility>
-                  <relation type="label-for" target="image7"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">6</property>
                   <property name="top-attach">2</property>
@@ -472,9 +427,6 @@
                 <style>
                   <class name="dim-label"/>
                 </style>
-                <accessibility>
-                  <relation type="label-for" target="image8"/>
-                </accessibility>
                 <layout>
                   <property name="left-attach">7</property>
                   <property name="top-attach">2</property>
diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c
index abc5fd12ba..6d682992ea 100644
--- a/demos/widget-factory/widget-factory.c
+++ b/demos/widget-factory/widget-factory.c
@@ -565,7 +565,6 @@ on_scale_button_value_changed (GtkScaleButton *button,
     }
 
   gtk_widget_set_tooltip_text (GTK_WIDGET (button), str);
-  atk_object_set_description (gtk_widget_get_accessible (GTK_WIDGET (button)), str);
 
   g_free (str);
 }
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui
index 0083826df7..e8e1db8052 100644
--- a/demos/widget-factory/widget-factory.ui
+++ b/demos/widget-factory/widget-factory.ui
@@ -3029,9 +3029,6 @@ bad things might happen.</property>
             <property name="margin-top">20</property>
             <property name="margin-bottom">20</property>
             <property name="label" translatable="yes">To free the princess, you have to slay the 
dragon.</property>
-            <accessibility>
-              <role type="static"/>
-            </accessibility>
           </object>
         </child>
       </object>
@@ -3231,9 +3228,6 @@ bad things might happen.</property>
           <object class="GtkLabel" id="title_label">
             <property name="label">Title:</property>
             <property name="xalign">1</property>
-            <accessibility>
-              <relation type="label-for" target="open_popover_entry"/>
-            </accessibility>
           </object>
         </child>
         <child>
@@ -3241,9 +3235,6 @@ bad things might happen.</property>
             <property name="valign">start</property>
             <property name="label">Description:</property>
             <property name="xalign">1</property>
-            <accessibility>
-              <relation type="label-for" target="open_popover_textview"/>
-            </accessibility>
             <layout>
               <property name="top-attach">1</property>
             </layout>
@@ -3259,9 +3250,6 @@ bad things might happen.</property>
             <property name="max-content-width">100</property>
             <child>
               <object class="GtkTextView" id="open_popover_textview">
-                <accessibility>
-                  <relation type="labelled-by" target="description_label"/>
-                </accessibility>
               </object>
             </child>
             <layout>
@@ -3274,9 +3262,6 @@ bad things might happen.</property>
         <child>
           <object class="GtkEntry" id="open_popover_entry">
             <property name="activates-default">1</property>
-            <accessibility>
-              <relation type="labelled-by" target="title_label"/>
-            </accessibility>
             <layout>
               <property name="left-attach">1</property>
               <property name="column-span">2</property>
@@ -3357,9 +3342,6 @@ bad things might happen.</property>
     <child>
       <object class="GtkLabel">
         <property name="label">No updates at this time</property>
-        <accessibility>
-          <role type="static"/>
-        </accessibility>
       </object>
     </child>
   </object>
@@ -3368,9 +3350,6 @@ bad things might happen.</property>
     <child>
       <object class="GtkLabel">
         <property name="label">You&apos;re in too deep!</property>
-        <accessibility>
-          <role type="static"/>
-        </accessibility>
       </object>
     </child>
   </object>
diff --git a/docs/reference/gtk/building.md b/docs/reference/gtk/building.md
index 1f676faae8..7412e25473 100644
--- a/docs/reference/gtk/building.md
+++ b/docs/reference/gtk/building.md
@@ -127,7 +127,7 @@ compilation flags needed for that library along with version number
 information.)
 
 Some of the libraries that GTK depends on are maintained by the
-GTK team: GLib, GdkPixbuf, Pango, ATK and GObject Introspection.
+GTK team: GLib, GdkPixbuf, Pango, and GObject Introspection.
 Other libraries are maintained separately.
 
 - The GLib library provides core non-graphical functionality
@@ -139,10 +139,6 @@ Other libraries are maintained separately.
   file formats. It is available [here](ttps://download.gnome.org/sources/gdk-pixbuf/).
 - [Pango](http://www.pango.org) is a library for internationalized
   text handling. It is available [here](https://download.gnome.org/sources/pango/).
-- ATK is the Accessibility Toolkit. It provides a set of generic
-  interfaces allowing accessibility technologies such as
-  screen readers to interact with a graphical user interface.
-  It is available [here](https://download.gnome.org/sources/atk/).
 - [GObject Introspection](https://wiki.gnome.org/Projects/GObjectIntrospection)
   is a framework for making introspection data available to language
   bindings. It is available [here](https://download.gnome.org/sources/gobject-introspection/).
@@ -192,7 +188,7 @@ you'll have all of these installed already, or they will be easily
 accessible through your operating system package repositories.
 
 Then build and install the GTK libraries in the order:
-GLib, Cairo, Pango, ATK, then GTK. For each library, follow the
+GLib, Cairo, Pango, then GTK. For each library, follow the
 instructions they provide, and make sure to share common settings
 between them and the GTK build; if you are using a separate prefix
 for GTK, for instance, you will need to use the same prefix for
diff --git a/docs/reference/gtk/compiling.md b/docs/reference/gtk/compiling.md
index 55e154bd17..1cceedded1 100644
--- a/docs/reference/gtk/compiling.md
+++ b/docs/reference/gtk/compiling.md
@@ -9,9 +9,9 @@ is used (the actual output on your system may be different):
 
 ```
 $ pkg-config --cflags gtk4
- -pthread -I/usr/include/gtk-4.0 -I/usr/lib64/gtk-4.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo 
-I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 
-I/usr/include/freetype2 -I/usr/include/libpng12
+ -pthread -I/usr/include/gtk-4.0 -I/usr/lib64/gtk-4.0/include -I/usr/include/cairo -I/usr/include/pango-1.0 
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 
-I/usr/include/libpng12
 $ pkg-config --libs gtk4
- -pthread -lgtk-4 -lgdk-4 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo 
-lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
+ -pthread -lgtk-4 -lgdk-4 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 
-lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
 ```
 The simplest way to compile a program is to use the "backticks"
 feature of the shell. If you enclose a command in backticks
diff --git a/docs/reference/gtk/overview.xml b/docs/reference/gtk/overview.xml
index f49ce93eb8..0435836586 100644
--- a/docs/reference/gtk/overview.xml
+++ b/docs/reference/gtk/overview.xml
@@ -61,18 +61,6 @@ other widgets that display text.
 </para></listitem>
 </varlistentry>
 
-<varlistentry>
-<term>ATK</term>
-<listitem><para>
-ATK is the Accessibility Toolkit. It provides a set of generic
-interfaces allowing accessibility technologies to interact with a
-graphical user interface. For example, a screen reader uses ATK to
-discover the text in an interface and read it to blind users.  GTK
-widgets have built-in support for accessibility using the ATK
-framework.
-</para></listitem>
-</varlistentry>
-
 <varlistentry>
 <term>GdkPixbuf</term>
 <listitem><para>
diff --git a/gtk/gtk.h b/gtk/gtk.h
index 50c23caf26..c401443118 100644
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -34,7 +34,6 @@
 #include <gtk/gtkaboutdialog.h>
 #include <gtk/gtkaccelgroup.h>
 #include <gtk/gtkaccellabel.h>
-#include <gtk/gtkaccessible.h>
 #include <gtk/gtkactionable.h>
 #include <gtk/gtkactionbar.h>
 #include <gtk/gtkadjustment.h>
diff --git a/gtk/gtkaccellabel.c b/gtk/gtkaccellabel.c
index 7b83dbad5b..4c3eb166e5 100644
--- a/gtk/gtkaccellabel.c
+++ b/gtk/gtkaccellabel.c
@@ -128,8 +128,6 @@ gtk_accel_label_class_init (GtkAccelLabelClass *class)
   gobject_class->set_property = gtk_accel_label_set_property;
   gobject_class->get_property = gtk_accel_label_get_property;
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_ACCEL_LABEL);
-
   props[PROP_LABEL] =
     g_param_spec_string ("label",
                          P_("Label"),
diff --git a/gtk/gtkactionbar.c b/gtk/gtkactionbar.c
index 77a1981a3b..4a6bf4f12f 100644
--- a/gtk/gtkactionbar.c
+++ b/gtk/gtkactionbar.c
@@ -21,7 +21,6 @@
 
 #include "gtkactionbar.h"
 #include "gtkintl.h"
-#include "gtkaccessible.h"
 #include "gtkbuildable.h"
 #include "gtktypebuiltins.h"
 #include "gtkbox.h"
@@ -159,7 +158,6 @@ gtk_action_bar_class_init (GtkActionBarClass *klass)
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_PANEL);
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, I_("actionbar"));
 }
diff --git a/gtk/gtkassistant.c b/gtk/gtkassistant.c
index c5da702416..437d2ade35 100644
--- a/gtk/gtkassistant.c
+++ b/gtk/gtkassistant.c
@@ -84,9 +84,6 @@
 #include "gtkstylecontext.h"
 #include "gtktypebuiltins.h"
 
-#include "a11y/gtkwindowaccessible.h"
-
-
 typedef struct _GtkAssistantPageClass   GtkAssistantPageClass;
 
 struct _GtkAssistantPage
@@ -206,8 +203,6 @@ static int        gtk_assistant_add_page                 (GtkAssistant     *assi
                                                           GtkAssistantPage *page_info,
                                                           gint              position);
 
-GType             _gtk_assistant_accessible_get_type     (void);
-
 enum
 {
   CHILD_PROP_0,
@@ -487,8 +482,6 @@ gtk_assistant_class_init (GtkAssistantClass *class)
   widget_class->map = gtk_assistant_map;
   widget_class->unmap = gtk_assistant_unmap;
 
-  gtk_widget_class_set_accessible_type (widget_class, _gtk_assistant_accessible_get_type ());
-
   window_class->close_request = gtk_assistant_close_request;
 
   /**
@@ -2092,89 +2085,6 @@ gtk_assistant_commit (GtkAssistant *assistant)
   update_buttons_state (assistant);
 }
 
-/* accessible implementation */
-
-/* dummy typedefs */
-typedef GtkWindowAccessible      GtkAssistantAccessible;
-typedef GtkWindowAccessibleClass GtkAssistantAccessibleClass;
-
-G_DEFINE_TYPE (GtkAssistantAccessible, _gtk_assistant_accessible, GTK_TYPE_WINDOW_ACCESSIBLE);
-
-static gint
-gtk_assistant_accessible_get_n_children (AtkObject *accessible)
-{
-  GtkWidget *widget;
-  GtkAssistant *assistant;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  if (widget == NULL)
-    return 0;
-
-  assistant = GTK_ASSISTANT (widget);
-  return g_list_length (assistant->pages) + 2;
-}
-
-static AtkObject *
-gtk_assistant_accessible_ref_child (AtkObject *accessible,
-                                    gint       index)
-{
-  GtkAssistant *assistant;
-  GtkWidget *widget, *child;
-  gint n_pages;
-  AtkObject *obj;
-  const gchar *title;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  if (widget == NULL)
-    return NULL;
-
-  assistant = GTK_ASSISTANT (widget);
-  n_pages = g_list_length (assistant->pages);
-
-  if (index < 0)
-    return NULL;
-  else if (index < n_pages)
-    {
-      GtkAssistantPage *page = g_list_nth_data (assistant->pages, index);
-
-      child = page->page;
-      title = gtk_assistant_get_page_title (assistant, child);
-    }
-  else if (index == n_pages)
-    {
-      child = assistant->action_area;
-      title = NULL;
-    }
-  else if (index == n_pages + 1)
-    {
-      child = assistant->headerbar;
-      title = NULL;
-    }
-  else
-    return NULL;
-
-  obj = gtk_widget_get_accessible (child);
-
-  if (title)
-    atk_object_set_name (obj, title);
-
-  return g_object_ref (obj);
-}
-
-static void
-_gtk_assistant_accessible_class_init (GtkAssistantAccessibleClass *klass)
-{
-  AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
-
-  atk_class->get_n_children = gtk_assistant_accessible_get_n_children;
-  atk_class->ref_child = gtk_assistant_accessible_ref_child;
-}
-
-static void
-_gtk_assistant_accessible_init (GtkAssistantAccessible *self)
-{
-}
-
 /* buildable implementation */
 
 static GtkBuildableIface *parent_buildable_iface;
diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c
index d4c296e7df..6efce71cd4 100644
--- a/gtk/gtkbox.c
+++ b/gtk/gtkbox.c
@@ -278,7 +278,6 @@ gtk_box_class_init (GtkBoxClass *class)
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FILLER);
   gtk_widget_class_set_css_name (widget_class, I_("box"));
 }
 static void
diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c
index 8a0c084b52..d723eac0b6 100644
--- a/gtk/gtkbutton.c
+++ b/gtk/gtkbutton.c
@@ -71,8 +71,6 @@
 #include "gtktypebuiltins.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkbuttonaccessible.h"
-
 #include <string.h>
 
 /* Time out before giving up on getting a key release when animating
@@ -292,7 +290,6 @@ gtk_button_class_init (GtkButtonClass *klass)
   widget_class->activate_signal = button_signals[ACTIVATE];
 
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_BUTTON_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("button"));
 }
 
@@ -839,14 +836,6 @@ gtk_button_set_label (GtkButton   *button,
   gtk_label_set_label (GTK_LABEL (priv->child), label);
   gtk_button_set_child_type (button, LABEL_CHILD);
 
-  {
-    GtkButtonAccessible *accessible =
-      GTK_BUTTON_ACCESSIBLE (_gtk_widget_peek_accessible (GTK_WIDGET (button)));
-
-    if (accessible != NULL)
-      gtk_button_accessible_update_label (accessible);
-  }
-
   g_object_notify_by_pspec (G_OBJECT (button), props[PROP_LABEL]);
 }
 
diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c
index 40f022f991..6ddb77084e 100644
--- a/gtk/gtkcalendar.c
+++ b/gtk/gtkcalendar.c
@@ -517,7 +517,6 @@ gtk_calendar_class_init (GtkCalendarClass *class)
                   NULL,
                   G_TYPE_NONE, 0);
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_CALENDAR);
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, I_("calendar"));
 }
diff --git a/gtk/gtkcellrenderer.c b/gtk/gtkcellrenderer.c
index 544880a45b..30a70df4de 100644
--- a/gtk/gtkcellrenderer.c
+++ b/gtk/gtkcellrenderer.c
@@ -27,9 +27,6 @@
 #include "gtktreeprivate.h"
 #include "gtktypebuiltins.h"
 
-#include "a11y/gtkrenderercellaccessible.h"
-
-
 /**
  * SECTION:gtkcellrenderer
  * @Short_description: An object for rendering a single cell
@@ -138,11 +135,6 @@ struct _GtkCellRendererPrivate
   GdkRGBA cell_background;
 };
 
-struct _GtkCellRendererClassPrivate
-{
-  GType accessible_type;
-};
-
 enum {
   PROP_0,
   PROP_MODE,
@@ -425,16 +417,6 @@ gtk_cell_renderer_class_init (GtkCellRendererClass *class)
 
   if (GtkCellRenderer_private_offset != 0)
     g_type_class_adjust_private_offset (class, &GtkCellRenderer_private_offset);
-
-  gtk_cell_renderer_class_set_accessible_type (class, GTK_TYPE_RENDERER_CELL_ACCESSIBLE);
-}
-
-static void
-gtk_cell_renderer_base_class_init (gpointer g_class)
-{
-  GtkCellRendererClass *klass = g_class;
-
-  klass->priv = G_TYPE_CLASS_GET_PRIVATE (g_class, GTK_TYPE_CELL_RENDERER, GtkCellRendererClassPrivate);
 }
 
 GType
@@ -447,7 +429,7 @@ gtk_cell_renderer_get_type (void)
       const GTypeInfo cell_renderer_info =
       {
        sizeof (GtkCellRendererClass),
-       gtk_cell_renderer_base_class_init,
+        NULL,
         NULL,
        (GClassInitFunc) gtk_cell_renderer_class_init,
        NULL,           /* class_finalize */
@@ -462,7 +444,6 @@ gtk_cell_renderer_get_type (void)
 
       GtkCellRenderer_private_offset =
         g_type_add_instance_private (cell_renderer_type, sizeof (GtkCellRendererPrivate));
-      g_type_add_class_private (cell_renderer_type, sizeof (GtkCellRendererClassPrivate));
     }
 
   return cell_renderer_type;
@@ -1776,39 +1757,3 @@ gtk_cell_renderer_get_is_expanded (GtkCellRenderer *cell)
 
   return priv->is_expanded;
 }
-
-/**
- * gtk_cell_renderer_class_set_accessible_type:
- * @renderer_class: class to set the accessible type for
- * @type: The object type that implements the accessible for @widget_class.
- *     The type must be a subtype of #GtkRendererCellAccessible
- *
- * Sets the type to be used for creating accessibles for cells rendered by
- * cell renderers of @renderer_class. Note that multiple accessibles will
- * be created.
- *
- * This function should only be called from class init functions of cell
- * renderers.
- **/
-void
-gtk_cell_renderer_class_set_accessible_type (GtkCellRendererClass *renderer_class,
-                                             GType                 type)
-{
-  GtkCellRendererClassPrivate *priv;
-
-  g_return_if_fail (GTK_IS_CELL_RENDERER_CLASS (renderer_class));
-  g_return_if_fail (g_type_is_a (type, GTK_TYPE_RENDERER_CELL_ACCESSIBLE));
-
-  priv = renderer_class->priv;
-
-  priv->accessible_type = type;
-}
-
-GType
-_gtk_cell_renderer_get_accessible_type (GtkCellRenderer *renderer)
-{
-  g_return_val_if_fail (GTK_IS_CELL_RENDERER (renderer), GTK_TYPE_RENDERER_CELL_ACCESSIBLE);
-
-  return GTK_CELL_RENDERER_GET_CLASS (renderer)->priv->accessible_type;
-}
-
diff --git a/gtk/gtkcellrenderer.h b/gtk/gtkcellrenderer.h
index cfc68ff79d..0ab04d015d 100644
--- a/gtk/gtkcellrenderer.h
+++ b/gtk/gtkcellrenderer.h
@@ -173,9 +173,6 @@ struct _GtkCellRendererClass
                             const gchar     *path);
 
   /*< private >*/
-
-  GtkCellRendererClassPrivate *priv;
-
   gpointer padding[8];
 };
 
@@ -317,13 +314,6 @@ GtkStateFlags   gtk_cell_renderer_get_state       (GtkCellRenderer      *cell,
                                                    GtkWidget            *widget,
                                                    GtkCellRendererState  cell_state);
 
-GDK_AVAILABLE_IN_ALL
-void            gtk_cell_renderer_class_set_accessible_type 
-                                                  (GtkCellRendererClass *renderer_class,
-                                                   GType                 type);
-GType           _gtk_cell_renderer_get_accessible_type
-                                                  (GtkCellRenderer *     renderer);
-
 G_END_DECLS
 
 #endif /* __GTK_CELL_RENDERER_H__ */
diff --git a/gtk/gtkcellrendererpixbuf.c b/gtk/gtkcellrendererpixbuf.c
index bb240bae91..27125e4238 100644
--- a/gtk/gtkcellrendererpixbuf.c
+++ b/gtk/gtkcellrendererpixbuf.c
@@ -27,8 +27,6 @@
 #include "gtkstylecontextprivate.h"
 #include "gtktypebuiltins.h"
 
-#include "a11y/gtkimagecellaccessible.h"
-
 #include <cairo-gobject.h>
 #include <stdlib.h>
 
@@ -227,10 +225,6 @@ gtk_cell_renderer_pixbuf_class_init (GtkCellRendererPixbufClass *class)
                                                         P_("The GIcon being displayed"),
                                                         G_TYPE_ICON,
                                                         GTK_PARAM_READWRITE));
-
-
-
-  gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_IMAGE_CELL_ACCESSIBLE);
 }
 
 static void
diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c
index 1163616d72..6947a141a4 100644
--- a/gtk/gtkcellrenderertext.c
+++ b/gtk/gtkcellrenderertext.c
@@ -31,8 +31,6 @@
 #include "gtkstylecontextprivate.h"
 #include "gtktreeprivate.h"
 
-#include "a11y/gtktextcellaccessible.h"
-
 #include <stdlib.h>
 
 /**
@@ -642,8 +640,6 @@ gtk_cell_renderer_text_class_init (GtkCellRendererTextClass *class)
   g_signal_set_va_marshaller (text_cell_renderer_signals [EDITED],
                               G_OBJECT_CLASS_TYPE (object_class),
                               _gtk_marshal_VOID__STRING_STRINGv);
-
-  gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_TEXT_CELL_ACCESSIBLE);
 }
 
 static void
diff --git a/gtk/gtkcellrenderertoggle.c b/gtk/gtkcellrenderertoggle.c
index 19e84adc63..d0b9362f8e 100644
--- a/gtk/gtkcellrenderertoggle.c
+++ b/gtk/gtkcellrenderertoggle.c
@@ -29,8 +29,6 @@
 #include "gtkwidgetprivate.h"
 #include "gtktreeprivate.h"
 
-#include "a11y/gtkbooleancellaccessible.h"
-
 #include <stdlib.h>
 
 /**
@@ -216,8 +214,6 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
                  NULL,
                  G_TYPE_NONE, 1,
                  G_TYPE_STRING);
-
-  gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE);
 }
 
 static void
diff --git a/gtk/gtkcenterbox.c b/gtk/gtkcenterbox.c
index e3536be6d9..a57c4b3b0e 100644
--- a/gtk/gtkcenterbox.c
+++ b/gtk/gtkcenterbox.c
@@ -209,7 +209,6 @@ gtk_center_box_class_init (GtkCenterBoxClass *klass)
                              GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
 
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FILLER);
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_CENTER_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, I_("box"));
 }
diff --git a/gtk/gtkcheckbutton.c b/gtk/gtkcheckbutton.c
index dc762d48f1..19c49ebc12 100644
--- a/gtk/gtkcheckbutton.c
+++ b/gtk/gtkcheckbutton.c
@@ -200,7 +200,6 @@ gtk_check_button_class_init (GtkCheckButtonClass *class)
   g_object_class_install_properties (object_class, NUM_PROPERTIES, props);
 
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_CHECK_BOX);
   gtk_widget_class_set_css_name (widget_class, I_("checkbutton"));
 }
 
diff --git a/gtk/gtkcolorchooserwidget.c b/gtk/gtkcolorchooserwidget.c
index 938af7632e..8d5533498f 100644
--- a/gtk/gtkcolorchooserwidget.c
+++ b/gtk/gtkcolorchooserwidget.c
@@ -32,8 +32,6 @@
 #include "gtkboxlayout.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkcompositeaccessible.h"
-
 #include <math.h>
 
 /**
@@ -265,31 +263,6 @@ update_from_editor (GtkColorEditor        *editor,
 
 /* UI construction {{{1 */
 
-static guint
-scale_round (gdouble value, gdouble scale)
-{
-  value = floor (value * scale + 0.5);
-  value = MAX (value, 0);
-  value = MIN (value, scale);
-  return (guint)value;
-}
-
-static gchar *
-accessible_color_name (GdkRGBA *color)
-{
-  if (color->alpha < 1.0)
-    return g_strdup_printf (_("Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%"),
-                            scale_round (color->red, 100),
-                            scale_round (color->green, 100),
-                            scale_round (color->blue, 100),
-                            scale_round (color->alpha, 100));
-  else
-    return g_strdup_printf (_("Red %d%%, Green %d%%, Blue %d%%"),
-                            scale_round (color->red, 100),
-                            scale_round (color->green, 100),
-                            scale_round (color->blue, 100));
-}
-
 static void
 remove_palette (GtkColorChooserWidget *cc)
 {
@@ -326,7 +299,6 @@ add_palette (GtkColorChooserWidget  *cc,
 {
   GtkWidget *grid;
   GtkWidget *p;
-  AtkObject *atk_obj;
   gint line, pos;
   gint i;
   gint left, right;
@@ -355,22 +327,6 @@ add_palette (GtkColorChooserWidget  *cc,
   for (i = 0; i < n_colors; i++)
     {
       p = gtk_color_swatch_new ();
-      atk_obj = gtk_widget_get_accessible (p);
-      if (names)
-        {
-          atk_object_set_name (atk_obj,
-                               g_dpgettext2 (GETTEXT_PACKAGE, "Color name", names[i]));
-        }
-      else
-        {
-          gchar *text, *name;
-
-          name = accessible_color_name (&colors[i]);
-          text = g_strdup_printf (_("Color: %s"), name);
-          atk_object_set_name (atk_obj, text);
-          g_free (text);
-          g_free (name);
-        }
       gtk_color_swatch_set_rgba (GTK_COLOR_SWATCH (p), &colors[i]);
       connect_swatch_signals (p, cc);
 
@@ -543,8 +499,6 @@ gtk_color_chooser_widget_init (GtkColorChooserWidget *cc)
   GVariant *variant;
   GVariantIter iter;
   gboolean selected;
-  AtkObject *atk_obj;
-  gchar *text, *name;
 
   cc->use_alpha = TRUE;
 
@@ -564,9 +518,6 @@ gtk_color_chooser_widget_init (GtkColorChooserWidget *cc)
 
   cc->button = button = gtk_color_swatch_new ();
   gtk_widget_set_name (button, "add-color-button");
-  atk_obj = gtk_widget_get_accessible (button);
-  atk_object_set_name (atk_obj, _("Custom color"));
-  atk_object_set_description (atk_obj, _("Create a custom color"));
   connect_button_signals (button, cc);
   gtk_color_swatch_set_icon (GTK_COLOR_SWATCH (button), "list-add-symbolic");
   gtk_color_swatch_set_selectable (GTK_COLOR_SWATCH (button), FALSE);
@@ -589,12 +540,6 @@ gtk_color_chooser_widget_init (GtkColorChooserWidget *cc)
 
       gtk_color_swatch_set_rgba (GTK_COLOR_SWATCH (p), &rgba);
       gtk_color_swatch_set_can_drop (GTK_COLOR_SWATCH (p), TRUE);
-      atk_obj = gtk_widget_get_accessible (p);
-      name = accessible_color_name (&rgba);
-      text = g_strdup_printf (_("Custom color %d: %s"), i, name);
-      atk_object_set_name (atk_obj, text);
-      g_free (text);
-      g_free (name);
       connect_custom_signals (p, cc);
       gtk_box_append (GTK_BOX (box), p);
 
@@ -753,8 +698,6 @@ 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 */
diff --git a/gtk/gtkcolorplane.c b/gtk/gtkcolorplane.c
index 8d18aed3f9..f39b6fbe48 100644
--- a/gtk/gtkcolorplane.c
+++ b/gtk/gtkcolorplane.c
@@ -19,7 +19,6 @@
 
 #include "gtkcolorplaneprivate.h"
 
-#include "gtkaccessible.h"
 #include "gtkadjustment.h"
 #include "gtkcolorutils.h"
 #include "gtkgesturedrag.h"
@@ -400,7 +399,6 @@ gtk_color_plane_init (GtkColorPlane *plane)
 {
   GtkEventController *controller;
   GtkGesture *gesture;
-  AtkObject *atk_obj;
   GtkShortcutTrigger *trigger;
   GtkShortcutAction *action;
   GtkShortcut *shortcut;
@@ -409,13 +407,6 @@ gtk_color_plane_init (GtkColorPlane *plane)
 
   gtk_widget_set_focusable (GTK_WIDGET (plane), TRUE);
 
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (plane));
-  if (GTK_IS_ACCESSIBLE (atk_obj))
-    {
-      atk_object_set_name (atk_obj, _("Color Plane"));
-      atk_object_set_role (atk_obj, ATK_ROLE_COLOR_CHOOSER);
-    }
-
   gesture = gtk_gesture_drag_new ();
   g_signal_connect (gesture, "drag-begin",
                    G_CALLBACK (plane_drag_gesture_begin), plane);
diff --git a/gtk/gtkcolorscale.c b/gtk/gtkcolorscale.c
index 8f7354ab7d..f0e103e1cf 100644
--- a/gtk/gtkcolorscale.c
+++ b/gtk/gtkcolorscale.c
@@ -25,7 +25,6 @@
 #include "gtkcolorutils.h"
 #include "gtkorientable.h"
 #include "gtkrangeprivate.h"
-#include "gtkaccessible.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
 #include "gtksnapshot.h"
@@ -224,19 +223,8 @@ scale_set_type (GtkColorScale     *scale,
                 GtkColorScaleType  type)
 {
   GtkColorScalePrivate *priv = gtk_color_scale_get_instance_private (scale);
-  AtkObject *atk_obj;
 
   priv->type = type;
-
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (scale));
-  if (GTK_IS_ACCESSIBLE (atk_obj))
-    {
-      if (type == GTK_COLOR_SCALE_HUE)
-        atk_object_set_name (atk_obj, C_("Color channel", "Hue"));
-      else if (type == GTK_COLOR_SCALE_ALPHA)
-        atk_object_set_name (atk_obj, C_("Color channel", "Alpha"));
-      atk_object_set_role (atk_obj, ATK_ROLE_COLOR_CHOOSER);
-    }
 }
 
 static void
diff --git a/gtk/gtkcolorswatch.c b/gtk/gtkcolorswatch.c
index 462f8dd29c..bd70f10506 100644
--- a/gtk/gtkcolorswatch.c
+++ b/gtk/gtkcolorswatch.c
@@ -40,8 +40,6 @@
 #include "gtkeventcontrollerkey.h"
 #include "gtknative.h"
 
-#include "a11y/gtkcolorswatchaccessibleprivate.h"
-
 /*
  * GtkColorSwatch has two CSS nodes, the main one named colorswatch
  * and a subnode named overlay. The main node gets the .light or .dark
@@ -507,7 +505,6 @@ gtk_color_swatch_class_init (GtkColorSwatchClass *class)
                                        "menu.popup",
                                        NULL);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_COLOR_SWATCH_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("colorswatch"));
 }
 
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c
index 5ab02aa0a3..3eec151410 100644
--- a/gtk/gtkcombobox.c
+++ b/gtk/gtkcombobox.c
@@ -39,8 +39,6 @@
 #include "gtktypebuiltins.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkcomboboxaccessible.h"
-
 #include <gobject/gvaluecollector.h>
 #include <string.h>
 #include <stdarg.h>
@@ -798,7 +796,6 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, gtk_combo_box_menu_show);
   gtk_widget_class_bind_template_callback (widget_class, gtk_combo_box_menu_hide);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_COMBO_BOX_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("combobox"));
 }
 
@@ -2533,29 +2530,6 @@ gtk_combo_box_get_popup_fixed_width (GtkComboBox *combo_box)
   return priv->popup_fixed_width;
 }
 
-
-/**
- * gtk_combo_box_get_popup_accessible:
- * @combo_box: a #GtkComboBox
- *
- * Gets the accessible object corresponding to the combo box’s popup.
- *
- * This function is mostly intended for use by accessibility technologies;
- * applications should have little use for it.
- *
- * Returns: (transfer none): the accessible object corresponding
- *     to the combo box’s popup.
- */
-AtkObject*
-gtk_combo_box_get_popup_accessible (GtkComboBox *combo_box)
-{
-  GtkComboBoxPrivate *priv = gtk_combo_box_get_instance_private (combo_box);
-
-  g_return_val_if_fail (GTK_IS_COMBO_BOX (combo_box), NULL);
-
-  return gtk_widget_get_accessible (priv->popup_widget);
-}
-
 /**
  * gtk_combo_box_get_row_separator_func: (skip)
  * @combo_box: a #GtkComboBox
diff --git a/gtk/gtkcombobox.h b/gtk/gtkcombobox.h
index afcfbbd5ea..05596ac365 100644
--- a/gtk/gtkcombobox.h
+++ b/gtk/gtkcombobox.h
@@ -135,8 +135,6 @@ void          gtk_combo_box_popup_for_device (GtkComboBox     *combo_box,
                                               GdkDevice       *device);
 GDK_AVAILABLE_IN_ALL
 void          gtk_combo_box_popdown          (GtkComboBox     *combo_box);
-GDK_AVAILABLE_IN_ALL
-AtkObject*    gtk_combo_box_get_popup_accessible (GtkComboBox *combo_box);
 
 GDK_AVAILABLE_IN_ALL
 gint          gtk_combo_box_get_id_column        (GtkComboBox *combo_box);
diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c
index 84b8e45503..f4bc4515a0 100644
--- a/gtk/gtkdialog.c
+++ b/gtk/gtkdialog.c
@@ -486,8 +486,6 @@ gtk_dialog_class_init (GtkDialogClass *class)
 
   window_class->close_request = gtk_dialog_close_request;
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_DIALOG);
-
   class->close = gtk_dialog_close;
 
   /**
diff --git a/gtk/gtkdrawingarea.c b/gtk/gtkdrawingarea.c
index b501f3b07c..7306869910 100644
--- a/gtk/gtkdrawingarea.c
+++ b/gtk/gtkdrawingarea.c
@@ -329,8 +329,6 @@ gtk_drawing_area_class_init (GtkDrawingAreaClass *class)
   g_signal_set_va_marshaller (signals[RESIZE],
                               G_TYPE_FROM_CLASS (class),
                               _gtk_marshal_VOID__INT_INTv);
-
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_DRAWING_AREA);
 }
 
 static void
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 77d4241121..ea8f8eb7ab 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -70,8 +70,6 @@
 #include "gtkdragicon.h"
 #include "gtkwidgetpaintable.h"
 
-#include "a11y/gtkentryaccessible.h"
-
 #include <cairo-gobject.h>
 #include <string.h>
 
@@ -984,7 +982,6 @@ gtk_entry_class_init (GtkEntryClass *class)
                   G_TYPE_NONE, 1,
                   GTK_TYPE_ENTRY_ICON_POSITION);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_ENTRY_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("entry"));
 }
 
diff --git a/gtk/gtkentrycompletion.c b/gtk/gtkentrycompletion.c
index 09a43778b2..7b1028968b 100644
--- a/gtk/gtkentrycompletion.c
+++ b/gtk/gtkentrycompletion.c
@@ -2061,36 +2061,6 @@ connect_completion_signals (GtkEntryCompletion *completion)
    g_signal_connect_swapped (text, "activate", G_CALLBACK (accept_completion_callback), completion);
 }
 
-static void
-set_accessible_relation (GtkWidget *window,
-                         GtkWidget *entry)
-{
-  AtkObject *window_accessible;
-  AtkObject *entry_accessible;
-
-  window_accessible = gtk_widget_get_accessible (window);
-  entry_accessible = gtk_widget_get_accessible (entry);
-
-  atk_object_add_relationship (window_accessible,
-                               ATK_RELATION_POPUP_FOR,
-                               entry_accessible);
-}
-
-static void
-unset_accessible_relation (GtkWidget *window,
-                           GtkWidget *entry)
-{
-  AtkObject *window_accessible;
-  AtkObject *entry_accessible;
-
-  window_accessible = gtk_widget_get_accessible (window);
-  entry_accessible = gtk_widget_get_accessible (entry);
-
-  atk_object_remove_relationship (window_accessible,
-                                  ATK_RELATION_POPUP_FOR,
-                                  entry_accessible);
-}
-
 static void
 disconnect_completion_signals (GtkEntryCompletion *completion)
 {
@@ -2135,8 +2105,6 @@ _gtk_entry_completion_disconnect (GtkEntryCompletion *completion)
 
   disconnect_completion_signals (completion);
 
-  unset_accessible_relation (completion->popup_window,
-                             completion->entry);
   gtk_widget_unparent (completion->popup_window);
 
   completion->entry = NULL;
@@ -2148,8 +2116,6 @@ _gtk_entry_completion_connect (GtkEntryCompletion *completion,
 {
   completion->entry = GTK_WIDGET (entry);
 
-  set_accessible_relation (completion->popup_window,
-                           completion->entry);
   gtk_widget_set_parent (completion->popup_window, GTK_WIDGET (entry));
 
   connect_completion_signals (completion);
diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c
index 0ceff8679b..7dea9e6c97 100644
--- a/gtk/gtkexpander.c
+++ b/gtk/gtkexpander.c
@@ -126,8 +126,6 @@
 #include "gtkstylecontextprivate.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkexpanderaccessibleprivate.h"
-
 #include <string.h>
 
 #define TIMEOUT_EXPAND 500
@@ -375,7 +373,6 @@ gtk_expander_class_init (GtkExpanderClass *klass)
                   NULL,
                   G_TYPE_NONE, 0);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_EXPANDER_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("expander-widget"));
 }
 
@@ -880,14 +877,6 @@ gtk_expander_set_expanded (GtkExpander *expander,
       gtk_expander_resize_toplevel (expander);
     }
 
-  {
-    AtkObject *accessible = _gtk_widget_peek_accessible (GTK_WIDGET (expander));
-
-    if (accessible != NULL)
-      gtk_expander_accessible_update_state (GTK_EXPANDER_ACCESSIBLE (accessible),
-                                            expander->expanded);
-  }
-
   g_object_notify (G_OBJECT (expander), "expanded");
 }
 
@@ -941,13 +930,6 @@ gtk_expander_set_label (GtkExpander *expander,
       gtk_expander_set_label_widget (expander, child);
     }
 
-  {
-    AtkObject *accessible = _gtk_widget_peek_accessible (GTK_WIDGET (expander));
-
-    if (accessible != NULL)
-      gtk_expander_accessible_update_label (GTK_EXPANDER_ACCESSIBLE (accessible));
-  }
-
   g_object_notify (G_OBJECT (expander), "label");
 }
 
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
index f7a16057cc..22e20117d8 100644
--- a/gtk/gtkfilechooserdialog.c
+++ b/gtk/gtkfilechooserdialog.c
@@ -293,8 +293,6 @@ gtk_file_chooser_dialog_class_init (GtkFileChooserDialogClass *class)
   widget_class->unmap = gtk_file_chooser_dialog_unmap;
   widget_class->size_allocate = gtk_file_chooser_dialog_size_allocate;
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FILE_CHOOSER);
-
   _gtk_file_chooser_install_properties (gobject_class);
 
   /* Bind class to template
diff --git a/gtk/gtkflowbox.c b/gtk/gtkflowbox.c
index 8ac3ff9f7e..7c61f4c3df 100644
--- a/gtk/gtkflowbox.c
+++ b/gtk/gtkflowbox.c
@@ -98,9 +98,6 @@
 #include "gtkviewport.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkflowboxaccessibleprivate.h"
-#include "a11y/gtkflowboxchildaccessible.h"
- 
 /* Forward declarations and utilities {{{1 */
 
 static void gtk_flow_box_update_cursor       (GtkFlowBox      *box,
@@ -537,7 +534,6 @@ gtk_flow_box_child_class_init (GtkFlowBoxChildClass *class)
   widget_class->activate_signal = child_signals[CHILD_ACTIVATE];
 
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_LIST_ITEM);
   gtk_widget_class_set_css_name (widget_class, I_("flowboxchild"));
 }
 
@@ -961,7 +957,6 @@ gtk_flow_box_update_cursor (GtkFlowBox      *box,
 {
   BOX_PRIV (box)->cursor_child = child;
   gtk_widget_grab_focus (GTK_WIDGET (child));
-  _gtk_flow_box_accessible_update_cursor (GTK_WIDGET (box), GTK_WIDGET (child));
 }
 
 static void
@@ -3379,7 +3374,6 @@ gtk_flow_box_move_cursor (GtkFlowBox      *box,
 static void
 gtk_flow_box_selected_children_changed (GtkFlowBox *box)
 {
-  _gtk_flow_box_accessible_selection_changed (GTK_WIDGET (box));
 }
 
 /* GObject implementation {{{2 */
@@ -3877,7 +3871,6 @@ gtk_flow_box_class_init (GtkFlowBoxClass *class)
                                        "unselect-all",
                                        NULL);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_FLOW_BOX_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("flowbox"));
 }
 
diff --git a/gtk/gtkfontchooserdialog.c b/gtk/gtkfontchooserdialog.c
index 9083806f89..96439350d8 100644
--- a/gtk/gtkfontchooserdialog.c
+++ b/gtk/gtkfontchooserdialog.c
@@ -21,8 +21,6 @@
 #include <glib/gprintf.h>
 #include <string.h>
 
-#include <atk/atk.h>
-
 #include "gtkfontchooserdialog.h"
 #include "gtkfontchooser.h"
 #include "gtkfontchooserwidget.h"
@@ -30,7 +28,6 @@
 #include "gtkfontchooserutils.h"
 #include "gtkbox.h"
 #include "gtkintl.h"
-#include "gtkaccessible.h"
 #include "gtkbuildable.h"
 #include "gtkprivate.h"
 #include "gtkwidget.h"
diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c
index 42101f29d3..b33b6525e3 100644
--- a/gtk/gtkfontchooserwidget.c
+++ b/gtk/gtkfontchooserwidget.c
@@ -21,8 +21,6 @@
 #include <glib/gprintf.h>
 #include <string.h>
 
-#include <atk/atk.h>
-
 #include "gtkfontchooserwidget.h"
 #include "gtkfontchooserwidgetprivate.h"
 
diff --git a/gtk/gtkframe.c b/gtk/gtkframe.c
index 5042b1b346..509ac2c47b 100644
--- a/gtk/gtkframe.c
+++ b/gtk/gtkframe.c
@@ -36,8 +36,6 @@
 #include "gtkcssstylepropertyprivate.h"
 #include "gtklabel.h"
 
-#include "a11y/gtkframeaccessible.h"
-
 /**
  * SECTION:gtkframe
  * @Short_description: A widget with a decorative frame and optional label
@@ -194,7 +192,6 @@ gtk_frame_class_init (GtkFrameClass *class)
 
   g_object_class_install_properties (gobject_class, LAST_PROP, frame_props);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_FRAME_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("frame"));
 }
 
diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c
index 107e0940ff..d913370a52 100644
--- a/gtk/gtkglarea.c
+++ b/gtk/gtkglarea.c
@@ -784,8 +784,6 @@ gtk_gl_area_class_init (GtkGLAreaClass *klass)
   widget_class->size_allocate = gtk_gl_area_size_allocate;
   widget_class->snapshot = gtk_gl_area_snapshot;
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_DRAWING_AREA);
-
   /**
    * GtkGLArea:context:
    *
diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c
index fa00f9a00b..e3de99b8c7 100644
--- a/gtk/gtkheaderbar.c
+++ b/gtk/gtkheaderbar.c
@@ -617,7 +617,6 @@ gtk_header_bar_class_init (GtkHeaderBarClass *class)
 
   g_object_class_install_properties (object_class, LAST_PROP, header_bar_props);
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_PANEL);
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, I_("headerbar"));
 }
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c
index ea63186622..6591c48288 100644
--- a/gtk/gtkiconview.c
+++ b/gtk/gtkiconview.c
@@ -19,7 +19,6 @@
 
 #include "gtkiconviewprivate.h"
 
-#include "gtkaccessible.h"
 #include "gtkadjustmentprivate.h"
 #include "gtkcellareabox.h"
 #include "gtkcellareacontext.h"
@@ -48,8 +47,6 @@
 #include "gtkdragicon.h"
 #include "gtknative.h"
 
-#include "a11y/gtkiconviewaccessibleprivate.h"
-
 #include <string.h>
 
 /**
@@ -256,9 +253,6 @@ static void                 gtk_icon_view_ensure_cell_area               (GtkIco
 
 static GtkCellArea         *gtk_icon_view_cell_layout_get_area           (GtkCellLayout          *layout);
 
-static void                 gtk_icon_view_item_selected_changed          (GtkIconView            *icon_view,
-                                                                         GtkIconViewItem        *item);
-
 static void                 gtk_icon_view_add_editable                   (GtkCellArea            *area,
                                                                          GtkCellRenderer        *renderer,
                                                                          GtkCellEditable        *editable,
@@ -885,7 +879,6 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
   gtk_icon_view_add_move_binding (widget_class, GDK_KEY_KP_Left, 0, 
                                  GTK_MOVEMENT_VISUAL_POSITIONS, -1);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_ICON_VIEW_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("iconview"));
 }
 
@@ -1917,25 +1910,6 @@ gtk_icon_view_remove (GtkIconView *icon_view,
     }
 }
 
-static void 
-gtk_icon_view_item_selected_changed (GtkIconView      *icon_view,
-                                     GtkIconViewItem  *item)
-{
-  AtkObject *obj;
-  AtkObject *item_obj;
-
-  obj = gtk_widget_get_accessible (GTK_WIDGET (icon_view));
-  if (obj != NULL)
-    {
-      item_obj = atk_object_ref_accessible_child (obj, item->index);
-      if (item_obj != NULL)
-        {
-          atk_object_notify_state_change (item_obj, ATK_STATE_SELECTED, item->selected);
-          g_object_unref (item_obj);
-        }
-    }
-}
-
 static void
 gtk_icon_view_add_editable (GtkCellArea            *area,
                            GtkCellRenderer        *renderer,
@@ -2472,7 +2446,6 @@ gtk_icon_view_unselect_all_internal (GtkIconView  *icon_view)
          item->selected = FALSE;
          dirty = TRUE;
          gtk_icon_view_queue_draw_item (icon_view, item);
-         gtk_icon_view_item_selected_changed (icon_view, item);
        }
     }
 
@@ -2551,7 +2524,6 @@ gtk_icon_view_real_toggle_cursor_item (GtkIconView *icon_view)
       icon_view->priv->cursor_item->selected = !icon_view->priv->cursor_item->selected;
       g_signal_emit (icon_view, icon_view_signals[SELECTION_CHANGED], 0); 
       
-      gtk_icon_view_item_selected_changed (icon_view, icon_view->priv->cursor_item);      
       gtk_icon_view_queue_draw_item (icon_view, icon_view->priv->cursor_item);
       break;
     }
@@ -2686,14 +2658,8 @@ gtk_icon_view_adjustment_changed (GtkAdjustment *adjustment,
 
   if (gtk_widget_get_realized (widget))
     {
-      GtkIconViewAccessible *accessible =
-        GTK_ICON_VIEW_ACCESSIBLE (_gtk_widget_peek_accessible (GTK_WIDGET (icon_view)));
-
       if (icon_view->priv->doing_rubberband)
         gtk_icon_view_update_rubberband (icon_view);
-
-      if (accessible != NULL)
-        gtk_icon_view_accessible_adjustment_changed (accessible);
     }
 
   gtk_widget_queue_draw (GTK_WIDGET (icon_view));
@@ -2982,14 +2948,9 @@ _gtk_icon_view_set_cursor_item (GtkIconView     *icon_view,
                                 GtkIconViewItem *item,
                                 GtkCellRenderer *cursor_cell)
 {
-  AtkObject *obj;
-  AtkObject *item_obj;
-  AtkObject *cursor_item_obj;
-
-  /* When hitting this path from keynav, the focus cell is
-   * already set, we dont need to notify the atk object
-   * but we still need to queue the draw here (in the case
-   * that the focus cell changes but not the cursor item).
+  /* When hitting this path from keynav, the focus cell is already set,
+   * but we still need to queue the draw here (in the case that the focus
+   * cell changes but not the cursor item).
    */
   gtk_icon_view_queue_draw_item (icon_view, item);
 
@@ -2997,17 +2958,9 @@ _gtk_icon_view_set_cursor_item (GtkIconView     *icon_view,
       (cursor_cell == NULL || cursor_cell == gtk_cell_area_get_focus_cell (icon_view->priv->cell_area)))
     return;
 
-  obj = gtk_widget_get_accessible (GTK_WIDGET (icon_view));
   if (icon_view->priv->cursor_item != NULL)
-    {
-      gtk_icon_view_queue_draw_item (icon_view, icon_view->priv->cursor_item);
-      if (obj != NULL)
-        {
-          cursor_item_obj = atk_object_ref_accessible_child (obj, icon_view->priv->cursor_item->index);
-          if (cursor_item_obj != NULL)
-            atk_object_notify_state_change (cursor_item_obj, ATK_STATE_FOCUSED, FALSE);
-        }
-    }
+    gtk_icon_view_queue_draw_item (icon_view, icon_view->priv->cursor_item);
+
   icon_view->priv->cursor_item = item;
 
   if (cursor_cell)
@@ -3018,18 +2971,6 @@ _gtk_icon_view_set_cursor_item (GtkIconView     *icon_view,
       if (!gtk_cell_area_get_focus_cell (icon_view->priv->cell_area))
        gtk_cell_area_focus (icon_view->priv->cell_area, GTK_DIR_TAB_FORWARD);
     }
-  
-  /* Notify that accessible focus object has changed */
-  item_obj = atk_object_ref_accessible_child (obj, item->index);
-
-  if (item_obj != NULL)
-    {
-      G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
-      atk_focus_tracker_notify (item_obj);
-      G_GNUC_END_IGNORE_DEPRECATIONS;
-      atk_object_notify_state_change (item_obj, ATK_STATE_FOCUSED, TRUE);
-      g_object_unref (item_obj); 
-    }
 }
 
 
@@ -3122,7 +3063,6 @@ _gtk_icon_view_select_item (GtkIconView      *icon_view,
 
   item->selected = TRUE;
 
-  gtk_icon_view_item_selected_changed (icon_view, item);
   g_signal_emit (icon_view, icon_view_signals[SELECTION_CHANGED], 0);
 
   gtk_icon_view_queue_draw_item (icon_view, item);
@@ -3145,7 +3085,6 @@ _gtk_icon_view_unselect_item (GtkIconView      *icon_view,
   
   item->selected = FALSE;
 
-  gtk_icon_view_item_selected_changed (icon_view, item);
   g_signal_emit (icon_view, icon_view_signals[SELECTION_CHANGED], 0);
 
   gtk_icon_view_queue_draw_item (icon_view, item);
@@ -3582,7 +3521,6 @@ gtk_icon_view_select_all_between (GtkIconView     *icon_view,
            {
              dirty = TRUE;
              item->selected = TRUE;
-             gtk_icon_view_item_selected_changed (icon_view, item);
            }
          gtk_icon_view_queue_draw_item (icon_view, item);
        }
@@ -4713,14 +4651,6 @@ gtk_icon_view_set_model (GtkIconView *icon_view,
       gtk_icon_view_build_items (icon_view);
     }
 
-  {
-    GtkIconViewAccessible *accessible =
-      GTK_ICON_VIEW_ACCESSIBLE (_gtk_widget_peek_accessible (GTK_WIDGET (icon_view)));
-
-    if (accessible != NULL)
-      gtk_icon_view_accessible_update_model (accessible, icon_view->priv->model);
-  }
-
   g_object_notify (G_OBJECT (icon_view), "model");  
 
   if (dirty)
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c
index 3a0399e939..2b0eea86bf 100644
--- a/gtk/gtkimage.c
+++ b/gtk/gtkimage.c
@@ -36,8 +36,6 @@
 #include "gtktypebuiltins.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkimageaccessible.h"
-
 #include <math.h>
 #include <string.h>
 #include <cairo-gobject.h>
@@ -262,7 +260,6 @@ gtk_image_class_init (GtkImageClass *class)
 
   g_object_class_install_properties (gobject_class, NUM_PROPERTIES, image_props);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_IMAGE_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("image"));
 }
 
diff --git a/gtk/gtkinfobar.c b/gtk/gtkinfobar.c
index 775ba0b6da..ca23155837 100644
--- a/gtk/gtkinfobar.c
+++ b/gtk/gtkinfobar.c
@@ -32,7 +32,6 @@
 #include <stdlib.h>
 
 #include "gtkinfobar.h"
-#include "gtkaccessible.h"
 #include "gtkbuildable.h"
 #include "gtkbuilderprivate.h"
 #include "gtkbox.h"
@@ -1072,7 +1071,6 @@ gtk_info_bar_set_message_type (GtkInfoBar     *info_bar,
 
   if (info_bar->message_type != message_type)
     {
-      AtkObject *atk_obj;
       const char *type_class[] = {
         GTK_STYLE_CLASS_INFO,
         GTK_STYLE_CLASS_WARNING,
@@ -1088,43 +1086,6 @@ gtk_info_bar_set_message_type (GtkInfoBar     *info_bar,
 
       gtk_widget_queue_draw (GTK_WIDGET (info_bar));
 
-      atk_obj = gtk_widget_get_accessible (GTK_WIDGET (info_bar));
-      if (GTK_IS_ACCESSIBLE (atk_obj))
-        {
-          const char *name = NULL;
-
-          atk_object_set_role (atk_obj, ATK_ROLE_INFO_BAR);
-
-          switch (message_type)
-            {
-            case GTK_MESSAGE_INFO:
-              name = _("Information");
-              break;
-
-            case GTK_MESSAGE_QUESTION:
-              name = _("Question");
-              break;
-
-            case GTK_MESSAGE_WARNING:
-              name = _("Warning");
-              break;
-
-            case GTK_MESSAGE_ERROR:
-              name = _("Error");
-              break;
-
-            case GTK_MESSAGE_OTHER:
-              break;
-
-            default:
-              g_warning ("Unknown GtkMessageType %u", message_type);
-              break;
-            }
-
-          if (name)
-            atk_object_set_name (atk_obj, name);
-        }
-
       if (type_class[info_bar->message_type])
         gtk_widget_add_css_class (GTK_WIDGET (info_bar), type_class[info_bar->message_type]);
 
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index a42ff5a29d..e37728a64f 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -58,8 +58,6 @@
 #include "gtkdragicon.h"
 #include "gtkcsscolorvalueprivate.h"
 
-#include "a11y/gtklabelaccessibleprivate.h"
-
 #include <math.h>
 #include <string.h>
 
@@ -1074,8 +1072,6 @@ gtk_label_class_init (GtkLabelClass *class)
                                       "activate-current-link",
                                        NULL);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LABEL_ACCESSIBLE);
-
   gtk_widget_class_set_css_name (widget_class, I_("label"));
 
   quark_mnemonics_visible_connected = g_quark_from_static_string ("gtk-label-mnemonics-visible-connected");
@@ -1690,12 +1686,9 @@ gtk_label_set_text_internal (GtkLabel *self,
       return;
     }
 
-  _gtk_label_accessible_text_deleted (self);
   g_free (self->text);
   self->text = str;
 
-  _gtk_label_accessible_text_inserted (self);
-
   gtk_label_select_region_index (self, 0, 0);
 }
 
@@ -2291,7 +2284,6 @@ gtk_label_set_markup_internal (GtkLabel    *self,
       gtk_label_ensure_select_info (self);
       self->select_info->links = g_steal_pointer (&links);
       self->select_info->n_links = n_links;
-      _gtk_label_accessible_update_links (self);
       gtk_label_ensure_has_tooltip (self);
       gtk_widget_add_css_class (GTK_WIDGET (self), "link");
     }
@@ -3744,7 +3736,6 @@ gtk_label_grab_focus (GtkWidget *widget)
                 {
                   self->select_info->selection_anchor = link->start;
                   self->select_info->selection_end = link->start;
-                  _gtk_label_accessible_focus_link_changed (self);
                   break;
                 }
             }
@@ -3778,7 +3769,6 @@ gtk_label_focus (GtkWidget        *widget,
                     {
                       info->selection_anchor = focus_link->start;
                       info->selection_end = focus_link->start;
-                      _gtk_label_accessible_focus_link_changed (self);
                     }
                 }
             }
@@ -3813,7 +3803,6 @@ gtk_label_focus (GtkWidget        *widget,
                   if (!range_is_in_ellipsis (self, link->start, link->end))
                     {
                       gtk_label_select_region_index (self, link->start, link->start);
-                      _gtk_label_accessible_focus_link_changed (self);
                       return TRUE;
                     }
                 }
@@ -3831,7 +3820,6 @@ gtk_label_focus (GtkWidget        *widget,
                   if (!range_is_in_ellipsis (self, link->start, link->end))
                     {
                       gtk_label_select_region_index (self, link->start, link->start);
-                      _gtk_label_accessible_focus_link_changed (self);
                       return TRUE;
                     }
                 }
@@ -3897,7 +3885,6 @@ gtk_label_focus (GtkWidget        *widget,
           focus_link = &info->links[new_index];
           info->selection_anchor = focus_link->start;
           info->selection_end = focus_link->start;
-          _gtk_label_accessible_focus_link_changed (self);
           gtk_widget_queue_draw (widget);
 
           return TRUE;
@@ -4509,8 +4496,6 @@ gtk_label_set_selectable (GtkLabel *self,
     {
       g_object_freeze_notify (G_OBJECT (self));
       g_object_notify_by_pspec (G_OBJECT (self), label_props[PROP_SELECTABLE]);
-      _gtk_label_accessible_selection_bound_changed (self);
-      _gtk_label_accessible_cursor_position_changed (self);
       g_object_thaw_notify (G_OBJECT (self));
       gtk_widget_queue_draw (GTK_WIDGET (self));
     }
@@ -4538,8 +4523,6 @@ gtk_label_select_region_index (GtkLabel *self,
                                gint      end_index)
 {
   g_return_if_fail (GTK_IS_LABEL (self));
-  gboolean anchor_changed;
-  gboolean bound_changed;
 
   if (self->select_info && self->select_info->selectable)
     {
@@ -4605,17 +4588,9 @@ gtk_label_select_region_index (GtkLabel *self,
 
       g_object_freeze_notify (G_OBJECT (self));
 
-      anchor_changed = self->select_info->selection_anchor != anchor_index;
-      bound_changed = self->select_info->selection_end != end_index;
-
       self->select_info->selection_anchor = anchor_index;
       self->select_info->selection_end = end_index;
 
-      if (anchor_changed)
-        _gtk_label_accessible_selection_bound_changed (self);
-      if (bound_changed)
-        _gtk_label_accessible_cursor_position_changed (self);
-
       clipboard = gtk_widget_get_primary_clipboard (GTK_WIDGET (self));
 
       if (anchor_index != end_index)
@@ -5505,8 +5480,6 @@ gtk_label_clear_links (GtkLabel *self)
   self->select_info->n_links = 0;
   self->select_info->active_link = NULL;
   gtk_widget_remove_css_class (GTK_WIDGET (self), "link");
-
-  _gtk_label_accessible_update_links (self);
 }
 
 static gboolean
diff --git a/gtk/gtklevelbar.c b/gtk/gtklevelbar.c
index 321c152128..da95bc9f11 100644
--- a/gtk/gtklevelbar.c
+++ b/gtk/gtklevelbar.c
@@ -133,8 +133,6 @@
 #include "gtktypebuiltins.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtklevelbaraccessible.h"
-
 #include <math.h>
 #include <stdlib.h>
 
@@ -1007,7 +1005,6 @@ gtk_level_bar_class_init (GtkLevelBarClass *klass)
 
   g_object_class_install_properties (oclass, LAST_PROPERTY, properties);
 
-  gtk_widget_class_set_accessible_type (wclass, GTK_TYPE_LEVEL_BAR_ACCESSIBLE);
   gtk_widget_class_set_layout_manager_type (wclass, GTK_TYPE_BIN_LAYOUT);
   gtk_widget_class_set_css_name (wclass, I_("levelbar"));
 }
diff --git a/gtk/gtklinkbutton.c b/gtk/gtklinkbutton.c
index 21084de8a7..c6c24b7ea5 100644
--- a/gtk/gtklinkbutton.c
+++ b/gtk/gtklinkbutton.c
@@ -68,8 +68,6 @@
 #include "gtktooltip.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtklinkbuttonaccessible.h"
-
 #include <string.h>
 
 typedef struct _GtkLinkButtonClass GtkLinkButtonClass;
@@ -218,7 +216,6 @@ gtk_link_button_class_init (GtkLinkButtonClass *klass)
                   _gtk_marshal_BOOLEAN__VOID,
                   G_TYPE_BOOLEAN, 0);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LINK_BUTTON_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("button"));
 
   /**
diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c
index b770e85e4f..f3b719d93d 100644
--- a/gtk/gtklistbox.c
+++ b/gtk/gtklistbox.c
@@ -33,9 +33,6 @@
 #include "gtktypebuiltins.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtklistboxaccessibleprivate.h"
-#include "a11y/gtklistboxrowaccessible.h"
-
 #include <float.h>
 #include <math.h>
 #include <string.h>
@@ -678,8 +675,6 @@ gtk_list_box_class_init (GtkListBoxClass *klass)
                                        NULL);
 
   gtk_widget_class_set_css_name (widget_class, I_("list"));
-
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LIST_BOX_ACCESSIBLE);
 }
 
 static void
@@ -902,7 +897,6 @@ gtk_list_box_unselect_all (GtkListBox *box)
 static void
 gtk_list_box_selected_rows_changed (GtkListBox *box)
 {
-  _gtk_list_box_accessible_selection_changed (box);
 }
 
 /**
@@ -1524,7 +1518,6 @@ gtk_list_box_update_cursor (GtkListBox    *box,
         gtk_widget_grab_focus (GTK_WIDGET (row));
     }
   gtk_widget_queue_draw (GTK_WIDGET (row));
-  _gtk_list_box_accessible_update_cursor (box, row);
 }
 
 static GtkListBox *
@@ -3463,7 +3456,6 @@ gtk_list_box_row_class_init (GtkListBoxRowClass *klass)
   g_object_class_override_property (object_class, ROW_PROP_ACTION_TARGET, "action-target");
 
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LIST_BOX_ROW_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("row"));
 }
 
diff --git a/gtk/gtklockbutton.c b/gtk/gtklockbutton.c
index be9ea8d7d4..2c610aa766 100644
--- a/gtk/gtklockbutton.c
+++ b/gtk/gtklockbutton.c
@@ -28,8 +28,6 @@
 #include "gtkstack.h"
 #include "gtkstylecontext.h"
 
-#include "a11y/gtklockbuttonaccessibleprivate.h"
-
 /**
  * SECTION:gtklockbutton
  * @title: GtkLockButton
@@ -198,12 +196,10 @@ gtk_lock_button_set_property (GObject      *object,
 
     case PROP_TEXT_LOCK:
       gtk_label_set_text (GTK_LABEL (button->label_lock), g_value_get_string (value));
-      _gtk_lock_button_accessible_name_changed (button);
       break;
 
     case PROP_TEXT_UNLOCK:
       gtk_label_set_text (GTK_LABEL (button->label_unlock), g_value_get_string (value));
-      _gtk_lock_button_accessible_name_changed (button);
       break;
 
     case PROP_TOOLTIP_LOCK:
@@ -326,7 +322,6 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass)
   gtk_widget_class_bind_template_child (widget_class, GtkLockButton, label_unlock);
   gtk_widget_class_bind_template_child (widget_class, GtkLockButton, stack);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LOCK_BUTTON_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("button"));
 }
 
@@ -390,7 +385,6 @@ update_state (GtkLockButton *button)
   gtk_image_set_from_gicon (GTK_IMAGE (button->image), icon);
   gtk_stack_set_visible_child (GTK_STACK (button->stack),
                                allowed ? button->label_lock : button->label_unlock);
-  _gtk_lock_button_accessible_name_changed (button);
   gtk_widget_set_tooltip_markup (GTK_WIDGET (button), tooltip);
   gtk_widget_set_sensitive (GTK_WIDGET (button), sensitive);
   gtk_widget_set_visible (GTK_WIDGET (button), visible);
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index b4f74264a6..5f03101e4b 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -134,7 +134,6 @@
 #include "gtkroot.h"
 #include "gtknative.h"
 
-#include "a11y/gtkaccessibility.h"
 #include "inspector/window.h"
 
 #define GDK_ARRAY_ELEMENT_TYPE GtkWidget *
@@ -644,7 +643,6 @@ static void
 default_display_notify_cb (GdkDisplayManager *dm)
 {
   debug_flags[0].display = gdk_display_get_default ();
-  _gtk_accessibility_init ();
 }
 
 static void
diff --git a/gtk/gtkmenubutton.c b/gtk/gtkmenubutton.c
index b4e842f0b5..bb6062e694 100644
--- a/gtk/gtkmenubutton.c
+++ b/gtk/gtkmenubutton.c
@@ -110,7 +110,6 @@
 
 #include "config.h"
 
-#include "gtkaccessible.h"
 #include "gtkactionable.h"
 #include "gtkimage.h"
 #include "gtkintl.h"
@@ -128,8 +127,6 @@
 #include "gtkbuttonprivate.h"
 #include "gtknative.h"
 
-#include "a11y/gtkmenubuttonaccessible.h"
-
 typedef struct _GtkMenuButtonClass   GtkMenuButtonClass;
 typedef struct _GtkMenuButtonPrivate GtkMenuButtonPrivate;
 
@@ -440,7 +437,6 @@ gtk_menu_button_class_init (GtkMenuButtonClass *klass)
 
   g_object_class_install_properties (gobject_class, LAST_PROP, menu_button_props);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_MENU_BUTTON_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("menubutton"));
 }
 
diff --git a/gtk/gtkmessagedialog.c b/gtk/gtkmessagedialog.c
index b3c9278146..44a4919e72 100644
--- a/gtk/gtkmessagedialog.c
+++ b/gtk/gtkmessagedialog.c
@@ -27,7 +27,6 @@
 
 #include "gtkmessagedialog.h"
 
-#include "gtkaccessible.h"
 #include "gtkbox.h"
 #include "gtkbuildable.h"
 #include "gtkdialogprivate.h"
@@ -150,8 +149,6 @@ gtk_message_dialog_class_init (GtkMessageDialogClass *class)
   widget_class = GTK_WIDGET_CLASS (class);
   gobject_class = G_OBJECT_CLASS (class);
   
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_ALERT);
-
   gobject_class->constructed = gtk_message_dialog_constructed;
   gobject_class->set_property = gtk_message_dialog_set_property;
   gobject_class->get_property = gtk_message_dialog_get_property;
@@ -287,48 +284,12 @@ setup_type (GtkMessageDialog *dialog,
            GtkMessageType    type)
 {
   GtkMessageDialogPrivate *priv = gtk_message_dialog_get_instance_private (dialog);
-  const gchar *name = NULL;
-  AtkObject *atk_obj;
 
   if (priv->message_type == type)
     return;
 
   priv->message_type = type;
 
-  switch (type)
-    {
-    case GTK_MESSAGE_INFO:
-      name = _("Information");
-      break;
-
-    case GTK_MESSAGE_QUESTION:
-      name = _("Question");
-      break;
-
-    case GTK_MESSAGE_WARNING:
-      name = _("Warning");
-      break;
-
-    case GTK_MESSAGE_ERROR:
-      name = _("Error");
-      break;
-
-    case GTK_MESSAGE_OTHER:
-      break;
-
-    default:
-      g_warning ("Unknown GtkMessageType %u", type);
-      break;
-    }
-
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (dialog));
-  if (GTK_IS_ACCESSIBLE (atk_obj))
-    {
-      atk_object_set_role (atk_obj, ATK_ROLE_ALERT);
-      if (name)
-        atk_object_set_name (atk_obj, name);
-    }
-
   g_object_notify (G_OBJECT (dialog), "message-type");
 }
 
diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c
index d6147d6327..7fd764da33 100644
--- a/gtk/gtkmodelbutton.c
+++ b/gtk/gtkmodelbutton.c
@@ -421,15 +421,6 @@ gtk_model_button_update_state (GtkModelButton *self)
   indicator_state = get_start_indicator_state (self);
   if (self->iconic)
     gtk_widget_set_state_flags (GTK_WIDGET (self), indicator_state, TRUE);
-
-  if (self->role == GTK_BUTTON_ROLE_CHECK ||
-      self->role == GTK_BUTTON_ROLE_RADIO)
-    {
-      AtkObject *object = _gtk_widget_peek_accessible (GTK_WIDGET (self));
-      if (object)
-        atk_object_notify_state_change (object, ATK_STATE_CHECKED,
-                                        (indicator_state & GTK_STATE_FLAG_CHECKED));
-    }
 }
 
 static void
@@ -456,21 +447,16 @@ gtk_model_button_direction_changed (GtkWidget        *widget,
 static void
 update_node_name (GtkModelButton *self)
 {
-  AtkObject *accessible;
-  AtkRole a11y_role;
-  const gchar *start_name;
-  const gchar *end_name;
+  const char *start_name;
+  const char *end_name;
 
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (self));
   switch (self->role)
     {
     case GTK_BUTTON_ROLE_TITLE:
-      a11y_role = ATK_ROLE_PUSH_BUTTON;
       start_name = "arrow";
       end_name = NULL;
       break;
     case GTK_BUTTON_ROLE_NORMAL:
-      a11y_role = ATK_ROLE_PUSH_BUTTON;
       start_name = NULL;
       if (self->menu_name || self->popover)
         end_name = "arrow";
@@ -479,13 +465,11 @@ update_node_name (GtkModelButton *self)
       break;
 
     case GTK_BUTTON_ROLE_CHECK:
-      a11y_role = ATK_ROLE_CHECK_BOX;
       start_name = "check";
       end_name = NULL;
       break;
 
     case GTK_BUTTON_ROLE_RADIO:
-      a11y_role = ATK_ROLE_RADIO_BUTTON;
       start_name = "radio";
       end_name = NULL;
       break;
@@ -500,8 +484,6 @@ update_node_name (GtkModelButton *self)
       end_name = NULL;
     }
 
-  atk_object_set_role (accessible, a11y_role);
-
   if (start_name && !self->start_indicator)
     {
       self->start_indicator = gtk_builtin_icon_new (start_name);
@@ -1067,18 +1049,6 @@ gtk_model_button_focus (GtkWidget        *widget,
   return FALSE;
 }
 
-static AtkObject *
-gtk_model_button_get_accessible (GtkWidget *widget)
-{
-  AtkObject *object;
-
-  object = GTK_WIDGET_CLASS (gtk_model_button_parent_class)->get_accessible (widget);
-
-  gtk_model_button_update_state (GTK_MODEL_BUTTON (widget));
-
-  return object;
-}
-
 static void
 gtk_model_button_class_init (GtkModelButtonClass *class)
 {
@@ -1093,7 +1063,6 @@ gtk_model_button_class_init (GtkModelButtonClass *class)
   widget_class->state_flags_changed = gtk_model_button_state_flags_changed;
   widget_class->direction_changed = gtk_model_button_direction_changed;
   widget_class->focus = gtk_model_button_focus;
-  widget_class->get_accessible = gtk_model_button_get_accessible;
 
   class->clicked = gtk_model_button_clicked;
 
@@ -1231,7 +1200,6 @@ gtk_model_button_class_init (GtkModelButtonClass *class)
 
   widget_class->activate_signal = signals[SIGNAL_CLICKED];
 
-  gtk_widget_class_set_accessible_role (GTK_WIDGET_CLASS (class), ATK_ROLE_PUSH_BUTTON);
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
   gtk_widget_class_set_css_name (GTK_WIDGET_CLASS (class), I_("modelbutton"));
 }
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index 2b7e54f332..1bd9c92e8c 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -55,8 +55,6 @@
 #include "gtkwidgetpaintable.h"
 #include "gtknative.h"
 
-#include "a11y/gtknotebookaccessibleprivate.h"
-
 #include <stdio.h>
 #include <string.h>
 #include <math.h>
@@ -1364,7 +1362,6 @@ gtk_notebook_class_init (GtkNotebookClass *class)
   add_tab_bindings (widget_class, GDK_CONTROL_MASK, GTK_DIR_TAB_FORWARD);
   add_tab_bindings (widget_class, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_NOTEBOOK_ACCESSIBLE);
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, I_("notebook"));
 }
@@ -5292,7 +5289,6 @@ gtk_notebook_real_switch_page (GtkNotebook     *notebook,
 {
   GList *list = gtk_notebook_find_child (notebook, GTK_WIDGET (child));
   GtkNotebookPage *page = GTK_NOTEBOOK_PAGE_FROM_LIST (list);
-  AtkObject *accessible;
   gboolean child_has_focus;
 
   if (notebook->cur_page == page || !gtk_widget_get_visible (GTK_WIDGET (child)))
@@ -5338,11 +5334,6 @@ gtk_notebook_real_switch_page (GtkNotebook     *notebook,
 
   update_arrow_state (notebook);
 
-  accessible = _gtk_widget_peek_accessible (GTK_WIDGET (notebook));
-  if (accessible != NULL)
-    gtk_notebook_accessible_update_page (GTK_NOTEBOOK_ACCESSIBLE (accessible),
-                                         gtk_notebook_get_current_page (notebook));
-
   gtk_widget_queue_resize (GTK_WIDGET (notebook));
   gtk_widget_queue_resize (notebook->tabs_widget);
   g_object_notify_by_pspec (G_OBJECT (notebook), properties[PROP_PAGE]);
diff --git a/gtk/gtkpaned.c b/gtk/gtkpaned.c
index b76a09d564..da67e9b5a0 100644
--- a/gtk/gtkpaned.c
+++ b/gtk/gtkpaned.c
@@ -44,8 +44,6 @@
 #include "gtkcssboxesprivate.h"
 #include "gtkbuildable.h"
 
-#include "a11y/gtkpanedaccessible.h"
-
 #include <math.h>
 
 /**
@@ -775,7 +773,6 @@ gtk_paned_class_init (GtkPanedClass *class)
   add_move_binding (widget_class, GDK_KEY_End, 0, GTK_SCROLL_END);
   add_move_binding (widget_class, GDK_KEY_KP_End, 0, GTK_SCROLL_END);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_PANED_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("paned"));
 }
 
diff --git a/gtk/gtkpango.c b/gtk/gtkpango.c
index 28341813a7..58c43c8cf2 100644
--- a/gtk/gtkpango.c
+++ b/gtk/gtkpango.c
@@ -28,1023 +28,6 @@
 #include "gtkintl.h"
 #include "gtkbuilderprivate.h"
 
-static AtkAttributeSet *
-add_attribute (AtkAttributeSet  *attributes,
-               AtkTextAttribute  attr,
-               const gchar      *value)
-{
-  AtkAttribute *at;
-
-  at = g_new (AtkAttribute, 1);
-  at->name = g_strdup (atk_text_attribute_get_name (attr));
-  at->value = g_strdup (value);
-
-  return g_slist_prepend (attributes, at);
-}
-
-/*
- * _gtk_pango_get_default_attributes:
- * @attributes: a #AtkAttributeSet to add the attributes to
- * @layout: the #PangoLayout from which to get attributes
- *
- * Adds the default text attributes from @layout to @attributes,
- * after translating them from Pango attributes to ATK attributes.
- *
- * This is a convenience function that can be used to implement
- * support for the #AtkText interface in widgets using Pango
- * layouts.
- *
- * Returns: the modified @attributes
- */
-AtkAttributeSet*
-_gtk_pango_get_default_attributes (AtkAttributeSet *attributes,
-                                   PangoLayout     *layout)
-{
-  PangoContext *context;
-  gint i;
-  PangoWrapMode mode;
-
-  context = pango_layout_get_context (layout);
-  if (context)
-    {
-      PangoLanguage *language;
-      PangoFontDescription *font;
-
-      language = pango_context_get_language (context);
-      if (language)
-        attributes = add_attribute (attributes, ATK_TEXT_ATTR_LANGUAGE,
-                         pango_language_to_string (language));
-
-      font = pango_context_get_font_description (context);
-      if (font)
-        {
-          gchar buf[60];
-          attributes = add_attribute (attributes, ATK_TEXT_ATTR_STYLE,
-                           atk_text_attribute_get_value (ATK_TEXT_ATTR_STYLE,
-                                 pango_font_description_get_style (font)));
-          attributes = add_attribute (attributes, ATK_TEXT_ATTR_VARIANT,
-                           atk_text_attribute_get_value (ATK_TEXT_ATTR_VARIANT,
-                                 pango_font_description_get_variant (font)));
-          attributes = add_attribute (attributes, ATK_TEXT_ATTR_STRETCH,
-                           atk_text_attribute_get_value (ATK_TEXT_ATTR_STRETCH,
-                                 pango_font_description_get_stretch (font)));
-          attributes = add_attribute (attributes, ATK_TEXT_ATTR_FAMILY_NAME,
-                           pango_font_description_get_family (font));
-          g_snprintf (buf, 60, "%d", pango_font_description_get_weight (font));
-          attributes = add_attribute (attributes, ATK_TEXT_ATTR_WEIGHT, buf);
-          g_snprintf (buf, 60, "%i", pango_font_description_get_size (font) / PANGO_SCALE);
-          attributes = add_attribute (attributes, ATK_TEXT_ATTR_SIZE, buf);
-        }
-    }
-  if (pango_layout_get_justify (layout))
-    {
-      i = 3;
-    }
-  else
-    {
-      PangoAlignment align;
-
-      align = pango_layout_get_alignment (layout);
-      if (align == PANGO_ALIGN_LEFT)
-        i = 0;
-      else if (align == PANGO_ALIGN_CENTER)
-        i = 2;
-      else   /* PANGO_ALIGN_RIGHT */
-        i = 1;
-    }
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_JUSTIFICATION,
-                   atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, i));
-  mode = pango_layout_get_wrap (layout);
-  if (mode == PANGO_WRAP_WORD)
-    i = 2;
-  else   /* PANGO_WRAP_CHAR */
-    i = 1;
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_WRAP_MODE,
-                   atk_text_attribute_get_value (ATK_TEXT_ATTR_WRAP_MODE, i));
-
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_STRIKETHROUGH,
-                   atk_text_attribute_get_value (ATK_TEXT_ATTR_STRIKETHROUGH, 0));
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_UNDERLINE,
-                   atk_text_attribute_get_value (ATK_TEXT_ATTR_UNDERLINE, 0));
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_RISE, "0");
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_SCALE, "1");
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_BG_FULL_HEIGHT, "0");
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP, "0");
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_PIXELS_BELOW_LINES, "0");
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_PIXELS_ABOVE_LINES, "0");
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_EDITABLE,
-                   atk_text_attribute_get_value (ATK_TEXT_ATTR_EDITABLE, 0));
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_INVISIBLE,
-                   atk_text_attribute_get_value (ATK_TEXT_ATTR_INVISIBLE, 0));
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_INDENT, "0");
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_RIGHT_MARGIN, "0");
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_LEFT_MARGIN, "0");
-
-  return attributes;
-}
-
-/*
- * _gtk_pango_get_run_attributes:
- * @attributes: a #AtkAttributeSet to add attributes to
- * @layout: the #PangoLayout to get the attributes from
- * @offset: the offset at which the attributes are wanted
- * @start_offset: return location for the starting offset
- *    of the current run
- * @end_offset: return location for the ending offset of the
- *    current run
- *
- * Finds the “run” around index (i.e. the maximal range of characters
- * where the set of applicable attributes remains constant) and
- * returns the starting and ending offsets for it.
- *
- * The attributes for the run are added to @attributes, after
- * translating them from Pango attributes to ATK attributes.
- *
- * This is a convenience function that can be used to implement
- * support for the #AtkText interface in widgets using Pango
- * layouts.
- *
- * Returns: the modified #AtkAttributeSet
- */
-AtkAttributeSet *
-_gtk_pango_get_run_attributes (AtkAttributeSet *attributes,
-                               PangoLayout     *layout,
-                               gint             offset,
-                               gint            *start_offset,
-                               gint            *end_offset)
-{
-  PangoAttrIterator *iter;
-  PangoAttrList *attr;
-  PangoAttrString *pango_string;
-  PangoAttrInt *pango_int;
-  PangoAttrColor *pango_color;
-  PangoAttrLanguage *pango_lang;
-  PangoAttrFloat *pango_float;
-  gint index, start_index, end_index;
-  gboolean is_next;
-  glong len;
-  const gchar *text;
-  gchar *value;
-
-  text = pango_layout_get_text (layout);
-  len = g_utf8_strlen (text, -1);
-
-  /* Grab the attributes of the PangoLayout, if any */
-  attr = pango_layout_get_attributes (layout);
-
-  if (attr == NULL)
-    {
-      *start_offset = 0;
-      *end_offset = len;
-      return attributes;
-    }
-
-  iter = pango_attr_list_get_iterator (attr);
-  /* Get invariant range offsets */
-  /* If offset out of range, set offset in range */
-  if (offset > len)
-    offset = len;
-  else if (offset < 0)
-    offset = 0;
-
-  index = g_utf8_offset_to_pointer (text, offset) - text;
-  pango_attr_iterator_range (iter, &start_index, &end_index);
-  is_next = TRUE;
-  while (is_next)
-    {
-      if (index >= start_index && index < end_index)
-        {
-          *start_offset = g_utf8_pointer_to_offset (text, text + start_index);
-          if (end_index == G_MAXINT) /* Last iterator */
-            end_index = len;
-
-          *end_offset = g_utf8_pointer_to_offset (text, text + end_index);
-          break;
-        }
-      is_next = pango_attr_iterator_next (iter);
-      pango_attr_iterator_range (iter, &start_index, &end_index);
-    }
-
-  /* Get attributes */
-  pango_string = (PangoAttrString*) pango_attr_iterator_get (iter, PANGO_ATTR_FAMILY);
-  if (pango_string != NULL)
-    {
-      value = g_strdup_printf ("%s", pango_string->value);
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_FAMILY_NAME, value);
-      g_free (value);
-    }
-  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_STYLE);
-  if (pango_int != NULL)
-    {
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_STYLE,
-                       atk_text_attribute_get_value (ATK_TEXT_ATTR_STYLE, pango_int->value));
-    }
-  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_WEIGHT);
-  if (pango_int != NULL)
-    {
-      value = g_strdup_printf ("%i", pango_int->value);
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_WEIGHT, value);
-      g_free (value);
-    }
-  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_VARIANT);
-  if (pango_int != NULL)
-    {
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_VARIANT,
-                       atk_text_attribute_get_value (ATK_TEXT_ATTR_VARIANT, pango_int->value));
-    }
-  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_STRETCH);
-  if (pango_int != NULL)
-    {
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_STRETCH,
-                       atk_text_attribute_get_value (ATK_TEXT_ATTR_STRETCH, pango_int->value));
-    }
-  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_SIZE);
-  if (pango_int != NULL)
-    {
-      value = g_strdup_printf ("%i", pango_int->value / PANGO_SCALE);
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_SIZE, value);
-      g_free (value);
-    }
-  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_UNDERLINE);
-  if (pango_int != NULL)
-    {
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_UNDERLINE,
-                       atk_text_attribute_get_value (ATK_TEXT_ATTR_UNDERLINE, pango_int->value));
-    }
-  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_STRIKETHROUGH);
-  if (pango_int != NULL)
-    {
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_STRIKETHROUGH,
-                       atk_text_attribute_get_value (ATK_TEXT_ATTR_STRIKETHROUGH, pango_int->value));
-    }
-  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_RISE);
-  if (pango_int != NULL)
-    {
-      value = g_strdup_printf ("%i", pango_int->value);
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_RISE, value);
-      g_free (value);
-    }
-  pango_lang = (PangoAttrLanguage*) pango_attr_iterator_get (iter, PANGO_ATTR_LANGUAGE);
-  if (pango_lang != NULL)
-    {
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_LANGUAGE,
-                                  pango_language_to_string (pango_lang->value));
-    }
-  pango_float = (PangoAttrFloat*) pango_attr_iterator_get (iter, PANGO_ATTR_SCALE);
-  if (pango_float != NULL)
-    {
-      value = g_strdup_printf ("%g", pango_float->value);
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_SCALE, value);
-      g_free (value);
-    }
-  pango_color = (PangoAttrColor*) pango_attr_iterator_get (iter, PANGO_ATTR_FOREGROUND);
-  if (pango_color != NULL)
-    {
-      value = g_strdup_printf ("%u,%u,%u",
-                               pango_color->color.red,
-                               pango_color->color.green,
-                               pango_color->color.blue);
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_FG_COLOR, value);
-      g_free (value);
-    }
-  pango_color = (PangoAttrColor*) pango_attr_iterator_get (iter, PANGO_ATTR_BACKGROUND);
-  if (pango_color != NULL)
-    {
-      value = g_strdup_printf ("%u,%u,%u",
-                               pango_color->color.red,
-                               pango_color->color.green,
-                               pango_color->color.blue);
-      attributes = add_attribute (attributes, ATK_TEXT_ATTR_BG_COLOR, value);
-      g_free (value);
-    }
-  pango_attr_iterator_destroy (iter);
-
-  return attributes;
-}
-
-/*
- * _gtk_pango_move_chars:
- * @layout: a #PangoLayout
- * @offset: a character offset in @layout
- * @count: the number of characters to move from @offset
- *
- * Returns the position that is @count characters from the
- * given @offset. @count may be positive or negative.
- *
- * For the purpose of this function, characters are defined
- * by what Pango considers cursor positions.
- *
- * Returns: the new position
- */
-static gint
-_gtk_pango_move_chars (PangoLayout *layout,
-                       gint         offset,
-                       gint         count)
-{
-  const PangoLogAttr *attrs;
-  gint n_attrs;
-
-  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
-
-  while (count > 0 && offset < n_attrs - 1)
-    {
-      do
-        offset++;
-      while (offset < n_attrs - 1 && !attrs[offset].is_cursor_position);
-
-      count--;
-    }
-  while (count < 0 && offset > 0)
-    {
-      do
-        offset--;
-      while (offset > 0 && !attrs[offset].is_cursor_position);
-
-      count++;
-    }
-
-  return offset;
-}
-
-/*
- * _gtk_pango_move_words:
- * @layout: a #PangoLayout
- * @offset: a character offset in @layout
- * @count: the number of words to move from @offset
- *
- * Returns the position that is @count words from the
- * given @offset. @count may be positive or negative.
- *
- * If @count is positive, the returned position will
- * be a word end, otherwise it will be a word start.
- * See the Pango documentation for details on how
- * word starts and ends are defined.
- *
- * Returns: the new position
- */
-static gint
-_gtk_pango_move_words (PangoLayout  *layout,
-                       gint          offset,
-                       gint          count)
-{
-  const PangoLogAttr *attrs;
-  gint n_attrs;
-
-  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
-
-  while (count > 0 && offset < n_attrs - 1)
-    {
-      do
-        offset++;
-      while (offset < n_attrs - 1 && !attrs[offset].is_word_end);
-
-      count--;
-    }
-  while (count < 0 && offset > 0)
-    {
-      do
-        offset--;
-      while (offset > 0 && !attrs[offset].is_word_start);
-
-      count++;
-    }
-
-  return offset;
-}
-
-/*
- * _gtk_pango_move_sentences:
- * @layout: a #PangoLayout
- * @offset: a character offset in @layout
- * @count: the number of sentences to move from @offset
- *
- * Returns the position that is @count sentences from the
- * given @offset. @count may be positive or negative.
- *
- * If @count is positive, the returned position will
- * be a sentence end, otherwise it will be a sentence start.
- * See the Pango documentation for details on how
- * sentence starts and ends are defined.
- *
- * Returns: the new position
- */
-static gint
-_gtk_pango_move_sentences (PangoLayout  *layout,
-                           gint          offset,
-                           gint          count)
-{
-  const PangoLogAttr *attrs;
-  gint n_attrs;
-
-  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
-
-  while (count > 0 && offset < n_attrs - 1)
-    {
-      do
-        offset++;
-      while (offset < n_attrs - 1 && !attrs[offset].is_sentence_end);
-
-      count--;
-    }
-  while (count < 0 && offset > 0)
-    {
-      do
-        offset--;
-      while (offset > 0 && !attrs[offset].is_sentence_start);
-
-      count++;
-    }
-
-  return offset;
-}
-
-/*
- * _gtk_pango_is_inside_word:
- * @layout: a #PangoLayout
- * @offset: a character offset in @layout
- *
- * Returns whether the given position is inside
- * a word.
- *
- * Returns: %TRUE if @offset is inside a word
- */
-static gboolean
-_gtk_pango_is_inside_word (PangoLayout  *layout,
-                           gint          offset)
-{
-  const PangoLogAttr *attrs;
-  gint n_attrs;
-
-  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
-
-  while (offset >= 0 &&
-         !(attrs[offset].is_word_start || attrs[offset].is_word_end))
-    offset--;
-
-  if (offset >= 0)
-    return attrs[offset].is_word_start;
-
-  return FALSE;
-}
-
-/*
- * _gtk_pango_is_inside_sentence:
- * @layout: a #PangoLayout
- * @offset: a character offset in @layout
- *
- * Returns whether the given position is inside
- * a sentence.
- *
- * Returns: %TRUE if @offset is inside a sentence
- */
-static gboolean
-_gtk_pango_is_inside_sentence (PangoLayout  *layout,
-                               gint          offset)
-{
-  const PangoLogAttr *attrs;
-  gint n_attrs;
-
-  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
-
-  while (offset >= 0 &&
-         !(attrs[offset].is_sentence_start || attrs[offset].is_sentence_end))
-    offset--;
-
-  if (offset >= 0)
-    return attrs[offset].is_sentence_start;
-
-  return FALSE;
-}
-
-static void
-pango_layout_get_line_before (PangoLayout     *layout,
-                              AtkTextBoundary  boundary_type,
-                              gint             offset,
-                              gint            *start_offset,
-                              gint            *end_offset)
-{
-  PangoLayoutIter *iter;
-  PangoLayoutLine *line, *prev_line = NULL, *prev_prev_line = NULL;
-  gint index, start_index, end_index;
-  const gchar *text;
-  gboolean found = FALSE;
-
-  text = pango_layout_get_text (layout);
-  index = g_utf8_offset_to_pointer (text, offset) - text;
-  iter = pango_layout_get_iter (layout);
-  do
-    {
-      line = pango_layout_iter_get_line (iter);
-      start_index = line->start_index;
-      end_index = start_index + line->length;
-
-      if (index >= start_index && index <= end_index)
-        {
-          /* Found line for offset */
-          if (prev_line)
-            {
-              switch (boundary_type)
-                {
-                case ATK_TEXT_BOUNDARY_LINE_START:
-                  end_index = start_index;
-                  start_index = prev_line->start_index;
-                  break;
-                case ATK_TEXT_BOUNDARY_LINE_END:
-                  if (prev_prev_line)
-                    start_index = prev_prev_line->start_index + prev_prev_line->length;
-                  else
-                    start_index = 0;
-                  end_index = prev_line->start_index + prev_line->length;
-                  break;
-                case ATK_TEXT_BOUNDARY_CHAR:
-                case ATK_TEXT_BOUNDARY_WORD_START:
-                case ATK_TEXT_BOUNDARY_WORD_END:
-                case ATK_TEXT_BOUNDARY_SENTENCE_START:
-                case ATK_TEXT_BOUNDARY_SENTENCE_END:
-                default:
-                  g_assert_not_reached();
-                  break;
-                }
-            }
-          else
-            start_index = end_index = 0;
-
-          found = TRUE;
-          break;
-        }
-
-      prev_prev_line = prev_line;
-      prev_line = line;
-    }
-  while (pango_layout_iter_next_line (iter));
-
-  if (!found)
-    {
-      start_index = prev_line->start_index + prev_line->length;
-      end_index = start_index;
-    }
-  pango_layout_iter_free (iter);
-
-  *start_offset = g_utf8_pointer_to_offset (text, text + start_index);
-  *end_offset = g_utf8_pointer_to_offset (text, text + end_index);
-}
-
-static void
-pango_layout_get_line_at (PangoLayout     *layout,
-                          AtkTextBoundary  boundary_type,
-                          gint             offset,
-                          gint            *start_offset,
-                          gint            *end_offset)
-{
-  PangoLayoutIter *iter;
-  PangoLayoutLine *line, *prev_line = NULL;
-  gint index, start_index, end_index;
-  const gchar *text;
-  gboolean found = FALSE;
-
-  text = pango_layout_get_text (layout);
-  index = g_utf8_offset_to_pointer (text, offset) - text;
-  iter = pango_layout_get_iter (layout);
-  do
-    {
-      line = pango_layout_iter_get_line (iter);
-      start_index = line->start_index;
-      end_index = start_index + line->length;
-
-      if (index >= start_index && index <= end_index)
-        {
-          /* Found line for offset */
-          switch (boundary_type)
-            {
-            case ATK_TEXT_BOUNDARY_LINE_START:
-              if (pango_layout_iter_next_line (iter))
-                end_index = pango_layout_iter_get_line (iter)->start_index;
-              break;
-            case ATK_TEXT_BOUNDARY_LINE_END:
-              if (prev_line)
-                start_index = prev_line->start_index + prev_line->length;
-              break;
-            case ATK_TEXT_BOUNDARY_CHAR:
-            case ATK_TEXT_BOUNDARY_WORD_START:
-            case ATK_TEXT_BOUNDARY_WORD_END:
-            case ATK_TEXT_BOUNDARY_SENTENCE_START:
-            case ATK_TEXT_BOUNDARY_SENTENCE_END:
-            default:
-              g_assert_not_reached();
-              break;
-            }
-
-          found = TRUE;
-          break;
-        }
-
-      prev_line = line;
-    }
-  while (pango_layout_iter_next_line (iter));
-
-  if (!found)
-    {
-      start_index = prev_line->start_index + prev_line->length;
-      end_index = start_index;
-    }
-  pango_layout_iter_free (iter);
-
-  *start_offset = g_utf8_pointer_to_offset (text, text + start_index);
-  *end_offset = g_utf8_pointer_to_offset (text, text + end_index);
-}
-
-static void
-pango_layout_get_line_after (PangoLayout     *layout,
-                             AtkTextBoundary  boundary_type,
-                             gint             offset,
-                             gint            *start_offset,
-                             gint            *end_offset)
-{
-  PangoLayoutIter *iter;
-  PangoLayoutLine *line, *prev_line = NULL;
-  gint index, start_index, end_index;
-  const gchar *text;
-  gboolean found = FALSE;
-
-  text = pango_layout_get_text (layout);
-  index = g_utf8_offset_to_pointer (text, offset) - text;
-  iter = pango_layout_get_iter (layout);
-  do
-    {
-      line = pango_layout_iter_get_line (iter);
-      start_index = line->start_index;
-      end_index = start_index + line->length;
-
-      if (index >= start_index && index <= end_index)
-        {
-          /* Found line for offset */
-          if (pango_layout_iter_next_line (iter))
-            {
-              line = pango_layout_iter_get_line (iter);
-              switch (boundary_type)
-                {
-                case ATK_TEXT_BOUNDARY_LINE_START:
-                  start_index = line->start_index;
-                  if (pango_layout_iter_next_line (iter))
-                    end_index = pango_layout_iter_get_line (iter)->start_index;
-                  else
-                    end_index = start_index + line->length;
-                  break;
-                case ATK_TEXT_BOUNDARY_LINE_END:
-                  start_index = end_index;
-                  end_index = line->start_index + line->length;
-                  break;
-                case ATK_TEXT_BOUNDARY_CHAR:
-                case ATK_TEXT_BOUNDARY_WORD_START:
-                case ATK_TEXT_BOUNDARY_WORD_END:
-                case ATK_TEXT_BOUNDARY_SENTENCE_START:
-                case ATK_TEXT_BOUNDARY_SENTENCE_END:
-                default:
-                  g_assert_not_reached();
-                  break;
-                }
-            }
-          else
-            start_index = end_index;
-
-          found = TRUE;
-          break;
-        }
-
-      prev_line = line;
-    }
-  while (pango_layout_iter_next_line (iter));
-
-  if (!found)
-    {
-      start_index = prev_line->start_index + prev_line->length;
-      end_index = start_index;
-    }
-  pango_layout_iter_free (iter);
-
-  *start_offset = g_utf8_pointer_to_offset (text, text + start_index);
-  *end_offset = g_utf8_pointer_to_offset (text, text + end_index);
-}
-
-/*
- * _gtk_pango_get_text_before:
- * @layout: a #PangoLayout
- * @boundary_type: a #AtkTextBoundary
- * @offset: a character offset in @layout
- * @start_offset: return location for the start of the returned text
- * @end_offset: return location for the end of the return text
- *
- * Gets a slice of the text from @layout before @offset.
- *
- * The @boundary_type determines the size of the returned slice of
- * text. For the exact semantics of this function, see
- * atk_text_get_text_before_offset().
- *
- * Returns: a newly allocated string containing a slice of text
- *     from layout. Free with g_free().
- */
-gchar *
-_gtk_pango_get_text_before (PangoLayout     *layout,
-                            AtkTextBoundary  boundary_type,
-                            gint             offset,
-                            gint            *start_offset,
-                            gint            *end_offset)
-{
-  const gchar *text;
-  gint start, end;
-  const PangoLogAttr *attrs;
-  gint n_attrs;
-
-  text = pango_layout_get_text (layout);
-
-  if (text[0] == 0)
-    {
-      *start_offset = 0;
-      *end_offset = 0;
-      return g_strdup ("");
-    }
-
-  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
-
-  start = offset;
-  end = start;
-
-  switch (boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-      start = _gtk_pango_move_chars (layout, start, -1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_START:
-      if (!attrs[start].is_word_start)
-        start = _gtk_pango_move_words (layout, start, -1);
-      end = start;
-      start = _gtk_pango_move_words (layout, start, -1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_END:
-      if (_gtk_pango_is_inside_word (layout, start) &&
-          !attrs[start].is_word_start)
-        start = _gtk_pango_move_words (layout, start, -1);
-      while (!attrs[start].is_word_end && start > 0)
-        start = _gtk_pango_move_chars (layout, start, -1);
-      end = start;
-      start = _gtk_pango_move_words (layout, start, -1);
-      while (!attrs[start].is_word_end && start > 0)
-        start = _gtk_pango_move_chars (layout, start, -1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-      if (!attrs[start].is_sentence_start)
-        start = _gtk_pango_move_sentences (layout, start, -1);
-      end = start;
-      start = _gtk_pango_move_sentences (layout, start, -1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-      if (_gtk_pango_is_inside_sentence (layout, start) &&
-          !attrs[start].is_sentence_start)
-        start = _gtk_pango_move_sentences (layout, start, -1);
-      while (!attrs[start].is_sentence_end && start > 0)
-        start = _gtk_pango_move_chars (layout, start, -1);
-      end = start;
-      start = _gtk_pango_move_sentences (layout, start, -1);
-      while (!attrs[start].is_sentence_end && start > 0)
-        start = _gtk_pango_move_chars (layout, start, -1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_LINE_START:
-    case ATK_TEXT_BOUNDARY_LINE_END:
-      pango_layout_get_line_before (layout, boundary_type, offset, &start, &end);
-      break;
-
-    default:
-      g_assert_not_reached ();
-      break;
-    }
-
-  *start_offset = start;
-  *end_offset = end;
-
-  g_assert (start <= end);
-
-  return g_utf8_substring (text, start, end);
-}
-
-/*
- * _gtk_pango_get_text_after:
- * @layout: a #PangoLayout
- * @boundary_type: a #AtkTextBoundary
- * @offset: a character offset in @layout
- * @start_offset: return location for the start of the returned text
- * @end_offset: return location for the end of the return text
- *
- * Gets a slice of the text from @layout after @offset.
- *
- * The @boundary_type determines the size of the returned slice of
- * text. For the exact semantics of this function, see
- * atk_text_get_text_after_offset().
- *
- * Returns: a newly allocated string containing a slice of text
- *     from layout. Free with g_free().
- */
-gchar *
-_gtk_pango_get_text_after (PangoLayout     *layout,
-                           AtkTextBoundary  boundary_type,
-                           gint             offset,
-                           gint            *start_offset,
-                           gint            *end_offset)
-{
-  const gchar *text;
-  gint start, end;
-  const PangoLogAttr *attrs;
-  gint n_attrs;
-
-  text = pango_layout_get_text (layout);
-
-  if (text[0] == 0)
-    {
-      *start_offset = 0;
-      *end_offset = 0;
-      return g_strdup ("");
-    }
-
-  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
-
-  start = offset;
-  end = start;
-
-  switch (boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-      start = _gtk_pango_move_chars (layout, start, 1);
-      end = start;
-      end = _gtk_pango_move_chars (layout, end, 1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_START:
-      if (_gtk_pango_is_inside_word (layout, end))
-        end = _gtk_pango_move_words (layout, end, 1);
-      while (!attrs[end].is_word_start && end < n_attrs - 1)
-        end = _gtk_pango_move_chars (layout, end, 1);
-      start = end;
-      if (end < n_attrs - 1)
-        {
-          end = _gtk_pango_move_words (layout, end, 1);
-          while (!attrs[end].is_word_start && end < n_attrs - 1)
-            end = _gtk_pango_move_chars (layout, end, 1);
-        }
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_END:
-      end = _gtk_pango_move_words (layout, end, 1);
-      start = end;
-      if (end < n_attrs - 1)
-        end = _gtk_pango_move_words (layout, end, 1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-      if (_gtk_pango_is_inside_sentence (layout, end))
-        end = _gtk_pango_move_sentences (layout, end, 1);
-      while (!attrs[end].is_sentence_start && end < n_attrs - 1)
-        end = _gtk_pango_move_chars (layout, end, 1);
-      start = end;
-      if (end < n_attrs - 1)
-        {
-          end = _gtk_pango_move_sentences (layout, end, 1);
-          while (!attrs[end].is_sentence_start && end < n_attrs - 1)
-            end = _gtk_pango_move_chars (layout, end, 1);
-        }
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-      end = _gtk_pango_move_sentences (layout, end, 1);
-      start = end;
-      if (end < n_attrs - 1)
-        end = _gtk_pango_move_sentences (layout, end, 1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_LINE_START:
-    case ATK_TEXT_BOUNDARY_LINE_END:
-      pango_layout_get_line_after (layout, boundary_type, offset, &start, &end);
-      break;
-
-    default:
-      g_assert_not_reached ();
-      break;
-    }
-
-  *start_offset = start;
-  *end_offset = end;
-
-  g_assert (start <= end);
-
-  return g_utf8_substring (text, start, end);
-}
-
-/*
- * _gtk_pango_get_text_at:
- * @layout: a #PangoLayout
- * @boundary_type: a #AtkTextBoundary
- * @offset: a character offset in @layout
- * @start_offset: return location for the start of the returned text
- * @end_offset: return location for the end of the return text
- *
- * Gets a slice of the text from @layout at @offset.
- *
- * The @boundary_type determines the size of the returned slice of
- * text. For the exact semantics of this function, see
- * atk_text_get_text_after_offset().
- *
- * Returns: a newly allocated string containing a slice of text
- *     from layout. Free with g_free().
- */
-gchar *
-_gtk_pango_get_text_at (PangoLayout     *layout,
-                        AtkTextBoundary  boundary_type,
-                        gint             offset,
-                        gint            *start_offset,
-                        gint            *end_offset)
-{
-  const gchar *text;
-  gint start, end;
-  const PangoLogAttr *attrs;
-  gint n_attrs;
-
-  text = pango_layout_get_text (layout);
-
-  if (text[0] == 0)
-    {
-      *start_offset = 0;
-      *end_offset = 0;
-      return g_strdup ("");
-    }
-
-  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
-
-  start = offset;
-  end = start;
-
-  switch (boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-      end = _gtk_pango_move_chars (layout, end, 1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_START:
-      if (!attrs[start].is_word_start)
-        start = _gtk_pango_move_words (layout, start, -1);
-      if (_gtk_pango_is_inside_word (layout, end))
-        end = _gtk_pango_move_words (layout, end, 1);
-      while (!attrs[end].is_word_start && end < n_attrs - 1)
-        end = _gtk_pango_move_chars (layout, end, 1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_END:
-      if (_gtk_pango_is_inside_word (layout, start) &&
-          !attrs[start].is_word_start)
-        start = _gtk_pango_move_words (layout, start, -1);
-      while (!attrs[start].is_word_end && start > 0)
-        start = _gtk_pango_move_chars (layout, start, -1);
-      end = _gtk_pango_move_words (layout, end, 1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-      if (!attrs[start].is_sentence_start)
-        start = _gtk_pango_move_sentences (layout, start, -1);
-      if (_gtk_pango_is_inside_sentence (layout, end))
-        end = _gtk_pango_move_sentences (layout, end, 1);
-      while (!attrs[end].is_sentence_start && end < n_attrs - 1)
-        end = _gtk_pango_move_chars (layout, end, 1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-      if (_gtk_pango_is_inside_sentence (layout, start) &&
-          !attrs[start].is_sentence_start)
-        start = _gtk_pango_move_sentences (layout, start, -1);
-      while (!attrs[start].is_sentence_end && start > 0)
-        start = _gtk_pango_move_chars (layout, start, -1);
-      end = _gtk_pango_move_sentences (layout, end, 1);
-      break;
-
-    case ATK_TEXT_BOUNDARY_LINE_START:
-    case ATK_TEXT_BOUNDARY_LINE_END:
-      pango_layout_get_line_at (layout, boundary_type, offset, &start, &end);
-      break;
-
-    default:
-      g_assert_not_reached ();
-      break;
-    }
-
-  *start_offset = start;
-  *end_offset = end;
-
-  g_assert (start <= end);
-
-  return g_utf8_substring (text, start, end);
-}
-
 static gboolean
 attr_list_merge_filter (PangoAttribute *attribute,
                         gpointer        list)
diff --git a/gtk/gtkpango.h b/gtk/gtkpango.h
index 4c3e97cba7..69dde793e0 100644
--- a/gtk/gtkpango.h
+++ b/gtk/gtkpango.h
@@ -25,38 +25,11 @@
 #ifndef __GTK_PANGO_H__
 #define __GTK_PANGO_H__
 
-
 #include <pango/pangocairo.h>
-#include <atk/atk.h>
 #include  "gtkbuildable.h"
 
 G_BEGIN_DECLS
 
-AtkAttributeSet *_gtk_pango_get_default_attributes (AtkAttributeSet *attributes,
-                                                    PangoLayout     *layout);
-
-AtkAttributeSet *_gtk_pango_get_run_attributes     (AtkAttributeSet *attributes,
-                                                    PangoLayout     *layout,
-                                                    gint             offset,
-                                                    gint            *start_offset,
-                                                    gint            *end_offset);
-
-gchar *_gtk_pango_get_text_before (PangoLayout     *layout,
-                                   AtkTextBoundary  boundary_type,
-                                   gint             offset,
-                                   gint            *start_offset,
-                                   gint            *end_offset);
-gchar *_gtk_pango_get_text_at     (PangoLayout     *layout,
-                                   AtkTextBoundary  boundary_type,
-                                   gint             offset,
-                                   gint            *start_offset,
-                                   gint            *end_offset);
-gchar *_gtk_pango_get_text_after  (PangoLayout     *layout,
-                                   AtkTextBoundary  boundary_type,
-                                   gint             offset,
-                                   gint            *start_offset,
-                                   gint            *end_offset);
-
 PangoAttrList *_gtk_pango_attr_list_merge (PangoAttrList *into,
                                            PangoAttrList *from);
 
diff --git a/gtk/gtkpasswordentry.c b/gtk/gtkpasswordentry.c
index 30e0950490..93d560e49e 100644
--- a/gtk/gtkpasswordentry.c
+++ b/gtk/gtkpasswordentry.c
@@ -22,7 +22,6 @@
 
 #include "gtkpasswordentryprivate.h"
 
-#include "gtkaccessible.h"
 #include "gtktextprivate.h"
 #include "gtkeditable.h"
 #include "gtkgestureclick.h"
@@ -35,8 +34,6 @@
 #include "gtkstylecontext.h"
 #include "gtkeventcontrollerkey.h"
 
-#include "a11y/gtkpasswordentryaccessibleprivate.h"
-
 /**
  * SECTION:gtkpasswordentry
  * @Short_description: An entry for secrets
@@ -130,11 +127,6 @@ gtk_password_entry_toggle_peek (GtkPasswordEntry *entry)
 
   visibility = gtk_text_get_visibility (GTK_TEXT (priv->entry));
   gtk_text_set_visibility (GTK_TEXT (priv->entry), !visibility);
-
-  /* Update the accessible object to reflect the change of visibility */
-  GtkAccessible *accessible = GTK_ACCESSIBLE (_gtk_widget_peek_accessible (GTK_WIDGET (entry)));
-  if (accessible != NULL)
-    gtk_password_entry_accessible_update_visibility (GTK_PASSWORD_ENTRY_ACCESSIBLE (accessible));
 }
 
 static void
@@ -431,7 +423,6 @@ gtk_password_entry_class_init (GtkPasswordEntryClass *klass)
   g_object_class_install_properties (object_class, NUM_PROPERTIES, props);
   gtk_editable_install_properties (object_class, NUM_PROPERTIES);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_PASSWORD_ENTRY_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("entry"));
 }
 
diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c
index cdaf541ef5..12d606cae2 100644
--- a/gtk/gtkpathbar.c
+++ b/gtk/gtkpathbar.c
@@ -1037,7 +1037,6 @@ make_directory_button (GtkPathBar  *path_bar,
                       gboolean     current_dir,
                       gboolean     file_is_hidden)
 {
-  AtkObject *atk_obj;
   GtkWidget *child = NULL;
   ButtonData *button_data;
   GdkContentProvider *content;
@@ -1048,7 +1047,6 @@ make_directory_button (GtkPathBar  *path_bar,
   button_data = g_new0 (ButtonData, 1);
   button_data->type = find_button_type (path_bar, file);
   button_data->button = gtk_toggle_button_new ();
-  atk_obj = gtk_widget_get_accessible (button_data->button);
   gtk_widget_set_focus_on_click (button_data->button, FALSE);
 
   switch (button_data->type)
@@ -1057,7 +1055,6 @@ make_directory_button (GtkPathBar  *path_bar,
       button_data->image = gtk_image_new ();
       child = button_data->image;
       button_data->label = NULL;
-      atk_object_set_name (atk_obj, _("File System Root"));
       break;
     case HOME_BUTTON:
     case DESKTOP_BUTTON:
diff --git a/gtk/gtkpicture.c b/gtk/gtkpicture.c
index 31d814e381..bd4adf00a8 100644
--- a/gtk/gtkpicture.c
+++ b/gtk/gtkpicture.c
@@ -30,8 +30,6 @@
 #include "gtksnapshot.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkpictureaccessibleprivate.h"
-
 /**
  * SECTION:gtkpicture
  * @Short_description: A widget displaying a #GdkPaintable
@@ -366,7 +364,6 @@ gtk_picture_class_init (GtkPictureClass *class)
 
   g_object_class_install_properties (gobject_class, NUM_PROPERTIES, properties);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_PICTURE_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("picture"));
 }
 
diff --git a/gtk/gtkprogressbar.c b/gtk/gtkprogressbar.c
index 8490024f4b..f02702d34d 100644
--- a/gtk/gtkprogressbar.c
+++ b/gtk/gtkprogressbar.c
@@ -39,8 +39,6 @@
 #include "gtkstylecontextprivate.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkprogressbaraccessibleprivate.h"
-
 #include <string.h>
 
 /**
@@ -250,7 +248,6 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class)
 
   g_object_class_install_properties (gobject_class, NUM_PROPERTIES, progress_props);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_PROGRESS_BAR_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("progressbar"));
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
 }
@@ -732,14 +729,6 @@ gtk_progress_bar_set_fraction (GtkProgressBar *pbar,
   gtk_widget_queue_allocate (pbar->trough_widget);
   update_fraction_classes (pbar);
 
-  {
-    AtkObject *accessible =
-      _gtk_widget_peek_accessible (GTK_WIDGET (pbar));
-
-    if (accessible != NULL)
-      gtk_progress_bar_accessible_update_value (GTK_PROGRESS_BAR_ACCESSIBLE (accessible));
-  }
-
   g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_FRACTION]);
 }
 
diff --git a/gtk/gtkradiobutton.c b/gtk/gtkradiobutton.c
index 4d67d0ddca..1c02298b04 100644
--- a/gtk/gtkradiobutton.c
+++ b/gtk/gtkradiobutton.c
@@ -32,7 +32,6 @@
 #include "gtkmarshalers.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
-#include "a11y/gtkradiobuttonaccessible.h"
 #include "gtkstylecontextprivate.h"
 
 /**
@@ -229,7 +228,6 @@ gtk_radio_button_class_init (GtkRadioButtonClass *class)
                                          NULL,
                                          G_TYPE_NONE, 0);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_RADIO_BUTTON_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("radiobutton"));
 }
 
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index e76ca4e688..c47f90df95 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -43,8 +43,6 @@
 #include "gtktypebuiltins.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkrangeaccessible.h"
-
 #include <stdio.h>
 #include <math.h>
 
@@ -429,7 +427,6 @@ gtk_range_class_init (GtkRangeClass *class)
 
   g_object_class_install_properties (gobject_class, LAST_PROP, properties);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_RANGE_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("range"));
 }
 
@@ -663,14 +660,6 @@ gtk_range_set_adjustment (GtkRange      *range,
       gtk_range_adjustment_changed (adjustment, range);
       gtk_range_adjustment_value_changed (adjustment, range);
 
-      {
-        GtkRangeAccessible *accessible =
-          GTK_RANGE_ACCESSIBLE (_gtk_widget_peek_accessible (GTK_WIDGET (range)));
-
-        if (accessible != NULL)
-          gtk_range_accessible_update_adjustment (accessible);
-      }
-
       g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_ADJUSTMENT]);
     }
 }
diff --git a/gtk/gtkscale.c b/gtk/gtkscale.c
index 6e739f1b46..cbc7226fa3 100644
--- a/gtk/gtkscale.c
+++ b/gtk/gtkscale.c
@@ -43,8 +43,6 @@
 #include "gtktypebuiltins.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkscaleaccessible.h"
-
 #include <math.h>
 #include <stdlib.h>
 
@@ -817,7 +815,6 @@ gtk_scale_class_init (GtkScaleClass *class)
   add_slider_binding (binding_set, GDK_KEY_KP_End, 0,
                       GTK_SCROLL_END);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SCALE_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("scale"));
 }
 
diff --git a/gtk/gtkscalebutton.c b/gtk/gtkscalebutton.c
index 930b026406..f4629296e7 100644
--- a/gtk/gtkscalebutton.c
+++ b/gtk/gtkscalebutton.c
@@ -56,8 +56,6 @@
 #include "gtkwindowprivate.h"
 #include "gtknative.h"
 
-#include "a11y/gtkscalebuttonaccessible.h"
-
 #include <math.h>
 #include <stdlib.h>
 #include <string.h>
@@ -343,7 +341,6 @@ gtk_scale_button_class_init (GtkScaleButtonClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, cb_scale_value_changed);
   gtk_widget_class_bind_template_callback (widget_class, cb_popup_mapped);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SCALE_BUTTON_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("scalebutton"));
 }
 
diff --git a/gtk/gtkscrollbar.c b/gtk/gtkscrollbar.c
index 7e9bdaae80..da489dc4f1 100644
--- a/gtk/gtkscrollbar.c
+++ b/gtk/gtkscrollbar.c
@@ -35,8 +35,6 @@
 #include "gtkwidgetprivate.h"
 #include "gtkboxlayout.h"
 
-#include "a11y/gtkscrollbaraccessible.h"
-
 
 /**
  * SECTION:gtkscrollbar
@@ -205,7 +203,6 @@ gtk_scrollbar_class_init (GtkScrollbarClass *class)
 
   g_object_class_override_property (object_class, PROP_ORIENTATION, "orientation");
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SCROLLBAR_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("scrollbar"));
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
 }
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index bb74c4f17b..33cc1f1a7e 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -53,8 +53,6 @@
 #include "gtkviewport.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkscrolledwindowaccessible.h"
-
 #include <math.h>
 
 /**
@@ -872,7 +870,6 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class)
   add_tab_bindings (widget_class, GDK_CONTROL_MASK, GTK_DIR_TAB_FORWARD);
   add_tab_bindings (widget_class, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SCROLLED_WINDOW_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("scrolledwindow"));
 }
 
diff --git a/gtk/gtksearchentry.c b/gtk/gtksearchentry.c
index 4be02d57a7..ab94d0718c 100644
--- a/gtk/gtksearchentry.c
+++ b/gtk/gtksearchentry.c
@@ -29,7 +29,6 @@
 
 #include "gtksearchentryprivate.h"
 
-#include "gtkaccessible.h"
 #include "gtkeditable.h"
 #include "gtkboxlayout.h"
 #include "gtkgestureclick.h"
@@ -41,7 +40,6 @@
 #include "gtkstylecontext.h"
 #include "gtkeventcontrollerkey.h"
 #include "gtkwidgetprivate.h"
-#include "a11y/gtksearchentryaccessible.h"
 
 
 /**
@@ -398,7 +396,6 @@ gtk_search_entry_class_init (GtkSearchEntryClass *klass)
                                        "stop-search",
                                        NULL);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SEARCH_ENTRY_ACCESSIBLE);
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, I_("entry"));
 }
diff --git a/gtk/gtkseparator.c b/gtk/gtkseparator.c
index 4c2f23adb0..6a515dbf89 100644
--- a/gtk/gtkseparator.c
+++ b/gtk/gtkseparator.c
@@ -136,7 +136,6 @@ gtk_separator_class_init (GtkSeparatorClass *class)
 
   g_object_class_override_property (object_class, PROP_ORIENTATION, "orientation");
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_SEPARATOR);
   gtk_widget_class_set_css_name (widget_class, I_("separator"));
 }
 
diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c
index 3da876839c..4142946179 100644
--- a/gtk/gtkspinbutton.c
+++ b/gtk/gtkspinbutton.c
@@ -55,8 +55,6 @@
 #include "gtkboxlayout.h"
 #include "gtktextprivate.h"
 
-#include "a11y/gtkspinbuttonaccessible.h"
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
@@ -549,7 +547,6 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
   add_spin_binding (widget_class, GDK_KEY_Page_Up, GDK_CONTROL_MASK, GTK_SCROLL_END);
   add_spin_binding (widget_class, GDK_KEY_Page_Down, GDK_CONTROL_MASK, GTK_SCROLL_START);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SPIN_BUTTON_ACCESSIBLE);
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, I_("spinbutton"));
 }
diff --git a/gtk/gtkspinner.c b/gtk/gtkspinner.c
index cb83e568f0..dfa87c4bd2 100644
--- a/gtk/gtkspinner.c
+++ b/gtk/gtkspinner.c
@@ -37,7 +37,6 @@
 #include "gtkstylecontext.h"
 #include "gtkstylecontextprivate.h"
 #include "gtkwidgetprivate.h"
-#include "a11y/gtkspinneraccessible.h"
 #include "gtkcssnumbervalueprivate.h"
 #include "gtkrendericonprivate.h"
 
@@ -242,7 +241,6 @@ gtk_spinner_class_init (GtkSpinnerClass *klass)
                                                          FALSE,
                                                          GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SPINNER_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("spinner"));
 }
 
diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c
index 8194f67302..71822dd451 100644
--- a/gtk/gtkstack.c
+++ b/gtk/gtkstack.c
@@ -31,8 +31,6 @@
 #include "gtkwidgetprivate.h"
 #include "gtksingleselection.h"
 #include "gtklistlistmodelprivate.h"
-#include "a11y/gtkstackaccessible.h"
-#include "a11y/gtkstackaccessibleprivate.h"
 #include <math.h>
 #include <string.h>
 
@@ -750,8 +748,6 @@ gtk_stack_class_init (GtkStackClass *klass)
 
   g_object_class_install_properties (object_class, LAST_PROP, stack_props);
 
-
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_STACK_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("stack"));
 }
 
@@ -1172,10 +1168,6 @@ set_visible_child (GtkStack               *stack,
         }
     }
 
-  gtk_stack_accessible_update_visible_child (stack,
-                                             priv->visible_child ? priv->visible_child->widget : NULL,
-                                             child_info ? child_info->widget : NULL);
-
   priv->visible_child = child_info;
 
   if (child_info)
diff --git a/gtk/gtkstackswitcher.c b/gtk/gtkstackswitcher.c
index 29f962b063..df66ce9769 100644
--- a/gtk/gtkstackswitcher.c
+++ b/gtk/gtkstackswitcher.c
@@ -33,8 +33,6 @@
 #include "gtktypebuiltins.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkcompositeaccessible.h"
-
 /**
  * SECTION:gtkstackswitcher
  * @Short_description: A controller for GtkStack
@@ -502,7 +500,6 @@ 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);
 }
 
 /**
diff --git a/gtk/gtkstatusbar.c b/gtk/gtkstatusbar.c
index c2c973f7e1..2f165db970 100644
--- a/gtk/gtkstatusbar.c
+++ b/gtk/gtkstatusbar.c
@@ -36,7 +36,6 @@
 #include "gtkorientable.h"
 #include "gtktypebuiltins.h"
 #include "gtkwidgetprivate.h"
-#include "a11y/gtkstatusbaraccessible.h"
 
 /**
  * SECTION:gtkstatusbar
@@ -203,7 +202,6 @@ gtk_statusbar_class_init (GtkStatusbarClass *class)
   gtk_widget_class_bind_template_child_internal (widget_class, GtkStatusbar, message_area);
   gtk_widget_class_bind_template_child (widget_class, GtkStatusbar, label);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_STATUSBAR_ACCESSIBLE);
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, I_("statusbar"));
 }
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index 0a11c83007..8986a9335a 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -1321,58 +1321,6 @@ gtk_snapshot_render_insertion_cursor (GtkSnapshot     *snapshot,
     }
 }
 
-static AtkAttributeSet *
-add_attribute (AtkAttributeSet  *attributes,
-               AtkTextAttribute  attr,
-               const gchar      *value)
-{
-  AtkAttribute *at;
-
-  at = g_new (AtkAttribute, 1);
-  at->name = g_strdup (atk_text_attribute_get_name (attr));
-  at->value = g_strdup (value);
-
-  return g_slist_prepend (attributes, at);
-}
-
-/*
- * _gtk_style_context_get_attributes:
- * @attributes: a #AtkAttributeSet to add attributes to
- * @context: the #GtkStyleContext to get attributes from
- * @flags: the state to use with @context
- *
- * Adds the foreground and background color from @context to
- * @attributes, after translating them to ATK attributes.
- *
- * This is a convenience function that can be used in
- * implementing the #AtkText interface in widgets.
- *
- * Returns: the modified #AtkAttributeSet
- */
-AtkAttributeSet *
-_gtk_style_context_get_attributes (AtkAttributeSet *attributes,
-                                   GtkStyleContext *context)
-{
-  const GdkRGBA *color; 
-  gchar *value;
-
-  color = gtk_css_color_value_get_rgba (_gtk_style_context_peek_property (context, 
GTK_CSS_PROPERTY_BACKGROUND_COLOR));
-  value = g_strdup_printf ("%u,%u,%u",
-                           (guint) ceil (color->red * 65536 - color->red),
-                           (guint) ceil (color->green * 65536 - color->green),
-                           (guint) ceil (color->blue * 65536 - color->blue));
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_BG_COLOR, value);
-
-  color = gtk_css_color_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_COLOR));
-  value = g_strdup_printf ("%u,%u,%u",
-                           (guint) ceil (color->red * 65536 - color->red),
-                           (guint) ceil (color->green * 65536 - color->green),
-                           (guint) ceil (color->blue * 65536 - color->blue));
-  attributes = add_attribute (attributes, ATK_TEXT_ATTR_FG_COLOR, value);
-
-  return attributes;
-}
-
 /**
  * GtkStyleContextPrintFlags:
  * @GTK_STYLE_CONTEXT_PRINT_NONE: Default value.
diff --git a/gtk/gtkstylecontextprivate.h b/gtk/gtkstylecontextprivate.h
index b902bb5b99..09fde7ce11 100644
--- a/gtk/gtkstylecontextprivate.h
+++ b/gtk/gtkstylecontextprivate.h
@@ -26,8 +26,6 @@
 #include "gtkbitmaskprivate.h"
 #include "gtkcssvalueprivate.h"
 
-#include <atk/atk.h>
-
 G_BEGIN_DECLS
 
 GtkStyleContext *gtk_style_context_new_for_node              (GtkCssNode      *node);
@@ -46,10 +44,6 @@ void           _gtk_style_context_get_cursor_color           (GtkStyleContext
                                                               GdkRGBA            *primary_color,
                                                               GdkRGBA            *secondary_color);
 
-/* Accessibility support */
-AtkAttributeSet *_gtk_style_context_get_attributes           (AtkAttributeSet    *attributes,
-                                                              GtkStyleContext    *context);
-
 G_END_DECLS
 
 #endif /* __GTK_STYLE_CONTEXT_PRIVATE_H__ */
diff --git a/gtk/gtkswitch.c b/gtk/gtkswitch.c
index e720ac3030..7563c5b099 100644
--- a/gtk/gtkswitch.c
+++ b/gtk/gtkswitch.c
@@ -69,8 +69,6 @@
 #include "gtkstylecontextprivate.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtkswitchaccessible.h"
-
 typedef struct _GtkSwitchClass   GtkSwitchClass;
 
 /**
@@ -606,9 +604,6 @@ gtk_switch_class_init (GtkSwitchClass *klass)
   g_object_class_override_property (gobject_class, PROP_ACTION_NAME, "action-name");
   g_object_class_override_property (gobject_class, PROP_ACTION_TARGET, "action-target");
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SWITCH_ACCESSIBLE);
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_TOGGLE_BUTTON);
-
   gtk_widget_class_set_css_name (widget_class, I_("switch"));
 }
 
@@ -691,7 +686,6 @@ gtk_switch_set_active (GtkSwitch *self,
 
   if (self->is_active != is_active)
     {
-      AtkObject *accessible;
       gboolean handled;
 
       self->is_active = is_active;
@@ -705,9 +699,6 @@ gtk_switch_set_active (GtkSwitch *self,
 
       g_object_notify_by_pspec (G_OBJECT (self), switch_props[PROP_ACTIVE]);
 
-      accessible = gtk_widget_get_accessible (GTK_WIDGET (self));
-      atk_object_notify_state_change (accessible, ATK_STATE_CHECKED, self->is_active);
-
       gtk_widget_queue_allocate (GTK_WIDGET (self));
     }
 }
diff --git a/gtk/gtktext.c b/gtk/gtktext.c
index 3dda4162cd..9843132c00 100644
--- a/gtk/gtktext.c
+++ b/gtk/gtktext.c
@@ -66,8 +66,6 @@
 #include "gtknative.h"
 #include "gtkactionmuxerprivate.h"
 
-#include "a11y/gtktextaccessible.h"
-
 #include <cairo-gobject.h>
 #include <string.h>
 
@@ -1480,8 +1478,6 @@ gtk_text_class_init (GtkTextClass *class)
                                        GDK_KEY_z, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
                                        "text.redo", NULL);
 
-
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TEXT_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("text"));
 }
 
diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c
index f50d27903a..8a289edd18 100644
--- a/gtk/gtktextbuffer.c
+++ b/gtk/gtktextbuffer.c
@@ -4376,316 +4376,6 @@ _gtk_text_buffer_spew (GtkTextBuffer *buffer)
   _gtk_text_btree_spew (get_btree (buffer));
 }
 
-void
-_gtk_text_buffer_get_text_before (GtkTextBuffer   *buffer,
-                                  AtkTextBoundary  boundary_type,
-                                  GtkTextIter     *position,
-                                  GtkTextIter     *start,
-                                  GtkTextIter     *end)
-{
-  gint line_number;
-
-  *start = *position;
-  *end = *start;
-
-  switch (boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-      gtk_text_iter_backward_char (start);
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_START:
-      if (!gtk_text_iter_starts_word (start))
-        gtk_text_iter_backward_word_start (start);
-      *end = *start;
-      gtk_text_iter_backward_word_start (start);
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_END:
-      if (gtk_text_iter_inside_word (start) &&
-          !gtk_text_iter_starts_word (start))
-        gtk_text_iter_backward_word_start (start);
-      while (!gtk_text_iter_ends_word (start))
-        {
-          if (!gtk_text_iter_backward_char (start))
-            break;
-        }
-      *end = *start;
-      gtk_text_iter_backward_word_start (start);
-      while (!gtk_text_iter_ends_word (start))
-        {
-          if (!gtk_text_iter_backward_char (start))
-            break;
-        }
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-      if (!gtk_text_iter_starts_sentence (start))
-        gtk_text_iter_backward_sentence_start (start);
-      *end = *start;
-      gtk_text_iter_backward_sentence_start (start);
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-      if (gtk_text_iter_inside_sentence (start) &&
-          !gtk_text_iter_starts_sentence (start))
-        gtk_text_iter_backward_sentence_start (start);
-      while (!gtk_text_iter_ends_sentence (start))
-        {
-          if (!gtk_text_iter_backward_char (start))
-            break;
-        }
-      *end = *start;
-      gtk_text_iter_backward_sentence_start (start);
-      while (!gtk_text_iter_ends_sentence (start))
-        {
-          if (!gtk_text_iter_backward_char (start))
-            break;
-        }
-      break;
-
-    case ATK_TEXT_BOUNDARY_LINE_START:
-      line_number = gtk_text_iter_get_line (start);
-      if (line_number == 0)
-        {
-          gtk_text_buffer_get_iter_at_offset (buffer, start, 0);
-        }
-      else
-        {
-          gtk_text_iter_backward_line (start);
-          gtk_text_iter_forward_line (start);
-        }
-      *end = *start;
-      gtk_text_iter_backward_line (start);
-      break;
-
-    case ATK_TEXT_BOUNDARY_LINE_END:
-      line_number = gtk_text_iter_get_line (start);
-      if (line_number == 0)
-        {
-          gtk_text_buffer_get_iter_at_offset (buffer, start, 0);
-          *end = *start;
-        }
-      else
-        {
-          gtk_text_iter_backward_line (start);
-          *end = *start;
-          while (!gtk_text_iter_ends_line (start))
-            {
-              if (!gtk_text_iter_backward_char (start))
-                break;
-            }
-          gtk_text_iter_forward_to_line_end (end);
-        }
-      break;
-
-    default:
-      g_assert_not_reached ();
-      break;
-    }
-}
-
-void
-_gtk_text_buffer_get_text_at (GtkTextBuffer   *buffer,
-                              AtkTextBoundary  boundary_type,
-                              GtkTextIter     *position,
-                              GtkTextIter     *start,
-                              GtkTextIter     *end)
-{
-  gint line_number;
-
-  *start = *position;
-  *end = *start;
-
-  switch (boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-      gtk_text_iter_forward_char (end);
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_START:
-      if (!gtk_text_iter_starts_word (start))
-        gtk_text_iter_backward_word_start (start);
-      if (gtk_text_iter_inside_word (end))
-        gtk_text_iter_forward_word_end (end);
-      while (!gtk_text_iter_starts_word (end))
-        {
-          if (!gtk_text_iter_forward_char (end))
-            break;
-        }
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_END:
-      if (gtk_text_iter_inside_word (start) &&
-          !gtk_text_iter_starts_word (start))
-        gtk_text_iter_backward_word_start (start);
-      while (!gtk_text_iter_ends_word (start))
-        {
-          if (!gtk_text_iter_backward_char (start))
-            break;
-        }
-      gtk_text_iter_forward_word_end (end);
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-      if (!gtk_text_iter_starts_sentence (start))
-        gtk_text_iter_backward_sentence_start (start);
-      if (gtk_text_iter_inside_sentence (end))
-        gtk_text_iter_forward_sentence_end (end);
-      while (!gtk_text_iter_starts_sentence (end))
-        {
-          if (!gtk_text_iter_forward_char (end))
-            break;
-        }
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-      if (gtk_text_iter_inside_sentence (start) &&
-          !gtk_text_iter_starts_sentence (start))
-        gtk_text_iter_backward_sentence_start (start);
-      while (!gtk_text_iter_ends_sentence (start))
-        {
-          if (!gtk_text_iter_backward_char (start))
-            break;
-        }
-      gtk_text_iter_forward_sentence_end (end);
-      break;
-
-    case ATK_TEXT_BOUNDARY_LINE_START:
-      line_number = gtk_text_iter_get_line (start);
-      if (line_number == 0)
-        {
-          gtk_text_buffer_get_iter_at_offset (buffer, start, 0);
-        }
-      else
-        {
-          gtk_text_iter_backward_line (start);
-          gtk_text_iter_forward_line (start);
-        }
-      gtk_text_iter_forward_line (end);
-      break;
-
-    case ATK_TEXT_BOUNDARY_LINE_END:
-      line_number = gtk_text_iter_get_line (start);
-      if (line_number == 0)
-        {
-          gtk_text_buffer_get_iter_at_offset (buffer, start, 0);
-        }
-      else
-        {
-          gtk_text_iter_backward_line (start);
-          gtk_text_iter_forward_line (start);
-        }
-      while (!gtk_text_iter_ends_line (start))
-        {
-          if (!gtk_text_iter_backward_char (start))
-            break;
-        }
-      gtk_text_iter_forward_to_line_end (end);
-      break;
-
-    default:
-      g_assert_not_reached ();
-      break;
-   }
-}
-
-void
-_gtk_text_buffer_get_text_after (GtkTextBuffer   *buffer,
-                                 AtkTextBoundary  boundary_type,
-                                 GtkTextIter     *position,
-                                 GtkTextIter     *start,
-                                 GtkTextIter     *end)
-{
-  *start = *position;
-  *end = *start;
-
-  switch (boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-      gtk_text_iter_forward_char (start);
-      gtk_text_iter_forward_chars (end, 2);
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_START:
-      if (gtk_text_iter_inside_word (end))
-        gtk_text_iter_forward_word_end (end);
-      while (!gtk_text_iter_starts_word (end))
-        {
-          if (!gtk_text_iter_forward_char (end))
-            break;
-        }
-      *start = *end;
-      if (!gtk_text_iter_is_end (end))
-        {
-          gtk_text_iter_forward_word_end (end);
-          while (!gtk_text_iter_starts_word (end))
-            {
-              if (!gtk_text_iter_forward_char (end))
-                break;
-            }
-        }
-      break;
-
-    case ATK_TEXT_BOUNDARY_WORD_END:
-      gtk_text_iter_forward_word_end (end);
-      *start = *end;
-      if (!gtk_text_iter_is_end (end))
-        gtk_text_iter_forward_word_end (end);
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-      if (gtk_text_iter_inside_sentence (end))
-        gtk_text_iter_forward_sentence_end (end);
-      while (!gtk_text_iter_starts_sentence (end))
-        {
-          if (!gtk_text_iter_forward_char (end))
-            break;
-        }
-      *start = *end;
-      if (!gtk_text_iter_is_end (end))
-        {
-          gtk_text_iter_forward_sentence_end (end);
-          while (!gtk_text_iter_starts_sentence (end))
-            {
-              if (!gtk_text_iter_forward_char (end))
-                break;
-            }
-        }
-      break;
-
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-      gtk_text_iter_forward_sentence_end (end);
-      *start = *end;
-      if (!gtk_text_iter_is_end (end))
-        gtk_text_iter_forward_sentence_end (end);
-      break;
-
-    case ATK_TEXT_BOUNDARY_LINE_START:
-      gtk_text_iter_forward_line (end);
-      *start = *end;
-      gtk_text_iter_forward_line (end);
-      break;
-
-    case ATK_TEXT_BOUNDARY_LINE_END:
-      gtk_text_iter_forward_line (start);
-      *end = *start;
-      if (!gtk_text_iter_is_end (start))
-        {
-          while (!gtk_text_iter_ends_line (start))
-            {
-              if (!gtk_text_iter_backward_char (start))
-                break;
-            }
-          gtk_text_iter_forward_to_line_end (end);
-        }
-      break;
-    default:
-      g_assert_not_reached ();
-      break;
-    }
-}
-
 static GtkTextTag *
 get_tag_for_attributes (PangoAttrIterator *iter)
 {
diff --git a/gtk/gtktextbufferprivate.h b/gtk/gtktextbufferprivate.h
index 8d8363c31a..131d09c43b 100644
--- a/gtk/gtktextbufferprivate.h
+++ b/gtk/gtktextbufferprivate.h
@@ -34,22 +34,6 @@ const PangoLogAttr* _gtk_text_buffer_get_line_log_attrs (GtkTextBuffer     *buff
 void _gtk_text_buffer_notify_will_remove_tag (GtkTextBuffer *buffer,
                                               GtkTextTag    *tag);
 
-void _gtk_text_buffer_get_text_before (GtkTextBuffer   *buffer,
-                                       AtkTextBoundary  boundary_type,
-                                       GtkTextIter     *position,
-                                       GtkTextIter     *start,
-                                       GtkTextIter     *end);
-void _gtk_text_buffer_get_text_at     (GtkTextBuffer   *buffer,
-                                       AtkTextBoundary  boundary_type,
-                                       GtkTextIter     *position,
-                                       GtkTextIter     *start,
-                                       GtkTextIter     *end);
-void _gtk_text_buffer_get_text_after  (GtkTextBuffer   *buffer,
-                                       AtkTextBoundary  boundary_type,
-                                       GtkTextIter     *position,
-                                       GtkTextIter     *start,
-                                       GtkTextIter     *end);
-
 G_END_DECLS
 
 #endif
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index f2993b4c28..eb0e755b06 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -56,8 +56,6 @@
 #include "gtknative.h"
 #include "gtkwidgetprivate.h"
 
-#include "a11y/gtktextviewaccessibleprivate.h"
-
 /**
  * SECTION:gtktextview
  * @Short_description: Widget that displays a GtkTextBuffer
@@ -1802,7 +1800,6 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
                                        "move-focus",
                                        "(i)", GTK_DIR_TAB_BACKWARD);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TEXT_VIEW_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("textview"));
 
   quark_text_selection_data = g_quark_from_static_string ("gtk-text-view-text-selection-data");
@@ -2143,7 +2140,6 @@ gtk_text_view_set_buffer (GtkTextView   *text_view,
       gtk_widget_action_set_enabled (GTK_WIDGET (text_view), "text.redo", can_redo);
     }
 
-  _gtk_text_view_accessible_set_buffer (text_view, old_buffer);
   if (old_buffer)
     g_object_unref (old_buffer);
 
diff --git a/gtk/gtktogglebutton.c b/gtk/gtktogglebutton.c
index 34b2879e63..ee7f71f6b8 100644
--- a/gtk/gtktogglebutton.c
+++ b/gtk/gtktogglebutton.c
@@ -34,9 +34,6 @@
 #include "gtkprivate.h"
 #include "gtkstylecontext.h"
 
-#include "a11y/gtktogglebuttonaccessible.h"
-
-
 /**
  * SECTION:gtktogglebutton
  * @Short_description: Create buttons which retain their state
@@ -181,7 +178,6 @@ gtk_toggle_button_class_init (GtkToggleButtonClass *class)
                  NULL,
                  G_TYPE_NONE, 0);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TOGGLE_BUTTON_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("button"));
 }
 
diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c
index e29461ff7a..6e1e949ce6 100644
--- a/gtk/gtktooltip.c
+++ b/gtk/gtktooltip.c
@@ -34,7 +34,6 @@
 #include "gtktooltipwindowprivate.h"
 #include "gtkwindowprivate.h"
 #include "gtkwidgetprivate.h"
-#include "gtkaccessible.h"
 #include "gtknative.h"
 
 /**
diff --git a/gtk/gtktooltipwindow.c b/gtk/gtktooltipwindow.c
index c30ebf1616..877738117c 100644
--- a/gtk/gtktooltipwindow.c
+++ b/gtk/gtktooltipwindow.c
@@ -29,7 +29,6 @@
 #include "gtkprivate.h"
 #include "gtkintl.h"
 
-#include "gtkaccessible.h"
 #include "gtkbox.h"
 #include "gtkimage.h"
 #include "gtklabel.h"
@@ -382,7 +381,6 @@ gtk_tooltip_window_class_init (GtkTooltipWindowClass *klass)
   widget_class->hide = gtk_tooltip_window_hide;
 
   gtk_widget_class_set_css_name (widget_class, I_("tooltip"));
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_TOOL_TIP);
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/ui/gtktooltipwindow.ui");
 
   gtk_widget_class_bind_template_child (widget_class, GtkTooltipWindow, box);
diff --git a/gtk/gtktreeselection.c b/gtk/gtktreeselection.c
index 89739be696..07c695b9f1 100644
--- a/gtk/gtktreeselection.c
+++ b/gtk/gtktreeselection.c
@@ -24,7 +24,6 @@
 #include "gtkintl.h"
 #include "gtkprivate.h"
 #include "gtktypebuiltins.h"
-#include "a11y/gtktreeviewaccessibleprivate.h"
 
 
 /**
@@ -1560,12 +1559,10 @@ gtk_tree_selection_real_select_node (GtkTreeSelection *selection,
       if (!GTK_TREE_RBNODE_FLAG_SET (node, GTK_TREE_RBNODE_IS_SELECTED))
         {
           GTK_TREE_RBNODE_SET_FLAG (node, GTK_TREE_RBNODE_IS_SELECTED);
-          _gtk_tree_view_accessible_add_state (selection->tree_view, tree, node, GTK_CELL_RENDERER_SELECTED);
         }
       else
         {
           GTK_TREE_RBNODE_UNSET_FLAG (node, GTK_TREE_RBNODE_IS_SELECTED);
-          _gtk_tree_view_accessible_remove_state (selection->tree_view, tree, node, 
GTK_CELL_RENDERER_SELECTED);
         }
 
       gtk_widget_queue_draw (GTK_WIDGET (selection->tree_view));
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 3be5b40b81..816be8fd68 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -65,8 +65,6 @@
 #include "gtknative.h"
 #include "gtkpopover.h"
 
-#include "a11y/gtktreeviewaccessibleprivate.h"
-
 #include "gdk/gdkeventsprivate.h"
 #include "gdk/gdktextureprivate.h"
 
@@ -1613,7 +1611,6 @@ gtk_tree_view_class_init (GtkTreeViewClass *class)
 
   gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_F, GDK_CONTROL_MASK, 
"start-interactive-search", NULL);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TREE_VIEW_ACCESSIBLE);
   gtk_widget_class_set_css_name (widget_class, I_("treeview"));
 }
 
@@ -8059,8 +8056,6 @@ gtk_tree_view_row_changed (GtkTreeModel *model,
   if (tree == NULL)
     goto done;
 
-  _gtk_tree_view_accessible_changed (tree_view, tree, node);
-
   if (priv->fixed_height_mode
       && priv->fixed_height >= 0)
     {
@@ -8186,8 +8181,6 @@ gtk_tree_view_row_inserted (GtkTreeModel *model,
       tmpnode = gtk_tree_rbtree_insert_after (tree, tmpnode, height, FALSE);
     }
 
-  _gtk_tree_view_accessible_add (tree_view, tree, tmpnode);
-
  done:
   if (height > 0)
     {
@@ -8248,12 +8241,10 @@ gtk_tree_view_row_has_child_toggled (GtkTreeModel *model,
   if (has_child)
     {
       GTK_TREE_RBNODE_SET_FLAG (node, GTK_TREE_RBNODE_IS_PARENT);
-      _gtk_tree_view_accessible_add_state (tree_view, tree, node, GTK_CELL_RENDERER_EXPANDABLE);
     }
   else
     {
       GTK_TREE_RBNODE_UNSET_FLAG (node, GTK_TREE_RBNODE_IS_PARENT);
-      _gtk_tree_view_accessible_remove_state (tree_view, tree, node, GTK_CELL_RENDERER_EXPANDABLE);
     }
 
   if (has_child && priv->is_list)
@@ -8386,15 +8377,10 @@ gtk_tree_view_row_deleted (GtkTreeModel *model,
       if (priv->tree == tree)
        priv->tree = NULL;
 
-      _gtk_tree_view_accessible_remove_state (tree_view,
-                                              tree->parent_tree, tree->parent_node,
-                                              GTK_CELL_RENDERER_EXPANDED);
-      _gtk_tree_view_accessible_remove (tree_view, tree, NULL);
       gtk_tree_rbtree_remove (tree);
     }
   else
     {
-      _gtk_tree_view_accessible_remove (tree_view, tree, node);
       gtk_tree_rbtree_remove_node (tree, node);
     }
 
@@ -8469,8 +8455,6 @@ gtk_tree_view_rows_reordered (GtkTreeModel *model,
 
   gtk_tree_rbtree_reorder (tree, new_order, len);
 
-  _gtk_tree_view_accessible_reorder (tree_view);
-
   gtk_widget_queue_draw (GTK_WIDGET (tree_view));
 
   gtk_tree_view_dy_to_top_row (tree_view);
@@ -9208,10 +9192,6 @@ _gtk_tree_view_set_focus_column (GtkTreeView       *tree_view,
     return;
 
   priv->focus_column = column;
-
-  _gtk_tree_view_accessible_update_focus_column (tree_view, 
-                                                 old_column,
-                                                 column);
 }
 
 /* x and y are the mouse position
@@ -10378,7 +10358,6 @@ gtk_tree_view_set_model (GtkTreeView  *tree_view,
        {
          priv->tree = gtk_tree_rbtree_new ();
          gtk_tree_view_build_tree (tree_view, priv->tree, &iter, 1, FALSE);
-          _gtk_tree_view_accessible_add (tree_view, priv->tree, NULL);
        }
       gtk_tree_path_free (path);
 
@@ -10388,14 +10367,6 @@ gtk_tree_view_set_model (GtkTreeView  *tree_view,
 
   gtk_tree_view_real_set_cursor (tree_view, NULL, CURSOR_INVALID);
 
-  {
-    GtkTreeViewAccessible *accessible =
-      GTK_TREE_VIEW_ACCESSIBLE (_gtk_widget_peek_accessible (GTK_WIDGET (tree_view)));
-
-    if (accessible != NULL)
-      gtk_tree_view_accessible_update_model (accessible, priv->model);
-  }
-
   g_object_notify_by_pspec (G_OBJECT (tree_view), tree_view_props[PROP_MODEL]);
 
   if (priv->selection)
@@ -10723,7 +10694,6 @@ gtk_tree_view_remove_column (GtkTreeView       *tree_view,
                              GtkTreeViewColumn *column)
 {
   GtkTreeViewPrivate *priv = gtk_tree_view_get_instance_private (tree_view);
-  guint position;
 
   g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), -1);
   g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN (column), -1);
@@ -10747,8 +10717,6 @@ gtk_tree_view_remove_column (GtkTreeView       *tree_view,
                                         G_CALLBACK (column_sizing_notify),
                                         tree_view);
 
-  position = g_list_index (priv->columns, column);
-
   _gtk_tree_view_column_unset_tree_view (column);
 
   priv->columns = g_list_remove (priv->columns, column);
@@ -10770,8 +10738,6 @@ gtk_tree_view_remove_column (GtkTreeView       *tree_view,
       gtk_widget_queue_resize (GTK_WIDGET (tree_view));
     }
 
-  _gtk_tree_view_accessible_remove_column (tree_view, column, position);
-
   g_object_unref (column);
   g_signal_emit (tree_view, tree_view_signals[COLUMNS_CHANGED], 0);
 
@@ -10837,8 +10803,6 @@ gtk_tree_view_insert_column (GtkTreeView       *tree_view,
       gtk_widget_queue_resize (GTK_WIDGET (tree_view));
     }
 
-  _gtk_tree_view_accessible_add_column (tree_view, column, position);
-
   g_signal_emit (tree_view, tree_view_signals[COLUMNS_CHANGED], 0);
 
   return priv->n_columns;
@@ -11059,8 +11023,6 @@ gtk_tree_view_move_column_after (GtkTreeView       *tree_view,
 
   gtk_widget_queue_resize (GTK_WIDGET (tree_view));
 
-  _gtk_tree_view_accessible_reorder_column (tree_view, column);
-
   g_signal_emit (tree_view, tree_view_signals[COLUMNS_CHANGED], 0);
 }
 
@@ -11539,11 +11501,6 @@ gtk_tree_view_real_expand_row (GtkTreeView   *tree_view,
                            gtk_tree_path_get_depth (path) + 1,
                            open_all);
 
-  _gtk_tree_view_accessible_add (tree_view, node->children, NULL);
-  _gtk_tree_view_accessible_add_state (tree_view,
-                                       tree, node,
-                                       GTK_CELL_RENDERER_EXPANDED);
-
   install_presize_handler (tree_view);
 
   g_signal_emit (tree_view, tree_view_signals[ROW_EXPANDED], 0, &iter, path);
@@ -11676,11 +11633,6 @@ gtk_tree_view_real_collapse_row (GtkTreeView   *tree_view,
   /* Stop a pending double click */
   gtk_event_controller_reset (GTK_EVENT_CONTROLLER (priv->click_gesture));
 
-  _gtk_tree_view_accessible_remove (tree_view, node->children, NULL);
-  _gtk_tree_view_accessible_remove_state (tree_view,
-                                          tree, node,
-                                          GTK_CELL_RENDERER_EXPANDED);
-
   gtk_tree_rbtree_remove (node->children);
 
   if (cursor_changed)
@@ -11905,13 +11857,7 @@ gtk_tree_view_real_set_cursor (GtkTreeView     *tree_view,
   GtkTreeViewPrivate *priv = gtk_tree_view_get_instance_private (tree_view);
 
   if (!(flags & CURSOR_INVALID) && priv->cursor_node)
-    {
-      _gtk_tree_view_accessible_remove_state (tree_view,
-                                              priv->cursor_tree,
-                                              priv->cursor_node,
-                                              GTK_CELL_RENDERER_FOCUSED);
-      gtk_widget_queue_draw (GTK_WIDGET (tree_view));
-    }
+    gtk_widget_queue_draw (GTK_WIDGET (tree_view));
 
   /* One cannot set the cursor on a separator.   Also, if
    * _gtk_tree_view_find_node returns TRUE, it ran out of tree
@@ -11967,11 +11913,6 @@ gtk_tree_view_real_set_cursor (GtkTreeView     *tree_view,
                                             priv->cursor_node);
           gtk_widget_queue_draw (GTK_WIDGET (tree_view));
        }
-
-      _gtk_tree_view_accessible_add_state (tree_view,
-                                           priv->cursor_tree,
-                                           priv->cursor_node,
-                                           GTK_CELL_RENDERER_FOCUSED);
     }
 
   if (!gtk_widget_in_destruction (GTK_WIDGET (tree_view)))
diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c
index 2cd41084b1..743cb23789 100644
--- a/gtk/gtktreeviewcolumn.c
+++ b/gtk/gtktreeviewcolumn.c
@@ -39,8 +39,6 @@
 #include "gtkeventcontrollerfocus.h"
 #include "gtkeventcontrollerkey.h"
 
-#include "a11y/gtktreeviewaccessibleprivate.h"
-
 #include <string.h>
 
 
@@ -1815,12 +1813,6 @@ gtk_tree_view_column_set_visible (GtkTreeViewColumn *tree_column,
   if (priv->visible)
     _gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
 
-  if (priv->tree_view)
-    {
-      _gtk_tree_view_accessible_toggle_visibility (GTK_TREE_VIEW (priv->tree_view),
-                                                   tree_column);
-    }
-
   gtk_tree_view_column_update_button (tree_column);
   g_object_notify_by_pspec (G_OBJECT (tree_column), tree_column_props[PROP_VISIBLE]);
 }
diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c
index 7e4aefc573..39f64823f8 100644
--- a/gtk/gtkviewport.c
+++ b/gtk/gtkviewport.c
@@ -367,8 +367,6 @@ gtk_viewport_class_init (GtkViewportClass *class)
   widget_class->compute_expand = gtk_viewport_compute_expand;
   widget_class->get_request_mode = gtk_viewport_get_request_mode;
 
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_VIEWPORT);
-
   /* GtkScrollable implementation */
   g_object_class_override_property (gobject_class, PROP_HADJUSTMENT,    "hadjustment");
   g_object_class_override_property (gobject_class, PROP_VADJUSTMENT,    "vadjustment");
diff --git a/gtk/gtkvolumebutton.c b/gtk/gtkvolumebutton.c
index 85a79f554f..e01353bb60 100644
--- a/gtk/gtkvolumebutton.c
+++ b/gtk/gtkvolumebutton.c
@@ -189,10 +189,6 @@ gtk_volume_button_init (GtkVolumeButton *button)
   GtkWidget *widget = GTK_WIDGET (button);
 
   gtk_widget_init_template (widget);
-
-  /* The atk action description is not supported by GtkBuilder */
-  atk_action_set_description (ATK_ACTION (gtk_widget_get_accessible (GTK_WIDGET (widget))),
-                              1, _("Adjusts the volume"));
 }
 
 /**
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 81c7c3e3f5..a9d88b1bc1 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -27,7 +27,6 @@
 #include "gtkwidgetprivate.h"
 
 #include "gtkaccelgroupprivate.h"
-#include "gtkaccessible.h"
 #include "gtkapplicationprivate.h"
 #include "gtkbuildable.h"
 #include "gtkbuilderprivate.h"
@@ -73,7 +72,6 @@
 #include "gtkwindowgroup.h"
 #include "gtkwindowprivate.h"
 
-#include "a11y/gtkwidgetaccessibleprivate.h"
 #include "inspector/window.h"
 
 #include "gdk/gdkeventsprivate.h"
@@ -261,29 +259,6 @@
  * </object>
  * ]|
  *
- * In addition to accelerators, GtkWidget also support a custom <accessible>
- * element, which supports actions and relations. Properties on the accessible
- * implementation of an object can be set by accessing the internal child
- * “accessible” of a #GtkWidget.
- *
- * An example of a UI definition fragment specifying an accessible:
- * |[
- * <object class="GtkLabel" id="label1"/>
- *   <property name="label">I am a Label for a Button</property>
- * </object>
- * <object class="GtkButton" id="button1">
- *   <accessibility>
- *     <action action_name="click" translatable="yes">Click the button.</action>
- *     <relation target="label1" type="labelled-by"/>
- *   </accessibility>
- *   <child internal-child="accessible">
- *     <object class="AtkObject" id="a11y-button1">
- *       <property name="accessible-name">Clickable Button</property>
- *     </object>
- *   </child>
- * </object>
- * ]|
- *
  * If the parent widget uses a #GtkLayoutManager, #GtkWidget supports a
  * custom <layout> element, used to define layout properties:
  *
@@ -622,9 +597,6 @@ static void             gtk_widget_real_measure                 (GtkWidget
                                                                  int              *natural_baseline);
 static void             gtk_widget_real_state_flags_changed     (GtkWidget        *widget,
                                                                  GtkStateFlags     old_state);
-static AtkObject*      gtk_widget_real_get_accessible          (GtkWidget        *widget);
-static void            gtk_widget_accessible_interface_init    (AtkImplementorIface *iface);
-static AtkObject*      gtk_widget_ref_accessible               (AtkImplementor *implementor);
 
 static void             gtk_widget_buildable_interface_init     (GtkBuildableIface  *iface);
 static void             gtk_widget_buildable_set_name           (GtkBuildable       *buildable,
@@ -707,13 +679,6 @@ gtk_widget_get_type (void)
        NULL,           /* value_table */
       };
 
-      const GInterfaceInfo accessibility_info =
-      {
-       (GInterfaceInitFunc) gtk_widget_accessible_interface_init,
-       (GInterfaceFinalizeFunc) NULL,
-       NULL /* interface data */
-      };
-
       const GInterfaceInfo buildable_info =
       {
        (GInterfaceInitFunc) gtk_widget_buildable_interface_init,
@@ -736,8 +701,6 @@ gtk_widget_get_type (void)
       GtkWidget_private_offset =
         g_type_add_instance_private (widget_type, sizeof (GtkWidgetPrivate));
 
-      g_type_add_interface_static (widget_type, ATK_TYPE_IMPLEMENTOR,
-                                   &accessibility_info) ;
       g_type_add_interface_static (widget_type, GTK_TYPE_BUILDABLE,
                                    &buildable_info) ;
       g_type_add_interface_static (widget_type, GTK_TYPE_CONSTRAINT_TARGET,
@@ -934,12 +897,6 @@ gtk_widget_class_init (GtkWidgetClass *klass)
   klass->query_tooltip = gtk_widget_real_query_tooltip;
   klass->css_changed = gtk_widget_real_css_changed;
   klass->system_setting_changed = gtk_widget_real_system_setting_changed;
-
-  /* Accessibility support */
-  klass->priv->accessible_type = GTK_TYPE_WIDGET_ACCESSIBLE;
-  klass->priv->accessible_role = ATK_ROLE_INVALID;
-  klass->get_accessible = gtk_widget_real_get_accessible;
-
   klass->contains = gtk_widget_real_contains;
 
   widget_props[PROP_NAME] =
@@ -2605,9 +2562,6 @@ gtk_widget_show (GtkWidget *widget)
       g_signal_emit (widget, widget_signals[SHOW], 0);
       g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_VISIBLE]);
 
-      if (priv->accessible != NULL)
-        gtk_widget_accessible_notify_visible (GTK_WIDGET_ACCESSIBLE (priv->accessible));
-
       gtk_widget_pop_verify_invariants (widget);
       g_object_unref (widget);
     }
@@ -2668,9 +2622,6 @@ gtk_widget_hide (GtkWidget *widget)
       g_signal_emit (widget, widget_signals[HIDE], 0);
       g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_VISIBLE]);
 
-      if (priv->accessible != NULL)
-        gtk_widget_accessible_notify_visible (GTK_WIDGET_ACCESSIBLE (priv->accessible));
-
       parent = gtk_widget_get_parent (widget);
       if (parent)
        gtk_widget_queue_resize (parent);
@@ -2730,16 +2681,11 @@ gtk_widget_map (GtkWidget *widget)
 
   if (!_gtk_widget_get_mapped (widget))
     {
-      GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
-
       gtk_widget_push_verify_invariants (widget);
 
       if (!_gtk_widget_get_realized (widget))
         gtk_widget_realize (widget);
 
-      if (priv->accessible != NULL)
-        gtk_widget_accessible_notify_showing (GTK_WIDGET_ACCESSIBLE (priv->accessible));
-
       g_signal_emit (widget, widget_signals[MAP], 0);
 
       update_cursor_on_state_change (widget);
@@ -2764,8 +2710,6 @@ gtk_widget_unmap (GtkWidget *widget)
 
   if (_gtk_widget_get_mapped (widget))
     {
-      GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
-
       g_object_ref (widget);
       gtk_widget_push_verify_invariants (widget);
 
@@ -2774,9 +2718,6 @@ gtk_widget_unmap (GtkWidget *widget)
 
       g_signal_emit (widget, widget_signals[UNMAP], 0);
 
-      if (priv->accessible != NULL)
-        gtk_widget_accessible_notify_showing (GTK_WIDGET_ACCESSIBLE (priv->accessible));
-
       update_cursor_on_state_change (widget);
 
       gtk_widget_pop_verify_invariants (widget);
@@ -3934,9 +3875,6 @@ gtk_widget_allocate (GtkWidget    *widget,
 
   gtk_widget_update_paintables (widget);
 
-  if (priv->accessible != NULL)
-    gtk_widget_accessible_update_bounds (GTK_WIDGET_ACCESSIBLE (priv->accessible));
-
 skip_allocate:
   if (size_changed || baseline_changed)
     gtk_widget_queue_draw (widget);
@@ -5613,9 +5551,6 @@ gtk_widget_set_sensitive (GtkWidget *widget,
       update_cursor_on_state_change (widget);
     }
 
-  if (priv->accessible != NULL)
-    gtk_widget_accessible_notify_sensitive (GTK_WIDGET_ACCESSIBLE (priv->accessible));
-
   g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_SENSITIVE]);
 }
 
@@ -7101,9 +7036,7 @@ finalize_assertion_weak_ref (gpointer data,
 static void
 gtk_widget_real_destroy (GtkWidget *object)
 {
-  /* gtk_object_destroy() will already hold a refcount on object */
   GtkWidget *widget = GTK_WIDGET (object);
-  GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
 
   if (g_object_get_qdata (G_OBJECT (widget), quark_auto_children))
     {
@@ -7210,13 +7143,6 @@ gtk_widget_real_destroy (GtkWidget *object)
        }
     }
 
-  if (priv->accessible)
-    {
-      gtk_accessible_set_widget (GTK_ACCESSIBLE (priv->accessible), NULL);
-      g_object_unref (priv->accessible);
-      priv->accessible = NULL;
-    }
-
   /* Callers of add_mnemonic_label() should disconnect on ::destroy */
   g_object_set_qdata (G_OBJECT (widget), quark_mnemonic_labels, NULL);
 
@@ -7246,7 +7172,6 @@ gtk_widget_finalize (GObject *object)
   g_free (priv->tooltip_markup);
   g_free (priv->tooltip_text);
 
-  g_clear_object (&priv->accessible);
   g_clear_pointer (&priv->transform, gsk_transform_unref);
   g_clear_pointer (&priv->allocated_transform, gsk_transform_unref);
 
@@ -7693,170 +7618,6 @@ G_DEFINE_BOXED_TYPE (GtkRequisition, gtk_requisition,
                      gtk_requisition_copy,
                      gtk_requisition_free)
 
-/**
- * gtk_widget_class_set_accessible_type:
- * @widget_class: class to set the accessible type for
- * @type: The object type that implements the accessible for @widget_class
- *
- * Sets the type to be used for creating accessibles for widgets of
- * @widget_class. The given @type must be a subtype of the type used for
- * accessibles of the parent class.
- *
- * This function should only be called from class init functions of widgets.
- **/
-void
-gtk_widget_class_set_accessible_type (GtkWidgetClass *widget_class,
-                                      GType           type)
-{
-  GtkWidgetClassPrivate *priv;
-
-  g_return_if_fail (GTK_IS_WIDGET_CLASS (widget_class));
-  g_return_if_fail (g_type_is_a (type, widget_class->priv->accessible_type));
-
-  priv = widget_class->priv;
-
-  priv->accessible_type = type;
-  /* reset this - honoring the type's role is better. */
-  priv->accessible_role = ATK_ROLE_INVALID;
-}
-
-/**
- * gtk_widget_class_set_accessible_role:
- * @widget_class: class to set the accessible role for
- * @role: The role to use for accessibles created for @widget_class
- *
- * Sets the default #AtkRole to be set on accessibles created for
- * widgets of @widget_class. Accessibles may decide to not honor this
- * setting if their role reporting is more refined. Calls to 
- * gtk_widget_class_set_accessible_type() will reset this value.
- *
- * In cases where you want more fine-grained control over the role of
- * accessibles created for @widget_class, you should provide your own
- * accessible type and use gtk_widget_class_set_accessible_type()
- * instead.
- *
- * If @role is #ATK_ROLE_INVALID, the default role will not be changed
- * and the accessible’s default role will be used instead.
- *
- * This function should only be called from class init functions of widgets.
- **/
-void
-gtk_widget_class_set_accessible_role (GtkWidgetClass *widget_class,
-                                      AtkRole         role)
-{
-  GtkWidgetClassPrivate *priv;
-
-  g_return_if_fail (GTK_IS_WIDGET_CLASS (widget_class));
-
-  priv = widget_class->priv;
-
-  priv->accessible_role = role;
-}
-
-/**
- * _gtk_widget_peek_accessible:
- * @widget: a #GtkWidget
- *
- * Gets the accessible for @widget, if it has been created yet.
- * Otherwise, this function returns %NULL. If the @widget’s implementation
- * does not use the default way to create accessibles, %NULL will always be
- * returned.
- *
- * Returns: (nullable): the accessible for @widget or %NULL if none has been
- *     created yet.
- **/
-AtkObject *
-_gtk_widget_peek_accessible (GtkWidget *widget)
-{
-  GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
-
-  return priv->accessible;
-}
-
-/**
- * gtk_widget_get_accessible:
- * @widget: a #GtkWidget
- *
- * Returns the accessible object that describes the widget to an
- * assistive technology.
- *
- * If accessibility support is not available, this #AtkObject
- * instance may be a no-op. Likewise, if no class-specific #AtkObject
- * implementation is available for the widget instance in question,
- * it will inherit an #AtkObject implementation from the first ancestor
- * class for which such an implementation is defined.
- *
- * The documentation of the
- * [ATK](http://developer.gnome.org/atk/stable/)
- * library contains more information about accessible objects and their uses.
- *
- * Returns: (transfer none): the #AtkObject associated with @widget
- */
-AtkObject*
-gtk_widget_get_accessible (GtkWidget *widget)
-{
-  g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
-
-  return GTK_WIDGET_GET_CLASS (widget)->get_accessible (widget);
-}
-
-static AtkObject*
-gtk_widget_real_get_accessible (GtkWidget *widget)
-{
-  AtkObject* accessible;
-
-  accessible = widget->priv->accessible;
-
-  if (!accessible)
-    {
-      GtkWidgetClass *widget_class;
-      GtkWidgetClassPrivate *priv;
-
-      widget_class = GTK_WIDGET_GET_CLASS (widget);
-      priv = widget_class->priv;
-
-      accessible = g_object_new (priv->accessible_type,
-                                 "widget", widget,
-                                 NULL);
-      if (priv->accessible_role != ATK_ROLE_INVALID)
-        atk_object_set_role (accessible, priv->accessible_role);
-
-      widget->priv->accessible = accessible;
-
-      atk_object_initialize (accessible, widget);
-
-      /* Set the role again, since we don't want a role set
-       * in some parent initialize() function to override
-       * our own.
-       */
-      if (priv->accessible_role != ATK_ROLE_INVALID)
-        atk_object_set_role (accessible, priv->accessible_role);
-    }
-
-  return accessible;
-}
-
-/*
- * Initialize an AtkImplementorIface instance’s virtual pointers as
- * appropriate to this implementor’s class (GtkWidget).
- */
-static void
-gtk_widget_accessible_interface_init (AtkImplementorIface *iface)
-{
-  iface->ref_accessible = gtk_widget_ref_accessible;
-}
-
-static AtkObject*
-gtk_widget_ref_accessible (AtkImplementor *implementor)
-{
-  AtkObject *accessible;
-
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (implementor));
-  if (accessible)
-    g_object_ref (accessible);
-  return accessible;
-}
-
 /*
  * Expand flag management
  */
@@ -8279,7 +8040,6 @@ gtk_widget_set_vexpand_set (GtkWidget      *widget,
 /*
  * GtkBuildable implementation
  */
-static GQuark           quark_builder_atk_relations = 0;
 static GQuark            quark_builder_set_name = 0;
 
 static void
@@ -8310,7 +8070,6 @@ gtk_widget_buildable_add_child (GtkBuildable  *buildable,
 static void
 gtk_widget_buildable_interface_init (GtkBuildableIface *iface)
 {
-  quark_builder_atk_relations = g_quark_from_static_string ("gtk-builder-atk-relations");
   quark_builder_set_name = g_quark_from_static_string ("gtk-builder-set-name");
 
   iface->set_name = gtk_widget_buildable_set_name;
@@ -8346,9 +8105,6 @@ gtk_widget_buildable_get_internal_child (GtkBuildable *buildable,
   GSList *l;
   GType internal_child_type = 0;
 
-  if (strcmp (childname, "accessible") == 0)
-    return G_OBJECT (gtk_widget_get_accessible (GTK_WIDGET (buildable)));
-
   /* Find a widget type which has declared an automated child as internal by
    * the name 'childname', if any.
    */
@@ -8380,242 +8136,12 @@ gtk_widget_buildable_get_internal_child (GtkBuildable *buildable,
   return NULL;
 }
 
-typedef struct
-{
-  gchar *action_name;
-  GString *description;
-  gchar *context;
-  gboolean translatable;
-} AtkActionData;
-
-typedef struct
-{
-  gchar *target;
-  AtkRelationType type;
-  gint line;
-  gint col;
-} AtkRelationData;
-
-static void
-free_action (AtkActionData *data, gpointer user_data)
-{
-  g_free (data->action_name);
-  g_string_free (data->description, TRUE);
-  g_free (data->context);
-  g_slice_free (AtkActionData, data);
-}
-
-static void
-free_relation (AtkRelationData *data, gpointer user_data)
-{
-  g_free (data->target);
-  g_slice_free (AtkRelationData, data);
-}
-
 static void
 gtk_widget_buildable_parser_finished (GtkBuildable *buildable,
                                      GtkBuilder   *builder)
 {
-  GSList *atk_relations;
-
-  atk_relations = g_object_get_qdata (G_OBJECT (buildable),
-                                     quark_builder_atk_relations);
-  if (atk_relations)
-    {
-      AtkObject *accessible;
-      AtkRelationSet *relation_set;
-      GSList *l;
-      GObject *target;
-      AtkObject *target_accessible;
-
-      accessible = gtk_widget_get_accessible (GTK_WIDGET (buildable));
-      relation_set = atk_object_ref_relation_set (accessible);
-
-      for (l = atk_relations; l; l = l->next)
-       {
-         AtkRelationData *relation = (AtkRelationData*)l->data;
-
-         target = _gtk_builder_lookup_object (builder, relation->target, relation->line, relation->col);
-         if (!target)
-           continue;
-         target_accessible = gtk_widget_get_accessible (GTK_WIDGET (target));
-         g_assert (target_accessible != NULL);
-
-         atk_relation_set_add_relation_by_type (relation_set, relation->type, target_accessible);
-       }
-      g_object_unref (relation_set);
-
-      g_slist_free_full (atk_relations, (GDestroyNotify) free_relation);
-      g_object_steal_qdata (G_OBJECT (buildable), quark_builder_atk_relations);
-    }
 }
 
-typedef struct
-{
-  GtkBuilder *builder;
-  GSList *actions;
-  GSList *relations;
-  AtkRole role;
-} AccessibilitySubParserData;
-
-static void
-accessibility_start_element (GtkBuildableParseContext  *context,
-                             const gchar               *element_name,
-                             const gchar              **names,
-                             const gchar              **values,
-                             gpointer                   user_data,
-                             GError                   **error)
-{
-  AccessibilitySubParserData *data = (AccessibilitySubParserData*)user_data;
-
-  if (strcmp (element_name, "relation") == 0)
-    {
-      gchar *target = NULL;
-      gchar *type = NULL;
-      AtkRelationData *relation;
-      AtkRelationType relation_type;
-
-      if (!_gtk_builder_check_parent (data->builder, context, "accessibility", error))
-        return;
-
-      if (!g_markup_collect_attributes (element_name, names, values, error,
-                                        G_MARKUP_COLLECT_STRING, "target", &target,
-                                        G_MARKUP_COLLECT_STRING, "type", &type,
-                                        G_MARKUP_COLLECT_INVALID))
-        {
-          _gtk_builder_prefix_error (data->builder, context, error);
-          return;
-        }
-
-      relation_type = atk_relation_type_for_name (type);
-      if (relation_type == ATK_RELATION_NULL)
-        {
-          g_set_error (error,
-                       GTK_BUILDER_ERROR,
-                       GTK_BUILDER_ERROR_INVALID_VALUE,
-                       "No such relation type: '%s'", type);
-          _gtk_builder_prefix_error (data->builder, context, error);
-          return;
-        }
-
-      relation = g_slice_new (AtkRelationData);
-      relation->target = g_strdup (target);
-      relation->type = relation_type;
-
-      data->relations = g_slist_prepend (data->relations, relation);
-    }
-  else if (strcmp (element_name, "action") == 0)
-    {
-      const gchar *action_name;
-      const gchar *description = NULL;
-      const gchar *msg_context = NULL;
-      gboolean translatable = FALSE;
-      AtkActionData *action;
-
-      if (!_gtk_builder_check_parent (data->builder, context, "accessibility", error))
-        return;
-
-      if (!g_markup_collect_attributes (element_name, names, values, error,
-                                        G_MARKUP_COLLECT_STRING, "action_name", &action_name,
-                                        G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "description", 
&description,
-                                        G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "comments", NULL,
-                                        G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "context", 
&msg_context,
-                                        G_MARKUP_COLLECT_BOOLEAN|G_MARKUP_COLLECT_OPTIONAL, "translatable", 
&translatable,
-                                        G_MARKUP_COLLECT_INVALID))
-        {
-          _gtk_builder_prefix_error (data->builder, context, error);
-          return;
-        }
-
-      action = g_slice_new (AtkActionData);
-      action->action_name = g_strdup (action_name);
-      action->description = g_string_new (description);
-      action->context = g_strdup (msg_context);
-      action->translatable = translatable;
-
-      data->actions = g_slist_prepend (data->actions, action);
-    }
-  else if (strcmp (element_name, "role") == 0)
-    {
-      const gchar *type;
-      AtkRole role;
-
-      if (!_gtk_builder_check_parent (data->builder, context, "accessibility", error))
-        return;
-
-      if (data->role != ATK_ROLE_INVALID)
-        {
-          g_set_error (error,
-                       GTK_BUILDER_ERROR,
-                       GTK_BUILDER_ERROR_INVALID_VALUE,
-                       "Duplicate accessibility role definition");
-          _gtk_builder_prefix_error (data->builder, context, error);
-          return;
-        }
-
-      if (!g_markup_collect_attributes (element_name, names, values, error,
-                                        G_MARKUP_COLLECT_STRING, "type", &type,
-                                        G_MARKUP_COLLECT_INVALID))
-        {
-          _gtk_builder_prefix_error (data->builder, context, error);
-          return;
-        }
-
-      role = atk_role_for_name (type);
-      if (role == ATK_ROLE_INVALID)
-        {
-          g_set_error (error,
-                       GTK_BUILDER_ERROR,
-                       GTK_BUILDER_ERROR_INVALID_VALUE,
-                       "No such role type: '%s'", type);
-          _gtk_builder_prefix_error (data->builder, context, error);
-          return;
-        }
-
-      data->role = role;
-    }
-  else if (strcmp (element_name, "accessibility") == 0)
-    {
-      if (!_gtk_builder_check_parent (data->builder, context, "object", error))
-        return;
-
-      if (!g_markup_collect_attributes (element_name, names, values, error,
-                                        G_MARKUP_COLLECT_INVALID, NULL, NULL,
-                                        G_MARKUP_COLLECT_INVALID))
-        _gtk_builder_prefix_error (data->builder, context, error);
-    }
-  else
-    {
-      _gtk_builder_error_unhandled_tag (data->builder, context,
-                                        "GtkWidget", element_name,
-                                        error);
-    }
-}
-
-static void
-accessibility_text (GtkBuildableParseContext  *context,
-                    const gchar               *text,
-                    gsize                      text_len,
-                    gpointer                   user_data,
-                    GError                   **error)
-{
-  AccessibilitySubParserData *data = (AccessibilitySubParserData*)user_data;
-
-  if (strcmp (gtk_buildable_parse_context_get_element (context), "action") == 0)
-    {
-      AtkActionData *action = data->actions->data;
-
-      g_string_append_len (action->description, text, text_len);
-    }
-}
-
-static const GtkBuildableParser accessibility_parser =
-  {
-    accessibility_start_element,
-    NULL,
-    accessibility_text,
-  };
-
 typedef struct
 {
   GtkBuilder *builder;
@@ -8819,19 +8345,6 @@ gtk_widget_buildable_custom_tag_start (GtkBuildable       *buildable,
                                        GtkBuildableParser *parser,
                                        gpointer           *parser_data)
 {
-  if (strcmp (tagname, "accessibility") == 0)
-    {
-      AccessibilitySubParserData *data;
-
-      data = g_slice_new0 (AccessibilitySubParserData);
-      data->builder = builder;
-
-      *parser = accessibility_parser;
-      *parser_data = data;
-
-      return TRUE;
-    }
-
   if (strcmp (tagname, "style") == 0)
     {
       StyleParserData *data;
@@ -8944,69 +8457,7 @@ gtk_widget_buildable_custom_finished (GtkBuildable *buildable,
                                       const gchar  *tagname,
                                       gpointer      user_data)
 {
-  if (strcmp (tagname, "accessibility") == 0)
-    {
-      AccessibilitySubParserData *a11y_data;
-
-      a11y_data = (AccessibilitySubParserData*)user_data;
-
-      if (a11y_data->actions)
-       {
-         AtkObject *accessible;
-         AtkAction *action;
-         gint i, n_actions;
-         GSList *l;
-
-         accessible = gtk_widget_get_accessible (GTK_WIDGET (buildable));
-
-          if (ATK_IS_ACTION (accessible))
-            {
-             action = ATK_ACTION (accessible);
-             n_actions = atk_action_get_n_actions (action);
-
-             for (l = a11y_data->actions; l; l = l->next)
-               {
-                 AtkActionData *action_data = (AtkActionData*)l->data;
-
-                 for (i = 0; i < n_actions; i++)
-                   if (strcmp (atk_action_get_name (action, i),
-                               action_data->action_name) == 0)
-                     break;
-
-                 if (i < n_actions)
-                    {
-                      const gchar *description;
-
-                      if (action_data->translatable && action_data->description->len)
-                        description = _gtk_builder_parser_translate (gtk_builder_get_translation_domain 
(builder),
-                                                                     action_data->context,
-                                                                     action_data->description->str);
-                      else
-                        description = action_data->description->str;
-
-                     atk_action_set_description (action, i, description);
-                    }
-                }
-           }
-          else
-            g_warning ("accessibility action on a widget that does not implement AtkAction");
-
-         g_slist_free_full (a11y_data->actions, (GDestroyNotify) free_action);
-       }
-
-      if (a11y_data->relations)
-       g_object_set_qdata (G_OBJECT (buildable), quark_builder_atk_relations,
-                           a11y_data->relations);
-
-      if (a11y_data->role != ATK_ROLE_INVALID)
-        {
-          AtkObject *accessible = gtk_widget_get_accessible (GTK_WIDGET (buildable));
-          atk_object_set_role (accessible, a11y_data->role);
-        }
-
-      g_slice_free (AccessibilitySubParserData, a11y_data);
-    }
-  else if (strcmp (tagname, "style") == 0)
+  if (strcmp (tagname, "style") == 0)
     {
       StyleParserData *style_data = (StyleParserData *)user_data;
       GSList *l;
@@ -9648,9 +9099,6 @@ gtk_widget_set_has_tooltip (GtkWidget *widget,
     {
       priv->has_tooltip = has_tooltip;
 
-      if (priv->accessible != NULL)
-        gtk_widget_accessible_notify_tooltip (GTK_WIDGET_ACCESSIBLE (priv->accessible));
-
       g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_HAS_TOOLTIP]);
     }
 }
@@ -10200,9 +9648,6 @@ gtk_widget_set_has_focus (GtkWidget *widget,
 
   priv->has_focus = has_focus;
 
-  if (priv->accessible != NULL)
-    gtk_widget_accessible_notify_focus (GTK_WIDGET_ACCESSIBLE (priv->accessible));
-
   g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_HAS_FOCUS]);
 }
 
@@ -12606,8 +12051,6 @@ void
 gtk_widget_update_orientation (GtkWidget      *widget,
                                GtkOrientation  orientation)
 {
-  GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
-
   g_return_if_fail (GTK_IS_WIDGET (widget));
 
   if (orientation == GTK_ORIENTATION_HORIZONTAL)
@@ -12620,7 +12063,4 @@ gtk_widget_update_orientation (GtkWidget      *widget,
       gtk_widget_add_css_class (widget, GTK_STYLE_CLASS_VERTICAL);
       gtk_widget_remove_css_class (widget, GTK_STYLE_CLASS_HORIZONTAL);
     }
-
-  if (priv->accessible != NULL)
-    gtk_widget_accessible_notify_orientation (GTK_WIDGET_ACCESSIBLE (priv->accessible));
 }
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index cf812b9b26..384619f2d2 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -36,7 +36,6 @@
 #include <gtk/gtkshortcut.h>
 #include <gtk/gtkshortcutaction.h>
 #include <gtk/gtktypes.h>
-#include <atk/atk.h>
 
 G_BEGIN_DECLS
 
@@ -183,8 +182,6 @@ struct _GtkWidget
  * @set_focus_child: Sets the focused child of a widget. Must chain up
  * @move_focus: Signal emitted when a change of focus is requested
  * @keynav_failed: Signal emitted if keyboard navigation fails.
- * @get_accessible: Returns the accessible object that describes the
- *   widget to an assistive technology.
  * @query_tooltip: Signal emitted when “has-tooltip” is %TRUE and the
  *   hover timeout has expired with the cursor hovering “above”
  *   widget; or emitted when widget got focus in keyboard mode.
@@ -251,10 +248,6 @@ struct _GtkWidgetClass
   gboolean (* keynav_failed)            (GtkWidget           *widget,
                                          GtkDirectionType     direction);
 
-  /* accessibility support
-   */
-  AtkObject *  (* get_accessible)     (GtkWidget       *widget);
-
   gboolean     (* query_tooltip)      (GtkWidget  *widget,
                                        gint        x,
                                        gint        y,
@@ -587,17 +580,6 @@ GDK_AVAILABLE_IN_ALL
 gboolean gtk_widget_compute_expand       (GtkWidget      *widget,
                                           GtkOrientation  orientation);
 
-/* Accessibility support */
-GDK_AVAILABLE_IN_ALL
-void             gtk_widget_class_set_accessible_type    (GtkWidgetClass     *widget_class,
-                                                          GType               type);
-GDK_AVAILABLE_IN_ALL
-void             gtk_widget_class_set_accessible_role    (GtkWidgetClass     *widget_class,
-                                                          AtkRole             role);
-GDK_AVAILABLE_IN_ALL
-AtkObject*       gtk_widget_get_accessible               (GtkWidget          *widget);
-
-
 /* Margin and alignment */
 GDK_AVAILABLE_IN_ALL
 GtkAlign gtk_widget_get_halign        (GtkWidget *widget);
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index d674b9867d..a21badafb0 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -170,8 +170,6 @@ struct _GtkWidgetPrivate
 
   GPtrArray *controllers;
 
-  AtkObject *accessible;
-
   /* Widget tree */
   GtkWidget *parent;
   GtkWidget *prev_sibling;
@@ -204,8 +202,6 @@ struct _GtkWidgetClassPrivate
 {
   GtkWidgetTemplate *template;
   GListStore *shortcuts;
-  GType accessible_type;
-  AtkRole accessible_role;
   GQuark css_name;
   GType layout_manager_type;
   GtkWidgetAction *actions;
@@ -232,8 +228,6 @@ void         _gtk_widget_remove_sizegroup      (GtkWidget    *widget,
                                                gpointer      group);
 GSList      *_gtk_widget_get_sizegroups        (GtkWidget    *widget);
 
-AtkObject *       _gtk_widget_peek_accessible              (GtkWidget *widget);
-
 void              _gtk_widget_set_has_default              (GtkWidget *widget,
                                                             gboolean   has_default);
 void              _gtk_widget_set_has_grab                 (GtkWidget *widget,
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index c2591b90c1..9e663e010b 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -65,7 +65,6 @@
 #include "gtkcssboxesimplprivate.h"
 #include "gtktooltipprivate.h"
 
-#include "a11y/gtkwindowaccessibleprivate.h"
 #include "inspector/window.h"
 
 #include "gdk/gdktextureprivate.h"
@@ -1114,8 +1113,6 @@ gtk_window_class_init (GtkWindowClass *klass)
   add_tab_bindings (widget_class, GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
   add_tab_bindings (widget_class, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
 
-  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_WINDOW_ACCESSIBLE);
-  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FRAME);
   gtk_widget_class_set_css_name (widget_class, I_("window"));
 }
 
@@ -6393,7 +6390,6 @@ _gtk_window_set_is_active (GtkWindow *window,
   priv->is_active = is_active;
 
   g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_IS_ACTIVE]);
-  _gtk_window_accessible_set_is_active (window, is_active);
 }
 
 /**
diff --git a/gtk/gtkwindowcontrols.c b/gtk/gtkwindowcontrols.c
index 78236cb43e..47978330ef 100644
--- a/gtk/gtkwindowcontrols.c
+++ b/gtk/gtkwindowcontrols.c
@@ -20,7 +20,6 @@
 
 #include "gtkwindowcontrols.h"
 
-#include "gtkaccessible.h"
 #include "gtkactionable.h"
 #include "gtkboxlayout.h"
 #include "gtkbutton.h"
@@ -277,7 +276,6 @@ update_window_buttons (GtkWindowControls *self)
     {
       GtkWidget *button = NULL;
       GtkWidget *image = NULL;
-      AtkObject *accessible;
 
       if (strcmp (tokens[i], "icon") == 0 &&
           is_sovereign_window)
@@ -305,10 +303,6 @@ update_window_buttons (GtkWindowControls *self)
           gtk_widget_set_can_focus (button, FALSE);
           gtk_actionable_set_action_name (GTK_ACTIONABLE (button),
                                           "window.minimize");
-
-          accessible = gtk_widget_get_accessible (button);
-          if (GTK_IS_ACCESSIBLE (accessible))
-            atk_object_set_name (accessible, _("Minimize"));
         }
       else if (strcmp (tokens[i], "maximize") == 0 &&
                resizable &&
@@ -326,10 +320,6 @@ update_window_buttons (GtkWindowControls *self)
           gtk_widget_set_can_focus (button, FALSE);
           gtk_actionable_set_action_name (GTK_ACTIONABLE (button),
                                           "window.toggle-maximized");
-
-          accessible = gtk_widget_get_accessible (button);
-          if (GTK_IS_ACCESSIBLE (accessible))
-            atk_object_set_name (accessible, maximized ? _("Restore") : _("Maximize"));
         }
       else if (strcmp (tokens[i], "close") == 0 &&
                deletable)
@@ -343,10 +333,6 @@ update_window_buttons (GtkWindowControls *self)
           gtk_widget_set_can_focus (button, FALSE);
           gtk_actionable_set_action_name (GTK_ACTIONABLE (button),
                                           "window.close");
-
-          accessible = gtk_widget_get_accessible (button);
-          if (GTK_IS_ACCESSIBLE (accessible))
-            atk_object_set_name (accessible, _("Close"));
         }
 
       if (button)
diff --git a/gtk/inspector/misc-info.c b/gtk/inspector/misc-info.c
index d00163eb8d..c744a6a09e 100644
--- a/gtk/inspector/misc-info.c
+++ b/gtk/inspector/misc-info.c
@@ -69,12 +69,6 @@ struct _GtkInspectorMiscInfoPrivate {
   GtkWidget *framerate;
   GtkWidget *framecount_row;
   GtkWidget *framecount;
-  GtkWidget *accessible_role_row;
-  GtkWidget *accessible_role;
-  GtkWidget *accessible_name_row;
-  GtkWidget *accessible_name;
-  GtkWidget *accessible_description_row;
-  GtkWidget *accessible_description;
   GtkWidget *mapped_row;
   GtkWidget *mapped;
   GtkWidget *realized_row;
@@ -321,8 +315,6 @@ update_info (gpointer data)
   if (GTK_IS_WIDGET (sl->priv->object))
     {
       GtkWidget *child;
-      AtkObject *accessible;
-      AtkRole role;
       GList *list, *l;
 
        while ((child = gtk_widget_get_first_child (sl->priv->mnemonic_label)))
@@ -344,16 +336,6 @@ update_info (gpointer data)
       g_list_free (list);
 
       gtk_widget_set_visible (sl->priv->tick_callback, gtk_widget_has_tick_callback (GTK_WIDGET 
(sl->priv->object)));
-
-      accessible = ATK_OBJECT (gtk_widget_get_accessible (GTK_WIDGET (sl->priv->object)));
-      role = atk_object_get_role (accessible);
-      gtk_label_set_text (GTK_LABEL (sl->priv->accessible_role), atk_role_get_name (role));
-      gtk_label_set_text (GTK_LABEL (sl->priv->accessible_name), atk_object_get_name (accessible));
-      gtk_label_set_text (GTK_LABEL (sl->priv->accessible_description), atk_object_get_description 
(accessible));
-      gtk_widget_set_visible (sl->priv->mapped, gtk_widget_get_mapped (GTK_WIDGET (sl->priv->object)));
-      gtk_widget_set_visible (sl->priv->realized, gtk_widget_get_realized (GTK_WIDGET (sl->priv->object)));
-      gtk_widget_set_visible (sl->priv->is_toplevel, GTK_IS_ROOT (sl->priv->object));
-      gtk_widget_set_visible (sl->priv->child_visible, gtk_widget_get_child_visible (GTK_WIDGET 
(sl->priv->object)));
     }
 
   update_surface (sl);
@@ -433,9 +415,6 @@ gtk_inspector_misc_info_set_object (GtkInspectorMiscInfo *sl,
       gtk_widget_show (sl->priv->baseline_row);
       gtk_widget_show (sl->priv->mnemonic_label_row);
       gtk_widget_show (sl->priv->tick_callback_row);
-      gtk_widget_show (sl->priv->accessible_role_row);
-      gtk_widget_show (sl->priv->accessible_name_row);
-      gtk_widget_show (sl->priv->accessible_description_row);
       gtk_widget_show (sl->priv->mapped_row);
       gtk_widget_show (sl->priv->realized_row);
       gtk_widget_show (sl->priv->is_toplevel_row);
@@ -455,9 +434,6 @@ gtk_inspector_misc_info_set_object (GtkInspectorMiscInfo *sl,
       gtk_widget_hide (sl->priv->allocated_size_row);
       gtk_widget_hide (sl->priv->baseline_row);
       gtk_widget_hide (sl->priv->tick_callback_row);
-      gtk_widget_hide (sl->priv->accessible_role_row);
-      gtk_widget_hide (sl->priv->accessible_name_row);
-      gtk_widget_hide (sl->priv->accessible_description_row);
       gtk_widget_hide (sl->priv->mapped_row);
       gtk_widget_hide (sl->priv->realized_row);
       gtk_widget_hide (sl->priv->is_toplevel_row);
@@ -576,12 +552,6 @@ gtk_inspector_misc_info_class_init (GtkInspectorMiscInfoClass *klass)
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, framecount);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, framerate_row);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, framerate);
-  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, accessible_role_row);
-  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, accessible_role);
-  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, accessible_name_row);
-  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, accessible_name);
-  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, 
accessible_description_row);
-  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, accessible_description);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, mapped_row);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, mapped);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, realized_row);
@@ -599,4 +569,3 @@ gtk_inspector_misc_info_class_init (GtkInspectorMiscInfoClass *klass)
 }
 
 // vim: set et sw=2 ts=2:
-
diff --git a/gtk/inspector/misc-info.ui b/gtk/inspector/misc-info.ui
index e19d381eb3..ca7fbc9639 100644
--- a/gtk/inspector/misc-info.ui
+++ b/gtk/inspector/misc-info.ui
@@ -487,97 +487,6 @@
                         </child>
                       </object>
                     </child>
-                    <child>
-                      <object class="GtkListBoxRow" id="accessible_role_row">
-                        <property name="activatable">0</property>
-                        <child>
-                          <object class="GtkBox">
-                            <property name="margin-start">10</property>
-                            <property name="margin-end">10</property>
-                            <property name="margin-top">10</property>
-                            <property name="margin-bottom">10</property>
-                            <property name="spacing">40</property>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="label" translatable="yes">Accessible Role</property>
-                                <property name="halign">start</property>
-                                <property name="valign">baseline</property>
-                                <property name="xalign">0</property>
-                                <property name="hexpand">1</property>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="accessible_role">
-                                <property name="halign">end</property>
-                                <property name="valign">baseline</property>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkListBoxRow" id="accessible_name_row">
-                        <property name="activatable">0</property>
-                        <child>
-                          <object class="GtkBox">
-                            <property name="margin-start">10</property>
-                            <property name="margin-end">10</property>
-                            <property name="margin-top">10</property>
-                            <property name="margin-bottom">10</property>
-                            <property name="spacing">40</property>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="label" translatable="yes">Accessible Name</property>
-                                <property name="halign">start</property>
-                                <property name="valign">baseline</property>
-                                <property name="xalign">0</property>
-                                <property name="hexpand">1</property>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="accessible_name">
-                                <property name="halign">end</property>
-                                <property name="valign">baseline</property>
-                                <property name="ellipsize">end</property>
-                                <property name="max-width-chars">50</property>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkListBoxRow" id="accessible_description_row">
-                        <property name="activatable">0</property>
-                        <child>
-                          <object class="GtkBox">
-                            <property name="margin-start">10</property>
-                            <property name="margin-end">10</property>
-                            <property name="margin-top">10</property>
-                            <property name="margin-bottom">10</property>
-                            <property name="spacing">40</property>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="label" translatable="yes">Accessible Description</property>
-                                <property name="halign">start</property>
-                                <property name="valign">baseline</property>
-                                <property name="xalign">0</property>
-                                <property name="hexpand">1</property>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="accessible_description">
-                                <property name="halign">end</property>
-                                <property name="valign">baseline</property>
-                                <property name="ellipsize">end</property>
-                                <property name="max-width-chars">50</property>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
                     <child>
                       <object class="GtkListBoxRow" id="mapped_row">
                         <property name="activatable">0</property>
diff --git a/gtk/meson.build b/gtk/meson.build
index bb08e506a8..e427d2b41f 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -1,5 +1,4 @@
 subdir('deprecated')
-subdir('a11y')
 subdir('inspector')
 
 gtk_cargs = [
@@ -148,7 +147,6 @@ gtk_public_sources = files([
   'gtkaboutdialog.c',
   'gtkaccelgroup.c',
   'gtkaccellabel.c',
-  'gtkaccessible.c',
   'gtkactionable.c',
   'gtkactionbar.c',
   'gtkadjustment.c',
@@ -435,7 +433,6 @@ gtk_public_headers = files([
   'gtkaboutdialog.h',
   'gtkaccelgroup.h',
   'gtkaccellabel.h',
-  'gtkaccessible.h',
   'gtkactionable.h',
   'gtkactionbar.h',
   'gtkadjustment.h',
@@ -684,7 +681,6 @@ gtk_public_headers = files([
   'gtkwindowcontrols.h',
   'gtkwindowgroup.h',
   'gtkwindowhandle.h',
-  'gtk-a11y.h',
   'gtk-autocleanups.h',
   'gtk.h',
 ])
@@ -880,7 +876,7 @@ gtkmarshalers = gnome.genmarshal('gtkmarshalers',
 gtkmarshal_h = gtkmarshalers[1]
 
 gtktypebuiltins = gnome.mkenums('gtktypebuiltins',
-                                sources: gtk_public_headers + gtk_deprecated_headers + a11y_headers,
+                                sources: gtk_public_headers + gtk_deprecated_headers,
                                 c_template: 'gtktypebuiltins.c.template',
                                 h_template: 'gtktypebuiltins.h.template',
                                 install_dir: join_paths(gtk_includedir, 'gtk-4.0/gtk'),
@@ -940,7 +936,6 @@ gtk_sources += [
   gtk_dbus_src,
   gtk_deprecated_sources,
   inspector_sources,
-  a11y_sources,
   gtkresources,
   gtkmarshalers,
   gtkprivatetypebuiltins,
@@ -959,7 +954,6 @@ gtk_deps = [
   cairo_dep,
   fontconfig_dep,
   pixbuf_dep,
-  atk_dep,
   epoxy_dep,
   libm,
   graphene_dep,
@@ -1010,8 +1004,6 @@ if win32_enabled
 
   win32res = import('windows').compile_resources(gtkwin32rc, include_directories : win32rcinc)
   gtk_sources += win32res
-else
-  gtk_deps += [ atkbridge_dep, ]
 endif
 
 # So we don't add these twice
@@ -1155,8 +1147,6 @@ if build_gir
     gtk_css_public_sources,
     gtk_deprecated_headers,
     gtk_deprecated_sources,
-    a11y_headers,
-    a11y_sources,
     gtktypebuiltins_h,
     gtkversion,
   ]
@@ -1176,13 +1166,12 @@ if build_gir
                                identifier_prefix: 'Gtk',
                                symbol_prefix: 'gtk',
                                export_packages: 'gtk4',
-                               includes: [ gdk_gir[0], gsk_gir[0], 'Atk-1.0', ],
+                               includes: [ gdk_gir[0], gsk_gir[0], ],
                                header: 'gtk/gtk.h',
                                install: true,
                                dependencies: gsk_gir_dep,
                                extra_args: gir_args + [
                                  '-DGTK_COMPILATION',
-                                 '--c-include=gtk/gtk-a11y.h',
                                ])
   gtk_dep_sources += gtk_gir
 endif
diff --git a/gtk/ui/gtkcoloreditor.ui b/gtk/ui/gtkcoloreditor.ui
index a66a29adb6..9c8b4da03a 100644
--- a/gtk/ui/gtkcoloreditor.ui
+++ b/gtk/ui/gtkcoloreditor.ui
@@ -66,11 +66,6 @@
             </child>
             <child>
               <object class="GtkEntry" id="entry">
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="entry-atkobject">
-                    <property name="AtkObject::accessible-name" translatable="yes">Color Name</property>
-                  </object>
-                </child>
                 <signal name="activate" handler="entry_apply" swapped="no"/>
                 <signal name="notify::has-focus" handler="entry_focus_changed" swapped="no"/>
                 <signal name="notify::text" handler="entry_text_changed" swapped="no"/>
@@ -157,11 +152,6 @@
             <property name="width-chars">2</property>
             <property name="max-width-chars">2</property>
             <property name="climb-rate">1</property>
-            <child internal-child="accessible">
-              <object class="AtkObject" id="a_entry-atkobject">
-                <property name="AtkObject::accessible-name" translatable="yes">Alpha</property>
-              </object>
-            </child>
             <layout>
               <property name="left-attach">1</property>
               <property name="top-attach">0</property>
@@ -198,11 +188,6 @@
             <property name="width-chars">2</property>
             <property name="max-width-chars">2</property>
             <property name="climb-rate">1</property>
-            <child internal-child="accessible">
-              <object class="AtkObject" id="h_entry-atkobject">
-                <property name="AtkObject::accessible-name" translatable="yes">Hue</property>
-              </object>
-            </child>
             <layout>
               <property name="left-attach">1</property>
               <property name="top-attach">0</property>
@@ -249,11 +234,6 @@
             <property name="width-chars">2</property>
             <property name="max-width-chars">2</property>
             <property name="climb-rate">1</property>
-            <child internal-child="accessible">
-              <object class="AtkObject" id="s_entry-atkobject">
-                <property name="AtkObject::accessible-name" translatable="yes">Saturation</property>
-              </object>
-            </child>
             <layout>
               <property name="left-attach">1</property>
               <property name="top-attach">0</property>
@@ -265,11 +245,6 @@
             <property name="width-chars">2</property>
             <property name="max-width-chars">2</property>
             <property name="climb-rate">1</property>
-            <child internal-child="accessible">
-              <object class="AtkObject" id="v_entry-atkobject">
-                <property name="AtkObject::accessible-name" translatable="yes">Value</property>
-              </object>
-            </child>
             <layout>
               <property name="left-attach">1</property>
               <property name="top-attach">1</property>
diff --git a/gtk/ui/gtkfilechooserwidget.ui b/gtk/ui/gtkfilechooserwidget.ui
index 60eab69a72..4ad9078fb2 100644
--- a/gtk/ui/gtkfilechooserwidget.ui
+++ b/gtk/ui/gtkfilechooserwidget.ui
@@ -142,11 +142,6 @@
                                           <object class="GtkTreeView" id="browse_files_tree_view">
                                             <property name="has-tooltip">1</property>
                                             <property name="enable-search">0</property>
-                                            <child internal-child="accessible">
-                                              <object class="AtkObject" 
id="browse_files_tree_view-atkobject">
-                                                <property name="AtkObject::accessible-name" 
translatable="yes">Files</property>
-                                              </object>
-                                            </child>
                                             <child>
                                               <object class="GtkGestureLongPress">
                                                 <property name="touch-only">1</property>
diff --git a/gtk/ui/gtkprintunixdialog.ui b/gtk/ui/gtkprintunixdialog.ui
index 6d086c9da8..775cdc9bce 100644
--- a/gtk/ui/gtkprintunixdialog.ui
+++ b/gtk/ui/gtkprintunixdialog.ui
@@ -202,9 +202,6 @@
                                     <attributes>
                                       <attribute name="weight" value="bold"></attribute>
                                     </attributes>
-                                    <accessibility>
-                                      <relation type="label-for" target="range_table"/>
-                                    </accessibility>
                                   </object>
                                 </child>
                                 <child>
@@ -270,22 +267,12 @@
  e.g. 1–3, 7, 11</property>
                                         <property name="activates-default">1</property>
                                         <signal name="notify::has-focus" 
handler="page_range_entry_focus_changed" swapped="no"/>
-                                        <child internal-child="accessible">
-                                          <object class="AtkObject" id="page_range_entry-atkobject">
-                                            <property name="AtkObject::accessible-name" 
translatable="yes">Pages</property>
-                                            <property name="AtkObject::accessible-description" 
translatable="yes">Specify one or more page ranges,
- e.g. 1–3, 7, 11</property>
-                                          </object>
-                                        </child>
                                         <layout>
                                           <property name="left-attach">1</property>
                                           <property name="top-attach">3</property>
                                         </layout>
                                       </object>
                                     </child>
-                                    <accessibility>
-                                      <relation type="labelled-by" target="label_widget1"/>
-                                    </accessibility>
                                   </object>
                                 </child>
                               </object>
@@ -303,9 +290,6 @@
                                     <attributes>
                                       <attribute name="weight" value="bold"></attribute>
                                     </attributes>
-                                    <accessibility>
-                                      <relation type="label-for" target="grid1"/>
-                                    </accessibility>
                                   </object>
                                 </child>
                                 <child>
@@ -371,9 +355,6 @@
                                         </layout>
                                       </object>
                                     </child>
-                                    <accessibility>
-                                      <relation type="labelled-by" target="label_widget2"/>
-                                    </accessibility>
                                   </object>
                                 </child>
                               </object>
@@ -415,9 +396,6 @@
                                     <attributes>
                                       <attribute name="weight" value="bold"></attribute>
                                     </attributes>
-                                    <accessibility>
-                                      <relation type="label-for" target="grid2"/>
-                                    </accessibility>
                                   </object>
                                 </child>
                                 <child>
@@ -562,9 +540,6 @@
                                         </layout>
                                       </object>
                                     </child>
-                                    <accessibility>
-                                      <relation type="labelled-by" target="label_widget3"/>
-                                    </accessibility>
                                   </object>
                                 </child>
                               </object>
@@ -582,9 +557,6 @@
                                     <attributes>
                                       <attribute name="weight" value="bold"></attribute>
                                     </attributes>
-                                    <accessibility>
-                                      <relation type="label-for" target="grid3"/>
-                                    </accessibility>
                                   </object>
                                 </child>
                                 <child>
@@ -715,9 +687,6 @@
                                         </layout>
                                       </object>
                                     </child>
-                                    <accessibility>
-                                      <relation type="labelled-by" target="label_widget4"/>
-                                    </accessibility>
                                   </object>
                                 </child>
                               </object>
@@ -766,9 +735,6 @@
                                 <attributes>
                                   <attribute name="weight" value="bold"></attribute>
                                 </attributes>
-                                <accessibility>
-                                  <relation type="label-for" target="grid5"/>
-                                </accessibility>
                               </object>
                             </child>
                             <child>
@@ -818,9 +784,6 @@
                                     </layout>
                                   </object>
                                 </child>
-                                <accessibility>
-                                  <relation type="labelled-by" target="label_widget5"/>
-                                </accessibility>
                               </object>
                             </child>
                             <layout>
@@ -841,9 +804,6 @@
                                 <attributes>
                                   <attribute name="weight" value="bold"></attribute>
                                 </attributes>
-                                <accessibility>
-                                  <relation type="label-for" target="grid6"/>
-                                </accessibility>
                               </object>
                             </child>
                             <child>
@@ -891,13 +851,6 @@
  e.g. 15∶30, 2∶35 pm, 14∶15∶20, 11∶46∶30 am, 4 pm</property>
                                     <property name="tooltip-text" translatable="yes" comments="Ability to 
parse the am/pm format depends on actual locale. You can remove the am/pm values below for your locale if 
they are not supported.">Specify the time of print,
  e.g. 15∶30, 2∶35 pm, 14∶15∶20, 11∶46∶30 am, 4 pm</property>
-                                    <child internal-child="accessible">
-                                      <object class="AtkObject" id="print_at_entry-atkobject">
-                                        <property name="AtkObject::accessible-name" translatable="yes">Time 
of print</property>
-                                        <property name="AtkObject::accessible-description" 
translatable="yes">Specify the time of print,
- e.g. 15∶30, 2∶35 pm, 14∶15∶20, 11∶46∶30 am, 4 pm</property>
-                                      </object>
-                                    </child>
                                     <signal name="changed" handler="update_print_at_option" 
object="GtkPrintUnixDialog" swapped="yes"/>
                                     <layout>
                                       <property name="left-attach">1</property>
@@ -922,9 +875,6 @@
                                     </layout>
                                   </object>
                                 </child>
-                                <accessibility>
-                                  <relation type="labelled-by" target="label_widget6"/>
-                                </accessibility>
                               </object>
                             </child>
                             <layout>
@@ -945,9 +895,6 @@
                                 <attributes>
                                   <attribute name="weight" value="bold"></attribute>
                                 </attributes>
-                                <accessibility>
-                                  <relation type="label-for" target="grid7"/>
-                                </accessibility>
                               </object>
                             </child>
                             <child>
@@ -997,9 +944,6 @@
                                     </layout>
                                   </object>
                                 </child>
-                                <accessibility>
-                                  <relation type="labelled-by" target="label_widget7"/>
-                                </accessibility>
                               </object>
                             </child>
                             <layout>
diff --git a/gtk/ui/gtkvolumebutton.ui b/gtk/ui/gtkvolumebutton.ui
index 3c658df0c5..7b065d251e 100644
--- a/gtk/ui/gtkvolumebutton.ui
+++ b/gtk/ui/gtkvolumebutton.ui
@@ -13,32 +13,14 @@
 audio-volume-high
 audio-volume-low
 audio-volume-medium</property>
-    <child internal-child="accessible">
-      <object class="AtkObject" id="GtkVolumeButton-atkobject">
-        <property name="AtkObject::accessible-name" translatable="yes">Volume</property>
-        <property name="AtkObject::accessible-description" translatable="yes">Turns volume up or 
down</property>
-      </object>
-    </child>
     <signal name="query-tooltip" handler="cb_query_tooltip" swapped="no"/>
     <signal name="value-changed" handler="cb_value_changed" swapped="no"/>
     <child internal-child="plus_button">
       <object class="GtkButton" id="scalebutton-plus_button1">
-        <child internal-child="accessible">
-          <object class="AtkObject" id="scalebutton-plus_button1-atkobject">
-            <property name="AtkObject::accessible-name" translatable="yes">Volume Up</property>
-            <property name="AtkObject::accessible-description" translatable="yes">Increases the 
volume</property>
-          </object>
-        </child>
       </object>
     </child>
     <child internal-child="minus_button">
       <object class="GtkButton" id="scalebutton-minus_button1">
-        <child internal-child="accessible">
-          <object class="AtkObject" id="scalebutton-minus_button1-atkobject">
-            <property name="AtkObject::accessible-name" translatable="yes">Volume Down</property>
-            <property name="AtkObject::accessible-description" translatable="yes">Decreases the 
volume</property>
-          </object>
-        </child>
       </object>
     </child>
   </template>
diff --git a/meson.build b/meson.build
index 1b3358fe70..97ab2965fd 100644
--- a/meson.build
+++ b/meson.build
@@ -29,7 +29,6 @@ endif
 glib_req           = '>= @0@.@1@.@2@'.format(glib_major_req, glib_minor_req, glib_micro_req)
 pango_req          = '>= 1.45.0'
 fribidi_req        = '>= 0.19.7'
-atk_req            = '>= 2.15.1'
 cairo_req          = '>= 1.14.0'
 gdk_pixbuf_req     = '>= 2.30.0'
 introspection_req  = '>= 1.39.0'
@@ -368,7 +367,6 @@ pixbuf_dep     = dependency('gdk-pixbuf-2.0', version: gdk_pixbuf_req,
                             fallback : ['gdk-pixbuf', 'gdkpixbuf_dep'])
 epoxy_dep      = dependency('epoxy', version: epoxy_req,
                             fallback: ['libepoxy', 'libepoxy_dep'])
-atk_dep        = dependency('atk', version: atk_req)
 harfbuzz_dep   = dependency('harfbuzz', version: '>= 0.9', required: false)
 xkbdep         = dependency('xkbcommon', version: xkbcommon_req, required: wayland_enabled)
 graphene_dep   = dependency('graphene-gobject-1.0', version: graphene_req,
@@ -376,7 +374,6 @@ graphene_dep   = dependency('graphene-gobject-1.0', version: graphene_req,
 iso_codes_dep  = dependency('iso-codes', required: false)
 
 fontconfig_dep = [] # only used in x11 backend
-atkbridge_dep  = [] # only used in x11 backend
 
 if os_win32
   platform_gio_dep = giowin32_dep
@@ -474,8 +471,6 @@ cdata.set('HAVE_CAIRO_SCRIPT_INTERPRETER', cairo_csi_dep.found())
 cdata.set('HAVE_HARFBUZZ', harfbuzz_dep.found())
 cdata.set('HAVE_PANGOFT', pangoft_dep.found())
 
-atk_pkgs = ['atk']
-
 wayland_pkgs = []
 if wayland_enabled
   wlclientdep    = dependency('wayland-client', version:  wayland_req)
@@ -510,7 +505,6 @@ if x11_enabled
   xfixes_dep     = dependency('xfixes', required: false)
   xcomposite_dep = dependency('xcomposite', required: false)
   fontconfig_dep = dependency('fontconfig')
-  atkbridge_dep  = dependency('atk-bridge-2.0', version: atk_req)
 
   backend_immodules += ['xim']
 
@@ -529,8 +523,6 @@ if x11_enabled
     x11_pkgs += ['xcomposite']
   endif
 
-  atk_pkgs += ['atk-bridge-2.0']
-
   cdata.set('HAVE_XCURSOR', xcursor_dep.found())
   cdata.set('HAVE_XDAMAGE', xdamage_dep.found())
   cdata.set('HAVE_XCOMPOSITE', xcomposite_dep.found())
@@ -765,8 +757,7 @@ pkgconf.set('GDK_PACKAGES', gdk_packages)
 pkgconf.set('GSK_PACKAGES',
             ' '.join([ 'graphene-gobject-1.0', graphene_req ]))
 pkgconf.set('GTK_PACKAGES',
-            ' '.join([ 'atk', atk_req,
-                       'gio-2.0', glib_req ]))
+            ' '.join([ 'gio-2.0', glib_req ]))
 
 # Requires.private
 pc_gdk_extra_libs += cairo_libs
@@ -777,7 +768,7 @@ pkgconf.set('GDK_PRIVATE_PACKAGES',
                        'epoxy', epoxy_req ] + x11_pkgs + wayland_pkgs + cairo_backends))
 pkgconf.set('GSK_PRIVATE_PACKAGES', '') # all already in GDK_PRIVATE_PACKAGES
 pangoft2_pkgs = (wayland_enabled or x11_enabled) ? ['pangoft2'] : []
-pkgconf.set('GTK_PRIVATE_PACKAGES', ' '.join(atk_pkgs + pangoft2_pkgs))
+pkgconf.set('GTK_PRIVATE_PACKAGES', ' '.join(pangoft2_pkgs))
 
 pkgconf.set('GDK_EXTRA_LIBS', ' '.join(pc_gdk_extra_libs))
 pkgconf.set('GSK_EXTRA_LIBS', '')
diff --git a/tests/testlist3.c b/tests/testlist3.c
index f3f6b3b0dd..3353bdb503 100644
--- a/tests/testlist3.c
+++ b/tests/testlist3.c
@@ -101,12 +101,6 @@ on_selected_children_changed (GtkListBox *self)
   g_message ("Selection changed");
 }
 
-static void
-a11y_selection_changed (AtkObject *obj)
-{
-  g_message ("Accessible selection changed");
-}
-
 static void
 selection_mode_changed (GtkComboBox *combo, gpointer data)
 {
@@ -152,7 +146,6 @@ main (int argc, char *argv[])
 
   g_signal_connect (list, "row-activated", G_CALLBACK (on_row_activated), NULL);
   g_signal_connect (list, "selected-rows-changed", G_CALLBACK (on_selected_children_changed), NULL);
-  g_signal_connect (gtk_widget_get_accessible (list), "selection-changed", G_CALLBACK 
(a11y_selection_changed), NULL);
 
   sw = gtk_scrolled_window_new ();
   gtk_widget_set_hexpand (sw, TRUE);
diff --git a/testsuite/css/nodes/buttons.ui b/testsuite/css/nodes/buttons.ui
index 65151e9b69..3b89c6dd60 100644
--- a/testsuite/css/nodes/buttons.ui
+++ b/testsuite/css/nodes/buttons.ui
@@ -66,11 +66,6 @@
           <object class="GtkSwitch" id="button6">
             <property name="can_focus">1</property>
             <property name="receives_default">1</property>
-            <child internal-child="accessible">
-              <object class="AtkObject" id="button6-accessible">
-                <property name="accessible-name">Test switch</property>
-              </object>
-            </child>
             <layout>
               <property name="left_attach">5</property>
               <property name="top_attach">0</property>
diff --git a/testsuite/gtk/builder.c b/testsuite/gtk/builder.c
index 18b29e2078..25fe430c31 100644
--- a/testsuite/gtk/builder.c
+++ b/testsuite/gtk/builder.c
@@ -1432,22 +1432,10 @@ test_widget (void)
     "        <property name=\"orientation\">vertical</property>"
     "        <child>"
     "          <object class=\"GtkLabel\" id=\"label1\">"
-    "            <child internal-child=\"accessible\">"
-    "              <object class=\"AtkObject\" id=\"a11y-label1\">"
-    "                <property name=\"AtkObject::accessible-name\">A Label</property>"
-    "              </object>"
-    "            </child>"
-    "            <accessibility>"
-    "              <relation target=\"button1\" type=\"label-for\"/>"
-    "            </accessibility>"
     "          </object>"
     "        </child>"
     "        <child>"
     "          <object class=\"GtkButton\" id=\"button1\">"
-    "            <accessibility>"
-    "              <action action_name=\"click\" description=\"Sliff\"/>"
-    "              <action action_name=\"clack\" translatable=\"yes\">Sniff</action>"
-    "            </accessibility>"
     "          </object>"
     "        </child>"
     "      </object>"
@@ -1460,19 +1448,12 @@ test_widget (void)
     "    <child>"
     "      <object class=\"GtkLabel\" id=\"label1\">"
     "         <property name=\"label\">Thelabel</property>"
-    "         <accessibility>"
-    "            <role type=\"static\"/>"
-    "         </accessibility>"
     "      </object>"
     "    </child>"
     "  </object>"
    "</interface>";
   GtkBuilder *builder;
   GObject *window1, *button1, *label1;
-  AtkObject *accessible;
-  AtkRelationSet *relation_set;
-  AtkRelation *relation;
-  char *name;
   
   builder = builder_new_from_string (buffer, -1, NULL);
   button1 = gtk_builder_get_object (builder, "button1");
@@ -1494,28 +1475,14 @@ test_widget (void)
 
   window1 = gtk_builder_get_object (builder, "window1");
   label1 = gtk_builder_get_object (builder, "label1");
+  g_assert (GTK_IS_LABEL (label1));
 
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (label1));
-  relation_set = atk_object_ref_relation_set (accessible);
-  g_assert_cmpint (atk_relation_set_get_n_relations (relation_set), ==, 1);
-  relation = atk_relation_set_get_relation (relation_set, 0);
-  g_assert (relation != NULL);
-  g_assert_true (ATK_IS_RELATION (relation));
-  g_assert_cmpint (atk_relation_get_relation_type (relation), !=, ATK_RELATION_LABELLED_BY);
-  g_object_unref (relation_set);
-
-  g_object_get (G_OBJECT (accessible), "accessible-name", &name, NULL);
-  g_assert_cmpstr (name, ==, "A Label");
-  g_free (name);
-  
   gtk_window_destroy (GTK_WINDOW (window1));
   g_object_unref (builder);
 
   builder = builder_new_from_string (buffer4, -1, NULL);
   label1 = gtk_builder_get_object (builder, "label1");
-
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (label1));
-  g_assert (atk_object_get_role (accessible) == ATK_ROLE_STATIC);
+  g_assert (GTK_IS_LABEL (label1));
 
   g_object_unref (builder);
 }
diff --git a/testsuite/gtk/focus-chain/widget-factory.ui b/testsuite/gtk/focus-chain/widget-factory.ui
index ff594c9eca..bf09b8732b 100644
--- a/testsuite/gtk/focus-chain/widget-factory.ui
+++ b/testsuite/gtk/focus-chain/widget-factory.ui
@@ -2908,9 +2908,6 @@ bad things might happen.</property>
             <property name="margin-top">20</property>
             <property name="margin-bottom">20</property>
             <property name="label" translatable="yes">To free the princess, you have to slay the 
dragon.</property>
-            <accessibility>
-              <role type="static"/>
-            </accessibility>
           </object>
         </child>
       </object>
@@ -3110,9 +3107,6 @@ bad things might happen.</property>
           <object class="GtkLabel" id="title_label">
             <property name="label">Title:</property>
             <property name="xalign">1</property>
-            <accessibility>
-              <relation type="label-for" target="open_popover_entry"/>
-            </accessibility>
           </object>
         </child>
         <child>
@@ -3120,9 +3114,6 @@ bad things might happen.</property>
             <property name="valign">start</property>
             <property name="label">Description:</property>
             <property name="xalign">1</property>
-            <accessibility>
-              <relation type="label-for" target="open_popover_textview"/>
-            </accessibility>
             <layout>
               <property name="top-attach">1</property>
             </layout>
@@ -3138,9 +3129,6 @@ bad things might happen.</property>
             <property name="max-content-width">100</property>
             <child>
               <object class="GtkTextView" id="open_popover_textview">
-                <accessibility>
-                  <relation type="labelled-by" target="description_label"/>
-                </accessibility>
               </object>
             </child>
             <layout>
@@ -3153,9 +3141,6 @@ bad things might happen.</property>
         <child>
           <object class="GtkEntry" id="open_popover_entry">
             <property name="activates-default">1</property>
-            <accessibility>
-              <relation type="labelled-by" target="title_label"/>
-            </accessibility>
             <layout>
               <property name="left-attach">1</property>
               <property name="column-span">2</property>
@@ -3234,9 +3219,6 @@ bad things might happen.</property>
     <child>
       <object class="GtkLabel">
         <property name="label">No updates at this time</property>
-        <accessibility>
-          <role type="static"/>
-        </accessibility>
       </object>
     </child>
   </object>
@@ -3245,9 +3227,6 @@ bad things might happen.</property>
     <child>
       <object class="GtkLabel">
         <property name="label">You&apos;re in too deep!</property>
-        <accessibility>
-          <role type="static"/>
-        </accessibility>
       </object>
     </child>
   </object>
diff --git a/testsuite/gtk/focus-chain/widget-factory2.ui b/testsuite/gtk/focus-chain/widget-factory2.ui
index f0456fb3ed..abe48c0222 100644
--- a/testsuite/gtk/focus-chain/widget-factory2.ui
+++ b/testsuite/gtk/focus-chain/widget-factory2.ui
@@ -2909,9 +2909,6 @@ bad things might happen.</property>
             <property name="margin-top">20</property>
             <property name="margin-bottom">20</property>
             <property name="label" translatable="yes">To free the princess, you have to slay the 
dragon.</property>
-            <accessibility>
-              <role type="static"/>
-            </accessibility>
           </object>
         </child>
       </object>
@@ -3111,9 +3108,6 @@ bad things might happen.</property>
           <object class="GtkLabel" id="title_label">
             <property name="label">Title:</property>
             <property name="xalign">1</property>
-            <accessibility>
-              <relation type="label-for" target="open_popover_entry"/>
-            </accessibility>
           </object>
         </child>
         <child>
@@ -3121,9 +3115,6 @@ bad things might happen.</property>
             <property name="valign">start</property>
             <property name="label">Description:</property>
             <property name="xalign">1</property>
-            <accessibility>
-              <relation type="label-for" target="open_popover_textview"/>
-            </accessibility>
             <layout>
               <property name="top-attach">1</property>
             </layout>
@@ -3139,9 +3130,6 @@ bad things might happen.</property>
             <property name="max-content-width">100</property>
             <child>
               <object class="GtkTextView" id="open_popover_textview">
-                <accessibility>
-                  <relation type="labelled-by" target="description_label"/>
-                </accessibility>
               </object>
             </child>
             <layout>
@@ -3154,9 +3142,6 @@ bad things might happen.</property>
         <child>
           <object class="GtkEntry" id="open_popover_entry">
             <property name="activates-default">1</property>
-            <accessibility>
-              <relation type="labelled-by" target="title_label"/>
-            </accessibility>
             <layout>
               <property name="left-attach">1</property>
               <property name="column-span">2</property>
@@ -3235,9 +3220,6 @@ bad things might happen.</property>
     <child>
       <object class="GtkLabel">
         <property name="label">No updates at this time</property>
-        <accessibility>
-          <role type="static"/>
-        </accessibility>
       </object>
     </child>
   </object>
@@ -3246,9 +3228,6 @@ bad things might happen.</property>
     <child>
       <object class="GtkLabel">
         <property name="label">You&apos;re in too deep!</property>
-        <accessibility>
-          <role type="static"/>
-        </accessibility>
       </object>
     </child>
   </object>
diff --git a/testsuite/gtk/focus-chain/widget-factory3.ui b/testsuite/gtk/focus-chain/widget-factory3.ui
index c4e4b679c3..02c485c4b7 100644
--- a/testsuite/gtk/focus-chain/widget-factory3.ui
+++ b/testsuite/gtk/focus-chain/widget-factory3.ui
@@ -2909,9 +2909,6 @@ bad things might happen.</property>
             <property name="margin-top">20</property>
             <property name="margin-bottom">20</property>
             <property name="label" translatable="yes">To free the princess, you have to slay the 
dragon.</property>
-            <accessibility>
-              <role type="static"/>
-            </accessibility>
           </object>
         </child>
       </object>
@@ -3111,9 +3108,6 @@ bad things might happen.</property>
           <object class="GtkLabel" id="title_label">
             <property name="label">Title:</property>
             <property name="xalign">1</property>
-            <accessibility>
-              <relation type="label-for" target="open_popover_entry"/>
-            </accessibility>
           </object>
         </child>
         <child>
@@ -3121,9 +3115,6 @@ bad things might happen.</property>
             <property name="valign">start</property>
             <property name="label">Description:</property>
             <property name="xalign">1</property>
-            <accessibility>
-              <relation type="label-for" target="open_popover_textview"/>
-            </accessibility>
             <layout>
               <property name="top-attach">1</property>
             </layout>
@@ -3139,9 +3130,6 @@ bad things might happen.</property>
             <property name="max-content-width">100</property>
             <child>
               <object class="GtkTextView" id="open_popover_textview">
-                <accessibility>
-                  <relation type="labelled-by" target="description_label"/>
-                </accessibility>
               </object>
             </child>
             <layout>
@@ -3154,9 +3142,6 @@ bad things might happen.</property>
         <child>
           <object class="GtkEntry" id="open_popover_entry">
             <property name="activates-default">1</property>
-            <accessibility>
-              <relation type="labelled-by" target="title_label"/>
-            </accessibility>
             <layout>
               <property name="left-attach">1</property>
               <property name="column-span">2</property>
@@ -3235,9 +3220,6 @@ bad things might happen.</property>
     <child>
       <object class="GtkLabel">
         <property name="label">No updates at this time</property>
-        <accessibility>
-          <role type="static"/>
-        </accessibility>
       </object>
     </child>
   </object>
@@ -3246,9 +3228,6 @@ bad things might happen.</property>
     <child>
       <object class="GtkLabel">
         <property name="label">You&apos;re in too deep!</property>
-        <accessibility>
-          <role type="static"/>
-        </accessibility>
       </object>
     </child>
   </object>
diff --git a/testsuite/gtk/meson.build b/testsuite/gtk/meson.build
index 8f1828aa0c..a2491a5c70 100644
--- a/testsuite/gtk/meson.build
+++ b/testsuite/gtk/meson.build
@@ -17,7 +17,6 @@ endif
 #  - 'suites': (array): additional test suites
 tests = [
   { 'name': 'accel' },
-  { 'name': 'accessible' },
   { 'name': 'action' },
   { 'name': 'adjustment' },
   { 'name': 'bitset' },
diff --git a/testsuite/gtk/notify.c b/testsuite/gtk/notify.c
index ddd806948d..02ba9478b9 100644
--- a/testsuite/gtk/notify.c
+++ b/testsuite/gtk/notify.c
@@ -373,8 +373,7 @@ test_type (gconstpointer data)
     return;
 
   /* non-GTK+ */
-  if (g_str_equal (g_type_name (type), "AtkObject") ||
-      g_str_equal (g_type_name (type), "GdkPixbufSimpleAnim"))
+  if (g_str_equal (g_type_name (type), "GdkPixbufSimpleAnim"))
     return;
 
   /* Deprecated, not getting fixed */
@@ -505,8 +504,7 @@ test_type (gconstpointer data)
         continue;
 
       /* non-GTK+ */
-      if (g_str_equal (g_type_name (pspec->owner_type), "AtkObject") ||
-          g_str_equal (g_type_name (pspec->owner_type), "GdkPixbufSimpleAnim") || 
+      if (g_str_equal (g_type_name (pspec->owner_type), "GdkPixbufSimpleAnim") || 
           g_str_equal (g_type_name (pspec->owner_type), "GMountOperation")) 
         continue;
 
diff --git a/testsuite/meson.build b/testsuite/meson.build
index 47ce9a6134..64961f5dc7 100644
--- a/testsuite/meson.build
+++ b/testsuite/meson.build
@@ -42,6 +42,5 @@ subdir('gdk')
 subdir('gsk')
 subdir('gtk')
 subdir('css')
-#subdir('a11y')
 subdir('tools')
 subdir('reftests')
diff --git a/testsuite/tools/simplify-data-3to4/grid.expected 
b/testsuite/tools/simplify-data-3to4/grid.expected
index 5005cc0725..f14ad0d248 100644
--- a/testsuite/tools/simplify-data-3to4/grid.expected
+++ b/testsuite/tools/simplify-data-3to4/grid.expected
@@ -65,11 +65,6 @@
         <child>
           <object class="GtkSwitch" id="button6">
             <property name="receives_default">1</property>
-            <child internal-child="accessible">
-              <object class="AtkObject" id="button6-accessible">
-                <property name="accessible-name">Test switch</property>
-              </object>
-            </child>
             <layout>
               <property name="left_attach">5</property>
               <property name="top_attach">0</property>
diff --git a/testsuite/tools/simplify-data-3to4/grid.ui b/testsuite/tools/simplify-data-3to4/grid.ui
index 29a723c0a7..30c0314937 100644
--- a/testsuite/tools/simplify-data-3to4/grid.ui
+++ b/testsuite/tools/simplify-data-3to4/grid.ui
@@ -75,11 +75,6 @@
             <property name="active">False</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
-            <child internal-child="accessible">
-              <object class="AtkObject" id="button6-accessible">
-                <property name="accessible-name">Test switch</property>
-              </object>
-            </child>
           </object>
           <packing>
             <property name="left_attach">5</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]