summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api/qwebengineview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginewidgets/api/qwebengineview.cpp')
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index 47afca8ce..71d854ac2 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -89,11 +89,20 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page)
}
}
+
+static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object)
+{
+ if (QWebEngineView *v = qobject_cast<QWebEngineView*>(object))
+ return new QWebEngineViewAccessible(v);
+ return Q_NULLPTR;
+}
+
QWebEngineViewPrivate::QWebEngineViewPrivate()
: QWidgetPrivate(QObjectPrivateVersion)
, page(0)
, m_pendingContextMenuEvent(false)
{
+ QAccessible::installFactory(&webAccessibleFactory);
}
QWebEngineView::QWebEngineView(QWidget *parent)
@@ -242,6 +251,20 @@ void QWebEngineView::contextMenuEvent(QContextMenuEvent *event)
menu->popup(event->globalPos());
}
+int QWebEngineViewAccessible::childCount() const
+{
+ if (view() && child(0))
+ return 1;
+ return 0;
+}
+
+QAccessibleInterface *QWebEngineViewAccessible::child(int index) const
+{
+ if (index == 0 && view() && view()->page())
+ return view()->page()->d_func()->adapter->browserAccessible();
+ return Q_NULLPTR;
+}
+
QT_END_NAMESPACE
#include "moc_qwebengineview.cpp"