a11y-tools
Recipe card from the charly-selkies plugin (Images — the deployable catalog).
a11y-tools - AT-SPI2 Accessibility Introspection
Section titled “a11y-tools - AT-SPI2 Accessibility Introspection”Overview
Section titled “Overview”Provides Python AT-SPI2 bindings for querying the accessibility tree of GTK, Qt, and Chrome applications. Enables element-based automation — find buttons, menus, and text fields by name/role instead of pixel coordinates.
Used by the wl: atspi verb.
Candy Definition
Section titled “Candy Definition”require: - dbus
rpm: packages: - python3-pyatspi - python3-gobjectKey Properties
Section titled “Key Properties”| Property | Value |
|---|---|
| Depends | dbus (AT-SPI2 requires D-Bus session bus) |
| Packages | python3-pyatspi, python3-gobject |
| Python | Uses /usr/bin/python3 (system Python 3.14, NOT pixi’s Python 3.13) |
Important: System Python Required
Section titled “Important: System Python Required”The RPM packages install to system Python (/usr/bin/python3). Containers with pixi environments have pixi’s python3 first in PATH, but pixi’s python3 doesn’t see system RPM packages. The wl: atspi verb explicitly uses /usr/bin/python3 to ensure AT-SPI2 bindings are found.
What You Can Query
Section titled “What You Can Query”- tree — Full accessibility tree (app name, window title, widget name/role/position/actions)
- find — Search by name, role, or
name:rolepattern - click — Find an element and invoke its click/press/activate action
Chrome Accessibility
Section titled “Chrome Accessibility”Chrome needs --force-renderer-accessibility flag to expose DOM elements via AT-SPI2. The labwc/autostart in selkies-desktop includes this flag.
Included In
Section titled “Included In”selkies-desktopmetalayer
Used In Boxes
Section titled “Used In Boxes”/charly-selkies:selkies-labwc(viaselkies-desktopmetalayer)/charly-selkies:selkies-labwc-nvidia(viaselkies-desktopmetalayer)
Testing Notes
Section titled “Testing Notes”python3-pyatspiinstalls under the system/usr/lib/python3.X/ site-packages/, NOT pixi’s Python 3.13 env (which dominates PATH). Declarative tests must use the absolute path/usr/bin/python3 -c "import pyatspi"; a barepython3invocation resolves to pixi’s python and fails withModuleNotFoundError: No module named 'pyatspi'. See/charly-check:checkAuthoring Gotchas #7 (no bash defaults) and #8 (system vs pixi Python).
Related Skills
Section titled “Related Skills”/charly-check:wl— thewl: atspiverb (tree/find/click)/charly-infrastructure:dbus-layer— Required dependency (D-Bus session bus)/charly-selkies:selkies-desktop-layer— Desktop metalayer that includes this candy/charly-check:check— declarative testing framework/charly-image:layer— candy authoring