summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmintegration.cpp
diff options
context:
space:
mode:
authorMorten Sørvig <morten.sorvig@qt.io>2022-06-09 13:10:03 +0200
committerMorten Sørvig <morten.sorvig@qt.io>2022-07-06 17:56:58 +0200
commit9be0f2945d404ceb743e4805f7df388c7fd039f1 (patch)
tree652ea4510f4b1a3ce674364063d4f1b0877ccfb7 /src/plugins/platforms/wasm/qwasmintegration.cpp
parent25c2d05340eee01cf55457b8327f8f69d408879a (diff)
wasm: begin work on accessibility backend
Implement a11y support by adding html elements of the appropriate type and/or with the appropriate ARIA attribute behind the canvas. Also add a simple manual-test. Change-Id: I2898fb038c1d326135a1341cdee323bc964420bb Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmintegration.cpp')
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/plugins/platforms/wasm/qwasmintegration.cpp b/src/plugins/platforms/wasm/qwasmintegration.cpp
index 2e231cc5ce1..f19ede9246e 100644
--- a/src/plugins/platforms/wasm/qwasmintegration.cpp
+++ b/src/plugins/platforms/wasm/qwasmintegration.cpp
@@ -8,6 +8,7 @@
#include "qwasmopenglcontext.h"
#include "qwasmtheme.h"
#include "qwasmclipboard.h"
+#include "qwasmaccessibility.h"
#include "qwasmservices.h"
#include "qwasmoffscreensurface.h"
#include "qwasmstring.h"
@@ -79,7 +80,8 @@ QWasmIntegration *QWasmIntegration::s_instance;
QWasmIntegration::QWasmIntegration()
: m_fontDb(nullptr),
m_desktopServices(nullptr),
- m_clipboard(new QWasmClipboard)
+ m_clipboard(new QWasmClipboard),
+ m_accessibility(new QWasmAccessibility)
{
s_instance = this;
@@ -170,6 +172,7 @@ QWasmIntegration::~QWasmIntegration()
if (m_platformInputContext)
delete m_platformInputContext;
delete m_drag;
+ delete m_accessibility;
for (const auto &elementAndScreen : m_screens)
elementAndScreen.second->deleteScreen();
@@ -299,6 +302,14 @@ QPlatformClipboard* QWasmIntegration::clipboard() const
return m_clipboard;
}
+#ifndef QT_NO_ACCESSIBILITY
+QPlatformAccessibility *QWasmIntegration::accessibility() const
+{
+ return m_accessibility;
+}
+#endif
+
+
void QWasmIntegration::addScreen(const emscripten::val &element)
{
QWasmScreen *screen = new QWasmScreen(element);