a11y atspi: Support Application iface "AtspiVersion" property

As the AT-SPI XML spec for the Application interface says,
this should currently always be "2.1" [1]:

    <!--
        AtspiVersion: You should return "2.1" here.

        This was intended to be the version of the atspi interfaces
        that the application supports, but atspi will probably move to
        using versioned interface names instead.  Just return "2.1" here.
    -->
    <property name="AtspiVersion" type="s" access="read"/>

This makes the expected value show up in Accerciser with
pending merge request [2] in place instead of triggering a fallback
path in Accerciser handling the null case for Qt applications.

[1] 2d83e3a6df/xml/Application.xml (L19-26)
[2] https://gitlab.gnome.org/GNOME/accerciser/-/merge_requests/95

Change-Id: I0d849d5d6d160c48fd4fc2d443e4fde43cde5606
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 6cca30bb11c5d612c73e12e2dfcf1d473b17b6d4)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit a276ce620857aab15f60db17868abe86986f338b)
This commit is contained in:
Michael Weghorn 2025-05-20 16:03:07 +02:00 committed by Qt Cherry-pick Bot
parent 1db01fc2d9
commit 8e3d160e3f

View File

@ -1512,6 +1512,12 @@ bool AtSpiAdaptor::applicationInterface(QAccessibleInterface *interface, const Q
QDBusMessage reply = message.createReply(QVariant::fromValue(QDBusVariant(m_applicationId)));
return connection.send(reply);
}
if (function == "GetAtspiVersion"_L1) {
Q_ASSERT(message.signature() == "ss"_L1);
// return "2.1" as described in the Application interface spec
QDBusMessage reply = message.createReply(QVariant::fromValue(QDBusVariant("2.1"_L1)));
return connection.send(reply);
}
if (function == "GetToolkitName"_L1) {
Q_ASSERT(message.signature() == "ss"_L1);
QDBusMessage reply = message.createReply(QVariant::fromValue(QDBusVariant("Qt"_L1)));