AtkSocket & AtkPlug example
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is a small C example to test how to work with the AtkSocket and
AtkPlug classes from ATK, based on the one written in C# by Mike
Gorse, which can be downloaded from here:

An important requirement for the communication between the socket and
the plug to work is to have at-spi2 installed (and the registry daemon
running), as well as the at-spi2-atk bridge, which is what actually
implements the atk_socket_embed() and the atk_plug_get_id() methods-

The way I'm currently testing is, basically by:

  1) Compile the socket and the plug test applications separately:

    $ cd socket/
    $ make

    $ cd plug/
    $ make

  2) Ensure the at-spi2 registry daemon is running before executing
  the test applications. I do it manually from my jhbuild environment:

    $ jhbuild run /opt/gnome3/libexec/at-spi-bus-launcher --launch-inmediately
    $ jhbuild run /opt/gnome3/libexec/at-spi2-registryd

  ...but perhaps you already have it running so you can skip this step.

  3) Run the socket and the plug test applications, in separate
  terminals, loading the needed GTK modules for a11y stuff:

    $ GTK_MODULES=atk-bridge socket/ta-socket

    $ GTK_MODULES=atk-bridge plug/ta-plug

  4) Grab the Plug ID shown by the ta-plug application, paste it in
  the empty entry in the ta-socket application and press "Connect".

  5) Open Accerciser and you should see two applications like this::

       ta-plug: will show the AtkObject's for all its widgets as every
       -------- regular GTK application does.

     ta-socket: will show the AtkObject's for all its widgets as
     ---------- every regular GTK application does but also, hanging
                as a child for the panel named as "The Socket", the
                full accessible hierarchy from ta-plug, starting in
                the AtkObject named as "The Plug".