diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-07 10:45:41 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-10 15:56:48 +0200 |
commit | 6ac1bf6434f2a508b895f6da7997bd90a5a8c08a (patch) | |
tree | 8717c7c6e89c8a3de08b68899ed7a84782c3fb5d /src/webenginewidgets/api/qwebengineview.cpp | |
parent | a9853701193c81c65f80a606943864cd9b1f4431 (diff) |
Widget based accessibility glue code
With this patch the accessibility hierarchy inside webengine becomes
available when navigating from QWidget based web views.
Change-Id: Ib3625a6ec93b4d3f298fb845ab85209b348349ba
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'src/webenginewidgets/api/qwebengineview.cpp')
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 23 |
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" |