aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
blob: 7dfad9ac1903da8abb9a79f9ccae0628d8af10a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
From dca162bbe2e0356596bdc4469fb0754be27e0b7d Mon Sep 17 00:00:00 2001
From: Stephan Binner <stephan.binner@basyskom.com>
Date: Wed, 4 Mar 2015 12:39:29 +0100
Subject: [PATCH 4/4] Enable building Qt WebEngine without accessiblity
 enabled.

This adds guards that for QT_NO_ACCESSIBILITY being not defined
around the code that uses accessibility types.

It disables the quicknanobrowser and quicktestbrowser examples
which need Qt QuickControls, which has a hard dependency to
accessibility being enabled.

Upstream-Status: Backport from 5.5
https://codereview.qt-project.org/#/c/104207/

Backport of d95b9295c970401939d2779cbdc9e2a8c7965277 from 5.5

Change-Id: I2a2a0a6196fcb3baa39603d9c929183b454f39ed
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
---
 examples/webengine/quicknanobrowser/quicknanobrowser.pro |  2 ++
 src/core/browser_accessibility_manager_qt.cpp            |  6 ++++++
 src/core/browser_accessibility_manager_qt.h              |  2 ++
 src/core/browser_accessibility_qt.cpp                    |  4 ++++
 src/core/browser_accessibility_qt.h                      |  3 +++
 src/core/render_widget_host_view_qt.cpp                  | 13 ++++++++++++-
 src/core/render_widget_host_view_qt.h                    |  6 +++++-
 src/core/web_contents_adapter.cpp                        |  2 ++
 src/core/web_contents_adapter_client.h                   |  2 ++
 src/webengine/api/qquickwebengineview.cpp                | 12 ++++++++++++
 src/webengine/api/qquickwebengineview_p.h                |  2 ++
 src/webengine/api/qquickwebengineview_p_p.h              |  5 ++++-
 src/webenginewidgets/api/qwebenginepage.cpp              |  3 +++
 src/webenginewidgets/api/qwebenginepage.h                |  2 ++
 src/webenginewidgets/api/qwebenginepage_p.h              |  2 ++
 src/webenginewidgets/api/qwebengineview.cpp              |  7 ++++++-
 src/webenginewidgets/api/qwebengineview_p.h              |  3 ++-
 tests/quicktestbrowser/quicktestbrowser.pro              |  2 ++
 18 files changed, 73 insertions(+), 5 deletions(-)

diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
index 3628b81..a8e57b0 100644
--- a/examples/webengine/quicknanobrowser/quicknanobrowser.pro
+++ b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
@@ -1,3 +1,5 @@
+requires(contains(QT_CONFIG, accessibility))
+
 TEMPLATE = app
 TARGET = quicknanobrowser
 
diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp
index 28d0dd7..6729866 100644
--- a/src/core/browser_accessibility_manager_qt.cpp
+++ b/src/core/browser_accessibility_manager_qt.cpp
@@ -45,9 +45,14 @@ namespace content {
 
 BrowserAccessibility *BrowserAccessibilityFactoryQt::Create()
 {
+#ifndef QT_NO_ACCESSIBILITY
     return new BrowserAccessibilityQt();
+#else
+    return 0;
+#endif // QT_NO_ACCESSIBILITY
 }
 
+#ifndef QT_NO_ACCESSIBILITY
 BrowserAccessibilityManagerQt::BrowserAccessibilityManagerQt(
     QObject* parentObject,
     const ui::AXTreeUpdate& initialTree,
@@ -131,5 +136,6 @@ void BrowserAccessibilityManagerQt::NotifyAccessibilityEvent(ui::AXEvent event_t
         break;
     }
 }
+#endif // QT_NO_ACCESSIBILITY
 
 }
diff --git a/src/core/browser_accessibility_manager_qt.h b/src/core/browser_accessibility_manager_qt.h
index 5d8498d..49b3af3 100644
--- a/src/core/browser_accessibility_manager_qt.h
+++ b/src/core/browser_accessibility_manager_qt.h
@@ -38,6 +38,7 @@
 #define BROWSER_ACCESSIBILITY_MANAGER_QT_H
 
 #include "content/browser/accessibility/browser_accessibility_manager.h"
+#ifndef QT_NO_ACCESSIBILITY
 #include <QtCore/qobject.h>
 
 QT_BEGIN_NAMESPACE
@@ -74,4 +75,5 @@ private:
 
 }
 
+#endif // QT_NO_ACCESSIBILITY
 #endif
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp
index b5cd26f..4b8e97a 100644
--- a/src/core/browser_accessibility_qt.cpp
+++ b/src/core/browser_accessibility_qt.cpp
@@ -40,6 +40,8 @@
 
 #include "browser_accessibility_qt.h"
 
+#ifndef QT_NO_ACCESSIBILITY
+
 #include "third_party/WebKit/public/web/WebAXEnums.h"
 #include "ui/accessibility/ax_node_data.h"
 
@@ -898,3 +900,5 @@ void BrowserAccessibilityQt::modelChange(QAccessibleTableModelChangeEvent *)
 }
 
 } // namespace content
+
+#endif // QT_NO_ACCESSIBILITY
diff --git a/src/core/browser_accessibility_qt.h b/src/core/browser_accessibility_qt.h
index db190ff..e87b5d8 100644
--- a/src/core/browser_accessibility_qt.h
+++ b/src/core/browser_accessibility_qt.h
@@ -38,6 +38,8 @@
 #define BROWSER_ACCESSIBILITY_QT_H
 
 #include <QtGui/qaccessible.h>
+
+#ifndef QT_NO_ACCESSIBILITY
 #include "content/browser/accessibility/browser_accessibility.h"
 
 namespace content {
@@ -145,4 +147,5 @@ public:
 
 }
 
+#endif // QT_NO_ACCESSIBILITY
 #endif
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index c221e94..18d64e8 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -198,15 +198,18 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost* widget
     , m_initPending(false)
 {
     m_host->SetView(this);
-
+#ifndef QT_NO_ACCESSIBILITY
     QAccessible::installActivationObserver(this);
     if (QAccessible::isActive())
         content::BrowserAccessibilityStateImpl::GetInstance()->EnableAccessibility();
+#endif // QT_NO_ACCESSIBILITY
 }
 
 RenderWidgetHostViewQt::~RenderWidgetHostViewQt()
 {
+#ifndef QT_NO_ACCESSIBILITY
     QAccessible::removeActivationObserver(this);
+#endif // QT_NO_ACCESSIBILITY
 }
 
 void RenderWidgetHostViewQt::setDelegate(RenderWidgetHostViewQtDelegate* delegate)
@@ -296,6 +299,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewQt::GetNativeViewAccessible()
 
 void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()
 {
+#ifndef QT_NO_ACCESSIBILITY
     if (GetBrowserAccessibilityManager())
         return;
 
@@ -303,6 +307,9 @@ void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()
         m_adapterClient->accessibilityParentObject(),
         content::BrowserAccessibilityManagerQt::GetEmptyDocument(),
         this));
+#else
+    return 0;
+#endif // QT_NO_ACCESSIBILITY
 }
 
 // Set focus to the associated View component.
@@ -953,6 +960,7 @@ void RenderWidgetHostViewQt::AccessibilityFatalError()
     SetBrowserAccessibilityManager(NULL);
 }
 
+#ifndef QT_NO_ACCESSIBILITY
 void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active)
 {
     if (active)
@@ -960,6 +968,7 @@ void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active)
     else
         content::BrowserAccessibilityStateImpl::GetInstance()->DisableAccessibility();
 }
+#endif // QT_NO_ACCESSIBILITY
 
 void RenderWidgetHostViewQt::handleWheelEvent(QWheelEvent *ev)
 {
@@ -1042,6 +1051,7 @@ void RenderWidgetHostViewQt::handleFocusEvent(QFocusEvent *ev)
     }
 }
 
+#ifndef QT_NO_ACCESSIBILITY
 QAccessibleInterface *RenderWidgetHostViewQt::GetQtAccessible()
 {
     // Assume we have a screen reader doing stuff
@@ -1051,6 +1061,7 @@ QAccessibleInterface *RenderWidgetHostViewQt::GetQtAccessible()
     content::BrowserAccessibilityQt *accQt = static_cast<content::BrowserAccessibilityQt*>(acc);
     return accQt;
 }
+#endif // QT_NO_ACCESSIBILITY
 
 void RenderWidgetHostViewQt::didFirstVisuallyNonEmptyLayout()
 {
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index d4a3ff2..fac7efd 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -50,6 +50,7 @@
 #include <QRect>
 #include <QtGlobal>
 #include <QtGui/qaccessible.h>
+#include <QtGui/QTouchEvent>
 
 #include "delegated_frame_node.h"
 
@@ -59,7 +60,6 @@ class QFocusEvent;
 class QHoverEvent;
 class QKeyEvent;
 class QMouseEvent;
-class QTouchEvent;
 class QVariant;
 class QWheelEvent;
 class QAccessibleInterface;
@@ -93,7 +93,9 @@ class RenderWidgetHostViewQt
     , public RenderWidgetHostViewQtDelegateClient
     , public content::BrowserAccessibilityDelegate
     , public base::SupportsWeakPtr<RenderWidgetHostViewQt>
+#ifndef QT_NO_ACCESSIBILITY
     , public QAccessible::ActivationObserver
+#endif // QT_NO_ACCESSIBILITY
 {
 public:
     RenderWidgetHostViewQt(content::RenderWidgetHost* widget);
@@ -213,9 +215,11 @@ public:
     virtual gfx::Point AccessibilityOriginInScreen(const gfx::Rect& bounds) const Q_DECL_OVERRIDE  { return gfx::Point(); }
     virtual void AccessibilityHitTest(const gfx::Point& point) Q_DECL_OVERRIDE  { }
     virtual void AccessibilityFatalError() Q_DECL_OVERRIDE;
+#ifndef QT_NO_ACCESSIBILITY
     virtual void accessibilityActiveChanged(bool active) Q_DECL_OVERRIDE;
 
     QAccessibleInterface *GetQtAccessible();
+#endif // QT_NO_ACCESSIBILITY
 
     void didFirstVisuallyNonEmptyLayout();
 
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 3f223f7..e41acd0 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -628,12 +628,14 @@ void WebContentsAdapter::enableInspector(bool enable)
     ContentBrowserClientQt::Get()->enableInspector(enable);
 }
 
+#ifndef QT_NO_ACCESSIBILITY
 QAccessibleInterface *WebContentsAdapter::browserAccessible()
 {
     Q_D(const WebContentsAdapter);
     RenderWidgetHostViewQt *rwhv = static_cast<RenderWidgetHostViewQt*>(d->webContents->GetRenderWidgetHostView());
     return rwhv ? rwhv->GetQtAccessible() : Q_NULLPTR;
 }
+#endif // QT_NO_ACCESSIBILITY
 
 void WebContentsAdapter::runJavaScript(const QString &javaScript)
 {
diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h
index 8fd401f..df18980 100644
--- a/src/core/web_contents_adapter_client.h
+++ b/src/core/web_contents_adapter_client.h
@@ -168,7 +168,9 @@ public:
     virtual void passOnFocus(bool reverse) = 0;
     // returns the last QObject (QWidget/QQuickItem) based object in the accessibility
     // hierarchy before going into the BrowserAccessibility tree
+#ifndef QT_NO_ACCESSIBILITY
     virtual QObject *accessibilityParentObject() = 0;
+#endif // QT_NO_ACCESSIBILITY
     virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) = 0;
     virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) = 0;
     virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) = 0;
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 3497c16..a35cfc3 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -61,16 +61,20 @@
 #include <QScreen>
 #include <QStringBuilder>
 #include <QUrl>
+#ifndef QT_NO_ACCESSIBILITY
 #include <private/qquickaccessibleattached_p.h>
+#endif // QT_NO_ACCESSIBILITY
 
 QT_BEGIN_NAMESPACE
 
+#ifndef QT_NO_ACCESSIBILITY
 static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object)
 {
     if (QQuickWebEngineView *v = qobject_cast<QQuickWebEngineView*>(object))
         return new QQuickWebEngineViewAccessible(v);
     return 0;
 }
+#endif // QT_NO_ACCESSIBILITY
 
 QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
     : adapter(new WebContentsAdapter)
@@ -102,7 +106,9 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
         // 1x, 2x, 3x etc assets that fit an integral number of pixels.
         setDevicePixelRatio(qMax(1, qRound(webPixelRatio)));
     }
+#ifndef QT_NO_ACCESSIBILITY
     QAccessible::installFactory(&webAccessibleFactory);
+#endif // QT_NO_ACCESSIBILITY
 }
 
 QQuickWebEngineViewPrivate::~QQuickWebEngineViewPrivate()
@@ -395,11 +401,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec
    Q_EMIT e->featurePermissionRequested(securityOrigin, feature);
 }
 
+#ifndef QT_NO_ACCESSIBILITY
 QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
 {
     Q_Q(QQuickWebEngineView);
     return q;
 }
+#endif // QT_NO_ACCESSIBILITY
 
 WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const
 {
@@ -414,6 +422,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
     m_dpiScale = devicePixelRatio / screen->devicePixelRatio();
 }
 
+#ifndef QT_NO_ACCESSIBILITY
 QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o)
     : QAccessibleObject(o)
 {}
@@ -460,6 +469,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const
     QAccessible::State s;
     return s;
 }
+#endif // QT_NO_ACCESSIBILITY
 
 void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents)
 {
@@ -497,8 +507,10 @@ QQuickWebEngineView::QQuickWebEngineView(QQuickItem *parent)
     this->setActiveFocusOnTab(true);
     this->setFlag(QQuickItem::ItemIsFocusScope);
 
+#ifndef QT_NO_ACCESSIBILITY
     QQuickAccessibleAttached *accessible = QQuickAccessibleAttached::qmlAttachedProperties(this);
     accessible->setRole(QAccessible::Grouping);
+#endif // QT_NO_ACCESSIBILITY
 }
 
 QQuickWebEngineView::~QQuickWebEngineView()
diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h
index 22713ee..f3ceb2c 100644
--- a/src/webengine/api/qquickwebengineview_p.h
+++ b/src/webengine/api/qquickwebengineview_p.h
@@ -155,7 +155,9 @@ private:
     friend class QQuickWebEngineViewExperimental;
     friend class QQuickWebEngineViewExperimentalExtension;
     friend class QQuickWebEngineNewViewRequest;
+#ifndef QT_NO_ACCESSIBILITY
     friend class QQuickWebEngineViewAccessible;
+#endif // QT_NO_ACCESSIBILITY
 };
 
 QT_END_NAMESPACE
diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h
index 6662f1f..3ab95c6 100644
--- a/src/webengine/api/qquickwebengineview_p_p.h
+++ b/src/webengine/api/qquickwebengineview_p_p.h
@@ -175,7 +175,9 @@ public:
     virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
     virtual void authenticationRequired(const QUrl&, const QString&, bool, const QString&, QString*, QString*) Q_DECL_OVERRIDE { }
     virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE;
+#ifndef QT_NO_ACCESSIBILITY
     virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE;
+#endif // QT_NO_ACCESSIBILITY
     virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE;
     virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &errorController);
 
@@ -202,6 +204,7 @@ private:
     qreal m_dpiScale;
 };
 
+#ifndef QT_NO_ACCESSIBILITY
 class QQuickWebEngineViewAccessible : public QAccessibleObject
 {
 public:
@@ -217,7 +220,7 @@ public:
 private:
     QQuickWebEngineView *engineView() const { return static_cast<QQuickWebEngineView*>(object()); }
 };
-
+#endif // QT_NO_ACCESSIBILITY
 QT_END_NAMESPACE
 
 QML_DECLARE_TYPE(QQuickWebEngineViewExperimental)
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 72b16f2..068c175 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -39,6 +39,7 @@
 #include <QApplication>
 #include <QAuthenticator>
 #include <QClipboard>
+#include <QContextMenuEvent>
 #include <QFileDialog>
 #include <QIcon>
 #include <QInputDialog>
@@ -342,10 +343,12 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security
     Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature);
 }
 
+#ifndef QT_NO_ACCESSIBILITY
 QObject *QWebEnginePagePrivate::accessibilityParentObject()
 {
     return view;
 }
+#endif // QT_NO_ACCESSIBILITY
 
 void QWebEnginePagePrivate::updateAction(QWebEnginePage::WebAction action) const
 {
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index 7856b82..9fd81b0 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -258,7 +258,9 @@ private:
 
     friend class QWebEngineView;
     friend class QWebEngineViewPrivate;
+#ifndef QT_NO_ACCESSIBILITY
     friend class QWebEngineViewAccessible;
+#endif // QT_NO_ACCESSIBILITY
 };
 
 
diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h
index 5412922..2307e7a 100644
--- a/src/webenginewidgets/api/qwebenginepage_p.h
+++ b/src/webenginewidgets/api/qwebenginepage_p.h
@@ -135,7 +135,9 @@ public:
     virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
     virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE;
     virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE;
+#ifndef QT_NO_ACCESSIBILITY
     virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE;
+#endif // QT_NO_ACCESSIBILITY
     virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE;
     virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &controller) Q_DECL_OVERRIDE;
 
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index 8d21989..63ac405 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -85,19 +85,22 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page)
     }
 }
 
-
+#ifndef QT_NO_ACCESSIBILITY
 static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object)
 {
     if (QWebEngineView *v = qobject_cast<QWebEngineView*>(object))
         return new QWebEngineViewAccessible(v);
     return Q_NULLPTR;
 }
+#endif // QT_NO_ACCESSIBILITY
 
 QWebEngineViewPrivate::QWebEngineViewPrivate()
     : page(0)
     , m_pendingContextMenuEvent(false)
 {
+#ifndef QT_NO_ACCESSIBILITY
     QAccessible::installFactory(&webAccessibleFactory);
+#endif // QT_NO_ACCESSIBILITY
 }
 
 QWebEngineView::QWebEngineView(QWidget *parent)
@@ -274,6 +277,7 @@ void QWebEngineView::contextMenuEvent(QContextMenuEvent *event)
     menu->popup(event->globalPos());
 }
 
+#ifndef QT_NO_ACCESSIBILITY
 int QWebEngineViewAccessible::childCount() const
 {
     if (view() && child(0))
@@ -294,6 +298,7 @@ int QWebEngineViewAccessible::indexOfChild(const QAccessibleInterface *c) const
         return 0;
     return -1;
 }
+#endif // QT_NO_ACCESSIBILITY
 
 QT_END_NAMESPACE
 
diff --git a/src/webenginewidgets/api/qwebengineview_p.h b/src/webenginewidgets/api/qwebengineview_p.h
index 9db971f..e0cc3f4 100644
--- a/src/webenginewidgets/api/qwebengineview_p.h
+++ b/src/webenginewidgets/api/qwebengineview_p.h
@@ -59,6 +59,7 @@ public:
     bool m_pendingContextMenuEvent;
 };
 
+#ifndef QT_NO_ACCESSIBILITY
 class QWebEngineViewAccessible : public QAccessibleWidget
 {
 public:
@@ -72,7 +73,7 @@ public:
 private:
     QWebEngineView *view() const { return static_cast<QWebEngineView*>(object()); }
 };
-
+#endif // QT_NO_ACCESSIBILITY
 
 QT_END_NAMESPACE
 
diff --git a/tests/quicktestbrowser/quicktestbrowser.pro b/tests/quicktestbrowser/quicktestbrowser.pro
index ac8fe74..51ea5a2 100644
--- a/tests/quicktestbrowser/quicktestbrowser.pro
+++ b/tests/quicktestbrowser/quicktestbrowser.pro
@@ -1,3 +1,5 @@
+requires(contains(QT_CONFIG, accessibility))
+
 TEMPLATE = app
 TARGET = quicktestbrowser
 
-- 
2.3.1