diff --git a/src/plugins/qpa/integration.cpp b/src/plugins/qpa/integration.cpp index 5c4866f18c..9a9195d817 100644 --- a/src/plugins/qpa/integration.cpp +++ b/src/plugins/qpa/integration.cpp @@ -7,6 +7,7 @@ SPDX-License-Identifier: GPL-2.0-or-later */ + #include "integration.h" #include "backingstore.h" #include "eglplatformcontext.h" @@ -24,6 +25,7 @@ #include #include +#include #include #include #include @@ -31,6 +33,7 @@ #include #include #include +#include #include namespace KWin @@ -154,6 +157,14 @@ QPlatformOpenGLContext *Integration::createPlatformOpenGLContext(QOpenGLContext return nullptr; } +QPlatformAccessibility *Integration::accessibility() const +{ + if (!m_accessibility) { + m_accessibility.reset(new QSpiAccessibleBridge()); + } + return m_accessibility.get(); +} + void Integration::handleWorkspaceCreated() { connect(workspace(), &Workspace::outputAdded, diff --git a/src/plugins/qpa/integration.h b/src/plugins/qpa/integration.h index 249f55216f..318709f297 100644 --- a/src/plugins/qpa/integration.h +++ b/src/plugins/qpa/integration.h @@ -41,6 +41,7 @@ public: QStringList themeNames() const override; QPlatformTheme *createPlatformTheme(const QString &name) const override; QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const override; + QPlatformAccessibility *accessibility() const override; QPlatformNativeInterface *nativeInterface() const override; QPlatformServices *services() const override; void initialize() override; @@ -54,6 +55,7 @@ private Q_SLOTS: private: std::unique_ptr m_fontDb; + mutable std::unique_ptr m_accessibility; std::unique_ptr m_nativeInterface; QPlatformPlaceholderScreen *m_dummyScreen = nullptr; QHash m_screens;