summaryrefslogtreecommitdiffstats
path: root/src/gui/accessible/qaccessible.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add accessible actions for scrolling and page changesFrederik Gladhorn2014-10-281-1/+82
| | | | | Change-Id: I5f6fd352e1022abbe3a94088598f460b17692fca Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-271-0/+1
|\ | | | | | | | | | | | | Conflicts: src/gui/text/qfontdatabase.cpp Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
| * Add searchEdit as accessible stateFrederik Gladhorn2014-10-251-0/+1
| | | | | | | | | | | | | | The search state is used by VoiceOver on iOS to announce a search field. Change-Id: I464125827dbbf275daf38104e26e9591bb23365a Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-091-3/+12
|\| | | | | | | Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
| * Make QAccessible compile with -Werrorhjk2014-09-301-0/+6
| | | | | | | | | | | | | | | | GCC was bailing out when attempting to merge this into the dev branch due to the use of "potentially uninitialized values". Change-Id: Id2fc4a123a4b180b9ab439429a0d20245c7ee41b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Fix build when using -WerrorSérgio Martins2014-09-291-3/+6
| | | | | | | | | | | | | | | | | | | | "accessible/qaccessible.cpp:2154:43: error: 'type' may be used uninitialized in this function [-Werror=maybe-uninitialized]" Compiler doesn't seem very smart, all enumerators are handled in the switch already. Observed on android's gcc and gcc-4.7 on GNU/Linux Change-Id: I30b4660c18992158457cada01b5916aa4feae4ff Reviewed-by: BogDan Vatra <bogdan@kde.org>
* | Merge remote-tracking branch 'origin/5.4' into devOswald Buddenhagen2014-09-291-23/+20
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/image/qimage.cpp src/gui/image/qppmhandler.cpp src/gui/kernel/qguiapplication.cpp src/gui/painting/qpaintengine_raster.cpp Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
| * Update license headers and add new license filesMatti Paaso2014-09-241-18/+10
| | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
| * a11y: Don't try to update accessibility if there's no interfaceTor Arne Vestbø2014-09-201-5/+10
| | | | | | | | | | Change-Id: I970729e65ba0eb857e6974f9947f27ae8e6410c3 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devOswald Buddenhagen2014-09-101-4/+92
|\| | | | | | | Change-Id: Id4997327cc01bd4bb397a463bdffbd15e80398ef
| * Accessibility: Improve line boundary helper functionsFrederik Gladhorn2014-09-041-4/+92
| | | | | | | | | | | | | | | | | | These functions are supposed to make it easy for third parties (and QLineEdit) to implement the textAt/Before/AfterOffset functions. Before the functions were ignoring newlines completely and thus only somewhat useful. Change-Id: I7136b9502a7fa6f8ad9ad7236761a34c1a7fd4da Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Compile with -no-feature-accessibilityFrederik Gladhorn2014-08-211-19/+3
|/ | | | | | Task-number: QTBUG-38045 Change-Id: Id436b70aa6161bdf2428ca0a605212b278c71849 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Add accessible rolesFrederik Gladhorn2014-08-131-0/+6
| | | | | Change-Id: Ic5465687f51c441235ec23cb88045e14644f1d2a Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Remove invalid assertFrederik Gladhorn2014-08-131-2/+1
| | | | | | | The table interface may be implemented without having a QObject. Change-Id: I59b9bef29494296149bc1023db933b7c5d762cac Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Accessibility: Fix boundaries for text functions in QLineEditFrederik Gladhorn2014-08-131-31/+26
| | | | | | | | | | Make the functions work consistently. For example asking for the line at the cursor position when the cursor was at the end returned an empty line before. Task-number: QTBUG-38500 Change-Id: I60fc78c7be129a59c83efcfce6d8fdd16f2c3f65 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Add QAccessible::ActivationObserverFrederik Gladhorn2014-08-111-1/+51
| | | | | | | | Makes it possible to follow changes in activation an deactivation of a11y. Needed for WebEngine to know when to activate a11y. Change-Id: Ia264a76974224d1baad3e88c34a4b8a9f1a3695d Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Slight doc improvementsFrederik Gladhorn2014-07-231-2/+2
| | | | | | Change-Id: I0c5f7cb7c0673357f13fe4eb1a9f9aba36f6d71e Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Add accessible roles for web document, paragraph and sectionFrederik Gladhorn2014-07-231-0/+3
| | | | | | | | These roles seem wide-spread enough that it makes sense to add them. QtWebEngine will use them. Change-Id: I9c2d6ab23ada0607078bcd407a72ecae9f87eeea Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Make QAccessibleEditableTextInterface docs publicFrederik Gladhorn2014-07-071-1/+0
| | | | | | Task-number: QTBUG-40103 Change-Id: I22c678e38e395fa50fc26b456e9fcc2adcae14e6 Reviewed-by: Caroline Chao <caroline.chao@digia.com>
* Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-011-4/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/qnx-x86-qcc/qplatformdefs.h src/corelib/global/qglobal.h src/network/socket/qnativesocketengine_winrt.cpp src/plugins/platforms/android/androidjniaccessibility.cpp src/plugins/platforms/windows/qwindowswindow.cpp Manually adjusted: mkspecs/qnx-armle-v7-qcc/qplatformdefs.h to include 9ce697f2d54be6d94381c72af28dda79cbc027d4 Thanks goes to Sergio for the qnx mkspecs adjustments. Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e
| * Remove bogus nullptr check for referenceFrederik Gladhorn2014-06-271-4/+0
| | | | | | | | | | Change-Id: I3aafe427b9ea9a2b7936c4e2217722ee78d329aa Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* | Windows a11y: Publish synthetic increase and decrease actionsJan Arve Saether2014-06-201-15/+25
| | | | | | | | | | | | | | | | | | Increase and decrease actions can be generally applied to any value interface. We therefore make them available regardless of the existence of any action interface. Change-Id: I82ba01965dc869439b9d741ce681e0c0687263ca Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Accessibility: Fix select state usageFrederik Gladhorn2014-05-311-1/+1
| | | | | | | | | | | | | | | | | | | | The selectable/selected states refer to items in a list and similar, do not interpret them as text selection states. Without this change NVDA for example announces text edits as selected which makes no sense and which it doesn't do for native text items. Change-Id: Ib1d109523bd4cc2b9b40ace8a8c3d7d3a7f9f25c Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-04-111-15/+13
|\| | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/qnx-armv7le-qcc/qplatformdefs.h src/printsupport/kernel/qcups.cpp src/widgets/styles/qstyle.h tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp Change-Id: Ia41e13051169a6d4a8a1267548e7d47b859bb267
| * Accessibility Mac: Cache Accessible Elements and Notify about changesFrederik Gladhorn2014-04-091-15/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The big change is that we now keep the id objects representing accessibles around so that they are persistent for ATs. This improves performance of Mac accessibility significantly. This is required for notifications which are now sent so that many things work much better, for example the VoiceOver focus follows the keyboard focus. The parent element in QCocoaAccessibleElement was removed, we can dynamically access it more reliably. Change-Id: I686d212f40d28b392dcc22f16f3c3430f08bdc98 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Added handling of QT_LINUX_ACCESSIBILITY_ALWAYS_ON variable.Tomasz Olszak2014-04-041-0/+9
|/ | | | | | | | | | By setting this variable to non empty value we can, bypass checking ScreenReaderEnabled proprty of org.a11y.Status dbus interface. Not all accessibility readers set this. The variable is also useful for debugging. Change-Id: I6c5a1a51065948248e068dfff4755d6818ed9fb1 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Accessibility: Do not assert when a widget doesn't have a QAIFrederik Gladhorn2014-01-021-0/+2
| | | | | | | | | | [ChangeLog][QtGui] Fixed crash when sending accessibility updates when the corresponding widget does not have a corresponding QAccessibleInterface. This showed on Mac for example with QStatusBar. Task-number: QTBUG-35421 Change-Id: I94174e98e858b7a0122532ee5fcc8458a263bccd Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Accessibility: Make it possible to send events with no QObjectFrederik Gladhorn2013-10-251-5/+36
| | | | | Change-Id: Icbb9d15ec52ff5f7718eaf3600cab140971274aa Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-081-7/+7
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Make Accessibility publicFrederik Gladhorn2013-09-191-67/+885
| | | | | | | | | There is no point in having QAccessible2, so merge it with the normal QAccessible. The header will be removed in a subsequent commit as it is still needed by declarative at this point in time. Change-Id: I1fc47d484d482f25387eba827bc5a373536b7a8b Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Let platform plugin decide if accessibility is activeFrederik Gladhorn2013-04-191-8/+13
| | | | | Change-Id: I881a8ff3fedf3db73ee37046a4363c70960a92a6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Do not show the warning if queryAI() returns an invalid interface.Jan Arve Saether2013-04-111-1/+1
| | | | | | | | | | | | | | | | We should only warn about missing a11y plugins if iface is 0, since we obviously have the plugin otherwise. This got triggered by that a visible widget got destructed, which in turn called hide(), which ultimately ended up calling QAccessible::updateAccessibility(QAccessible::ObjectHide). When QAccessibleEvent::accessibleInterface() then called queryAccessibleInterface(), QAI::isValid() would return false because the widget was in its destructor. Change-Id: If655e00e7bb3737a39e24e26dbd1e23edd515bf5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Make QTextCursor accessibility boundary finder availableFrederik Gladhorn2013-04-081-0/+73
| | | | | | | | | This allows re-using the function in QtQuick. In addition TextBoundaryType is moved to QAccessible and QAccessible2 as namespace ceases to exist. Change-Id: I184bc2c181a22ca51ac4db4e5a080dc26d4acfe0 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Cache QAccessibleInterfaces.Frederik Gladhorn2013-04-021-12/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since there already is a one-to-one relationship between QObject and QAccessibleInterface it makes little sense to create and destroy the interfaces on each call to queryAccessibleInterface. Add a cache and keep created interfaces around for the lifetime of the corresponding QObject. This changes the memory management rules: accessible interfaces must no longer be deleted. If you get an QAccessibleIntrface pointer that pointer will stay valid as long as the corresponding QObject is not deleted. This also re-enables accessibility for Mac. We limit the range of the IDs so that they are useable for Windows directly. That means we can get rid of the event cache there. This is based on: Iebf2f374916fc70a9dd29e95f45a6444b85f6cee Change-Id: I9fe6531812c0dbc5b41101ac05830a6dd75e13a3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Fix access to interface in QAccessibleEventFrederik Gladhorn2013-03-231-1/+1
| | | | | | | | | Sometimes we get an invalid interface. In that case the event should just return 0. This avoids some potential crashes. Change-Id: I9f166b5d5547dbe7f22c4756502aee811b0b80a6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Warn about accessibility interface creation failure only onceFrederik Gladhorn2013-03-141-1/+6
| | | | | Change-Id: I0555d7d2417149f0eec54b228b842a61d0d08f85 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-221-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qsavefile_p.h src/corelib/tools/qregularexpression.cpp src/gui/util/qvalidator.cpp src/gui/util/qvalidator.h Change-Id: I58fdf0358bd86e2fad5d9ad0556f3d3f1f535825
| * Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | | | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge branch 'stable' into devFrederik Gladhorn2013-01-071-4/+10
|\| | | | | | | | | | | | | Conflicts: tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp Change-Id: I6b8d505fc22f052c307ca27f58f7d16f98965f47
| * Revert "Enable module build with QT_NO_ACCESSIBILITY"aavit2013-01-041-4/+10
| | | | | | | | | | | | | | | | | | | | This reverts commit b7f63c6bf74a0eb62bb49c1085584da1b3714a06. It made compilation fail in qstylehelper_p.h if QT_NO_ACCESSIBILITY was defined - which it is by default on linux without dbus. Change-Id: I313f5138460d28c44dad128d175df0e53a99287d Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Merge branch 'stable' into devFrederik Gladhorn2013-01-041-10/+4
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: examples/widgets/painting/shared/shared.pri src/corelib/tools/qharfbuzz_p.h src/corelib/tools/qunicodetools.cpp src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp src/plugins/platforms/windows/qwindowsfontdatabase.cpp Change-Id: Ibc9860abf570e5ce8b052fb88feb73ec35e64bd3
| * Enable module build with QT_NO_ACCESSIBILITYTasuku Suzuki2012-12-201-10/+4
| | | | | | | | | | | | Change-Id: I330c3ddd70232d94eae5543cb0282b962e67eae5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Cache accessibility plugins.Morten Johan Sorvig2013-01-021-2/+22
|/ | | | | | | | | | | | | | Profiling shows that the cost of QAcccessible:: queryAccessibleInterface is dominated by plugin loading. (json parsing etc.) Cache QAccessiblePlugin per class. Also cache the fact that no plugin is found for a certain class. This speeds up the average queryAccessibleInterface call by a factor of 10X Change-Id: Iab6d052dec499a2203d1dcc4672a8a543b279239 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Fix compile when we use QT_NO_ACCESSIBILITYMontel Laurent2012-12-011-0/+4
| | | | | Change-Id: I2d304fa6d91d86130eeb4a4aa07b43173d240312 Reviewed-by: David Faure <david.faure@kdab.com>
* Accessibility: Add documentationFrederik Gladhorn2012-11-151-10/+265
| | | | | | | | | This keeps the docs as internal, but add information about the events. Change-Id: I9b961a946a6d799232a756a9ac874c0caf91ecbc Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Accessibility: Warn if an event cannot create an interface for some reason.Frederik Gladhorn2012-11-081-1/+3
| | | | | Change-Id: I87d0290286243f8ead114e238798c9a7b882d978 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Fix QAccessible to build when QT_NO_ACCESSIBILITY is definedJ-P Nurmi2012-11-051-0/+10
| | | | | Change-Id: I6104633cdc80425b8f4697acd28c9a156cd0d76f Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Remove #ifndef QT_NO_ACCESSIBILITY around qaccessible.{h,cpp}Jan Arve Saether2012-11-011-3/+0
| | | | | | | | | | | | | | | Jens has an use-case for using accessibility from styles. By making the enums always available regardless of QT_NO_ACCESSIBILITY, it makes the style code less littered with ifndefs. It should (ahem) also solve the problem where Qt Desktop components does not compile if QT_NO_ACCESSIBILITY is not defined. This happens on some linux distros, since atspi-2-dev is not installed by default, which again causes grief for those affected. Change-Id: I15d65df8c752a0c4af37cc7b4d908a757cb6a9c4 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Use QStringList::join(QChar) overload where applicable [QtGui]Marc Mutz2012-09-071-1/+1
| | | | | | | | | | This is an automated change performing the following replacements: join\("(.)"\) -> join('\1') join\(QLatin1String\("(.)"\)\) -> join(QLatin1Char('\1')) join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1')) Change-Id: Id8d43c1b1ca9cd3aa0b4eedca6709b6287a9bc98 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>