Interacting with AT-SPI2 in CI environment

Colomban Wendling cwendling at hypra.fr
Thu Nov 3 22:19:53 UTC 2022


Hello everyone,

As part of my effort to improve accessibility test infrastructure and 
coverage [1], I'll have to work on covering the platform layer.

The chosen approach, after discussing with Florian Effenberger (back in 
late 2021 I think), is communicating with a LO process through AT-SPI2 
on Linux.  This is because it's the true outer layer, and that GTK4 does 
not use ATK anymore, so tests relying on simply checking the ATK 
implementations in the GTK3 VCL would not be future-proof, and don't 
seem sensible to invest on nowadays.  Using AT-SPI2 directly would also 
allow testing the Qt VCLs.

This means that to perform tests I'll have to run LO in the CI 
environment in a way where it can use the gtk3/4 VCL, and have a working 
AT-SPI2 bus so they can communicate.  The tests themselves would then 
simply use the exposed AT-SPI2 interfaces and control they behave as 
expected.

We at Hypra already have done similar setups (even with LO itself) using 
xvfb-run (or xvnc, but that's not very useful in CI) and dbus-launch, 
and then interacting through AT-SPI2 using Python and the excellent 
dogtail module [2].

My question here is: what would be acceptable in CIs, and how would it 
work to add such CI dependencies?  I'd rather not rebuild xvfb & al for 
each CI run, as it seems heavy and not very sensible: it's a fairly 
standard piece of software and I wouldn't need any specific version of it.

A follow-up question would be whether you have any pointers in how to 
integrate this kind of things to the build?  I didn't start 
investigating because I'd like to make sure I'm not pursuing the wrong 
path, but anything that could save me reading a hundred gbuild files 
would be much appreciated :)

Thanks in advance,
Colomban

[1] 
https://blog.documentfoundation.org/blog/2021/10/13/tender-to-implement-c-accessibility-tests-202110-01/
[2] https://gitlab.com/dogtail/dogtail


More information about the LibreOffice mailing list