4#ifndef QWASMACCESIBILITY_H
5#define QWASMACCESIBILITY_H
7#include <QtCore/qtconfigmacros.h>
8#include <QtGui/qtguiglobal.h>
10#if QT_CONFIG(accessibility)
12#include <QtCore/qhash.h>
13#include <private/qstdweb_p.h>
14#include <qpa/qplatformaccessibility.h>
16#include <emscripten/val.h>
17#include <QLoggingCategory>
20#include <emscripten/bind.h>
24class QWasmAccessibility :
public QPlatformAccessibility
28 ~QWasmAccessibility();
30 static QWasmAccessibility*
get();
38 void enableAccessibility();
41 static emscripten::val getContainer(QAccessibleInterface *iface);
42 static emscripten::val getDocument(
const emscripten::val &container);
43 static emscripten::val getDocument(QAccessibleInterface *iface);
44 static QWindow *getWindow(QAccessibleInterface *iface);
46 emscripten::val createHtmlElement(QAccessibleInterface *iface);
47 void destroyHtmlElement(QAccessibleInterface *iface);
48 emscripten::val ensureHtmlElement(QAccessibleInterface *iface);
49 void setHtmlElementVisibility(QAccessibleInterface *iface,
bool visible);
50 void setHtmlElementGeometry(QAccessibleInterface *iface);
51 void setHtmlElementGeometry(emscripten::val element,
QRect geometry);
52 void setHtmlElementTextName(QAccessibleInterface *iface);
53 void setHtmlElementTextNameLE(QAccessibleInterface *iface);
54 void setHtmlElementDescription(QAccessibleInterface *iface);
56 void handleStaticTextUpdate(QAccessibleEvent *
event);
57 void handleButtonUpdate(QAccessibleEvent *
event);
58 void handleCheckBoxUpdate(QAccessibleEvent *
event);
59 void handleDialogUpdate(QAccessibleEvent *
event);
60 void handleMenuUpdate(QAccessibleEvent *
event);
61 void handleToolUpdate(QAccessibleEvent *
event);
62 void handleLineEditUpdate(QAccessibleEvent *
event);
63 void handleRadioButtonUpdate(QAccessibleEvent *
event);
64 void handleSpinBoxUpdate(QAccessibleEvent *
event);
65 void handlePageTabUpdate(QAccessibleEvent *
event);
66 void handleSliderUpdate(QAccessibleEvent *
event);
67 void handleScrollBarUpdate(QAccessibleEvent *
event);
68 void handlePageTabListUpdate(QAccessibleEvent *
event);
70 void handleEventFromHtmlElement(
const emscripten::val
event);
72 void populateAccessibilityTree(QAccessibleInterface *iface);
73 void notifyAccessibilityUpdate(QAccessibleEvent *
event)
override;
74 void setRootObject(
QObject *
o)
override;
76 void cleanup()
override;
79 static void onHtmlEventReceived(emscripten::val
event);
82 static QWasmAccessibility *s_instance;
83 QObject *m_rootObject =
nullptr;
84 bool m_accessibilityEnabled =
false;
85 std::map<QWindow *, std::tuple<emscripten::val, std::shared_ptr<qstdweb::EventCallback>>> m_enableButtons;
86 QHash<QAccessibleInterface *, emscripten::val> m_elements;
\inmodule QtCore\reentrant
static QDBusError::ErrorType get(const char *name)
#define Q_DECLARE_LOGGING_CATEGORY(name)