summaryrefslogtreecommitdiff
path: root/winaccessibility
AgeCommit message (Collapse)Author
2022-01-12-Werror,-Wunused-parameterStephan Bergmann
...since fcf4a26275d7503835f9aa23cb94938809840300 "tdf#146306 wina11y: Retrieve accessible desc on demand" Change-Id: I8acdca5fac481ca7b970fb9c3660470c5febdf99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128307 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-06wina11y: Don't use space in qualified nameMichael Weghorn
While 'MyClass:: MyMethod' (with a space in it) is valid in C++, it's unusual and may break a naive plain-text search for a specific class member definition. Change-Id: I8c9779865715a0b4f1a66d3e35b874f2cec19193 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128016 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-06wina11y: Use range-based for in AccObject::UpdateStateMichael Weghorn
Change-Id: I29793e63ddc040ccbae99012090e975bd80cafc3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128011 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-06wina11y: Deduplicate 2 common lines in CMAccessible::get_accRoleMichael Weghorn
Change-Id: I3bd4f26861d46f6a43a4b0edda3dbf628e2da2cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128010 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-06wina11y: Drop now unused AccObject::SetRoleMichael Weghorn
Change-Id: I04db43ac49d7bc6ff42157cdd0c94087c454c981 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128009 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-06wina11y: Drop unused AccObjectWinManager::SetRoleMichael Weghorn
Change-Id: Ic2d470a137e4d0c907f28e24c58ba19a937a8b4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128008 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-06tdf#146306 wina11y: Retrieve accessible desc on demandMichael Weghorn
Adapt 'MAccessible::get_accDescription' to directly retrieve the accessible description on demand via the corresponding XAccessible, rather than keeping track of it in a class member. This simplifies the handling and makes it unnecessary to "manually" update the description on 'accessibility::AccessibleEventId::DESCRIPTION_CHANGED' events, since the new value will be queried next time it is needed anyway. This also fixes the problem that a significant amount of time was spent generating accessible descriptions for all newly inserted a11y objects when entering values into Calc cells with the NVDA screen reader in use, resulting in several seconds of delay. Querying up-to-date values from the underlying UNO interfaces on demand instead of doing extra manual bookkeeping in the winaccessibility code may be possible for more a11y attributes in addition to the accessible description handled in this commit, but each one will have to be looked at separately. Change-Id: I57f4c523ca8b10afad3f9c347c8ff5e9420ad968 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128006 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-06wina11y: Use existing method to update descriptionMichael Weghorn
The accessible description and the accessibile *action* description are two different things. 'AccObject::UpdateActionDesc' was (IMHO somewhat confusingly) handling both. Drop the handling of the accessible description from there and call the already existing 'AccObject::UpdateDescription' at the only call site of 'AccObject::UpdateActionDesc' in addition, which does exactly the same thing. Change-Id: I220df676f128a5db69ab4cebe7772d92f6b9b0ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128005 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-01-06wina11y: Use separate local variable for action descriptionMichael Weghorn
Use a separate local variable for the accessible *action* description here, which is independent of the accessible description handled above. While at it, use '!OUString::isEmpty' instead of 'OUString::getLength() > 0'. Change-Id: I146d8603ed3decde68f8ce716ac13c04b0263040 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128004 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-12-10Generally determine Rdb content from gb_*_set_componentfile callsStephan Bergmann
...instead of by listing the content somewhat redundantly in the Rdb_*.mk files, to avoid duplication of logic for components that are only built conditionally (and thus should only be included conditionally in the corresponding Rdb). To achieve that, add an "rdb" parameter to gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros that internally call gb_ComponentTarget_ComponentTarget), which is used to make the appropriate gb_Rdb_add_component call internally from within gb_ComponentTarget_ComponentTarget. (As a special case, gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that has already been done by the corresponding gb_Library_set_componentfile call, so allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to support that special case.) Most Rdb_*.mk files are thus mostly empty now. One exception is i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as needed during the build in CustomTarget_i18npool/localedata. 1c9a40299d328c78c035ca63ccdf22c5c669a03b "gbuild: create services.rdb from built components" had already tried to do something similar (in addition to other things) under a new --enable-services-rdb-from-build option. However, that approach had four drawbacks that this approach here addresses (and which thus partly reverts 1c9a40299d328c78c035ca63ccdf22c5c669a03b): 1 Rdb_services shall not contain the component files of all libraries that are built. While that commit filtered out the component files that go into Rdb_ure/services (ure/Rdb_ure.mk), it failed to filter out the component files that go into others like Rdb_postgresql-sdbc (connectivity/Rdb_postgresql-sdbc.mk). 2 The code added by that commit to Makefile.gbuild codified the knowledge that there is an Rdb_services, which is brittle. 3 The code added by that commit to solenv/gbuild/Rdb.mk codified the knowledge (for gb_Rdb__URECOMPONENTS) that there is an Rdb_ure/services, which is brittle. 4 Introducing an --enable-services-rdb-from-build option needlessly provided two different ways how the content of Rdb_services is assembled. The changes done here would leave --enable-services-rdb-from-build as a misnomer, as it no longer controls how Rdb_services is assembled. I thus renamed it to --enable-customtarget-components, as that is apparently what it still does now. Change-Id: Ia5e8df4b640146c77421fcec6daa11a9cd260265 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126577 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-11-26loplugin:stringviewparamStephan Bergmann
Change-Id: I8a4c310e3a963362bff390e93ca39a7583e83e1e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125857 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-11-01Prepare for removal of non-const operator[] from Sequence in winaccessibilityMike Kaganski
Change-Id: Ib689146520a99bbdaa7020583a4f34603c26ca19 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124412 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-29Fix misuses of NULL across Windows-only codeStephan Bergmann
...which defines NULL as a plain 0 integer literal instead of the GNU __null extension, so clang-cl's -Wnull-conversion cannot kick in. These findings are from an experimental build done with clang-cl and a modified > --- a/clang/lib/Headers/stddef.h > +++ b/clang/lib/Headers/stddef.h > @@ -83,6 +83,10 @@ typedef __WCHAR_TYPE__ wchar_t; > # if !defined(__MINGW32__) && !defined(_MSC_VER) > # define NULL __null > # else > -# define NULL 0 > +# if __cplusplus >= 201103L > +# define NULL nullptr > +# else > +# define NULL 0 > +# endif > # endif > #else > # define NULL ((void*)0) However, that build also ran into lots of places where 3rd-party code in external/ and Windows system headers caused issues when NULL is nullptr (which I worked around with various hacky patches for that build), so this is unfortunately not something that can easily be enabled generally. Change-Id: I10674464498a9bc63578d9e6cc32ddde23ab4f30 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124419 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-10-05drop 'using namespace std' in winaccessibilityJulien Nabet
Change-Id: Ibb6c4b747a706e126f5469d8348cd78a70561075 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123116 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-10-01loplugin:nullptr (clang-cl)Stephan Bergmann
Change-Id: I47ac4ff7d82eb5732ad54e3b42c18c3665c83b82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122845 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-30-Werror,-Wshadow (clang-cl)Stephan Bergmann
Change-Id: I4bd8427dcd4cd68053fe4e607c4ba05be215ffb3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122882 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-30Extended loplugin:referencecasting/redundantcast (clang-cl): winaccessibilityStephan Bergmann
Change-Id: I6de94437ed00b295be1c388ac4a2c0784dd3cc6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122883 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-30loplugin:consttobool (clang-cl)Stephan Bergmann
Change-Id: I8947750dbcc0cfdfd04fac3b9e22d85dc6f8da80 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122873 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-30loplugin:sallogareas (clang-cl)Stephan Bergmann
Change-Id: I6a529d2eb737d284bf1e9c1857680c33581f5e0e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122846 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-30loplugin:includeform (clang-cl)Stephan Bergmann
Change-Id: Ia374fe0a7a0392e91821fecd1e6ee5917864d59c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122848 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-20wina11y: Drop bool param from CMAccessible::NotifyDestroyMichael Weghorn
... and 'AccObject::NotifyDestroy', respectively. The only calling site calls it with 'true' as parameter (and 'CMAccessible::NotifyDestroy' was calling 'm_xAccessible.clear()' regardless of what value the passed param had anyway). Change-Id: I08a24f79b50ec327ae461bd44ee6460a2d8145f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122343 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-20wina11y: Drop AccObject::m_bShouldDestroyMichael Weghorn
The getter, 'AccObject::ifShouldDestroy', was unused, so drop it. The only place where the 'm_bShouldDestroy' member was actually used was in 'AccObject::NotifyDestroy', where it was assigned a value from a method param that was then passed further right away, so there's no need to store the value at all. Change-Id: Id5688e9742892e345b143a8eebeed5099696a0f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122342 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-18tdf#100086 wina11y: Return "fresh" IEnumVARIANT for get_accSelectionMichael Weghorn
Create a clone and reset the IEnumVariant returned in 'CMAccessible::get_accSelection' when multiple children are selected. It seems reasonable to assume that an 'IEnumVARIANT' retrieved by calling the 'IAccessible::get_accSelection' [1] method to get access to the selected children will start enumerating selected children at the beginning, not where enumeration left off with any previously retrieved 'IEnumVARIANT'. I came across this because a pending NVDA pull request to implement the announcement of multiple selected Calc cells mentions that "accSelection is broken in LibreOffice" [2]. NVDA uses 'IAccessible::get_accSelection' and then 'IEnumVARIANT::Next' to get the amount of currently selected cells. However, with the same underlying 'CMAccessible' object being used in subsequent attempts to retrieve the count of selected children and its 'm_lCurrent' member not being reset in between, this effectively meant that children considered when retrieving the selection the previous time were considered as "already having been taken into account" when (not) looping over the children to return in 'CEnumVariant::Next'. [1] https://docs.microsoft.com/en-us/windows/win32/api/oleacc/nf-oleacc-iaccessible-get_accselection [2] https://github.com/nvaccess/nvda/pull/12849/commits/b9f7ee1c2a8cbb9415545dc2562901881e27f11f Change-Id: I8e6b8bffaab010a0cfa7db8d43807e7520673d45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122268 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-17wina11y: Get rid of more HWND<->sal_Int64 castingMichael Weghorn
... by changing the first param for AccObjectManagerAgent::SaveTopWindowHandle to HWND. Change-Id: Ia94bd95c49a64e63b1be332bd03e83a288707d80 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122204 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-17wina11y: Avoid some casting between HWND and sal_Int64Michael Weghorn
... by changing the corresponding params for AccObjectManagerAgent::InsertAccObj and AccObjectManagerAgent::InsertChildrenAccObj to HWND. Change-Id: I598bac30d827ae9166bc21cb5e8dff88a5cc99bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122203 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-17wina11y: Drop OBJID_* defines from MAccessible.hMichael Weghorn
They are defined in WinUser.h, so there's no need to duplicate that. Change-Id: I1ab4255a8964d7822eface027d3cef7dcd6d29eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122201 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-16tdf#100086 wina11y: Don't delete a11y object for removed cell right awayMichael Weghorn
When handling a SELECTION_CHANGED_REMOVE event, AccDescendantManagerEventListener previously emitted a corresponding EVENT_OBJECT_SELECTIONREMOVE MSAA event with the removed child's ID as a parameter, then deleted that child's accessibility object. This resulted in the accessibility object no longer being available if accessibility tools queried for the object just received in the EVENT_OBJECT_SELECTIONREMOVE event. As a consequence, no 'event_selectionRemove' would be triggered for any table cell object on NVDA side, so an updated selection would not be announced for that case. To keep child objects available for such cases, don't delete the corresponding object in the handler for the SELECTION_CHANGED_REMOVE handler, but remember it for deletion and only do the actual deletion once a subsequent different event is handled. With this in place, the announcement for multiple selected cells in Calc generally works with the NVDA screen reader and a pending NVDA pull request [1] by Leonard de Ruijter in place (s.a. discussion in NVDA issue [2] for more background and further information). (There are still cases where events in response to selection changes are missing, as described e.g. in tdf#118508 and tdf#118748, but those are not winaccessibility-specific and it's the same when using the gtk3 VCL plugin with the Orca screen reader on Linux.) [1] https://github.com/nvaccess/nvda/pull/12849 [2] https://github.com/nvaccess/nvda/issues/9310 Change-Id: I7a46060c501ba9b8288e7c127121a535c60ce2bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122169 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-15wina11y: Forward-declare XAccessible in AccObjectWinManager.hxxMichael Weghorn
instead of including the header, as suggested by Mike Kaganski in the Gerrit change for commit 6bf771f0a5ba7be9955f05b307c190fb157adb47 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Thu Sep 9 11:36:57 2021 +0100 wina11y: Use XAccessible* instead of void* Change-Id: If52de3a71af63697815e4ec6a19f9139d5a6973d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122085 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (The header had actually been included previously, so the above commit had added it to the same header a second time...) Change-Id: Id6a6c5e2426bf07e41f29e1473ec1694970272c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122132 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-14wina11y: Use XAccessible* instead of void*Michael Weghorn
Change-Id: If52de3a71af63697815e4ec6a19f9139d5a6973d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122085 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-08tdf#100086 tdf#124832 wina11y: Implement IAccessibleTableCellMichael Weghorn
Add a new class 'AccTableCell' that implements the IAccessibleTableCell interface from the IAccessible2 spec and add what's needed to expose it to accessibility tools via COM. Since there's no specific XInterface for table cells that an XAccessible's context could be queried for, make use of the fact that a table cell's parent is a table, i.e. its accessible context implements XAccessibleTable. AccTableCell keeps a reference to that table and remembers the cell's index in the parent to retrieve information on the cell from there. This addresses the > At least for LibreOffice Table Cells don't implement > IAccessibleTableCell, and therefore there's no way to get the row and > column span. LibreOffice itself also does not expose the merged state in > the accessible name of the cell. comment from [1] (which is the NVDA counterpart for LO's tdf#124832) and may also help for tdf#100086, though more work will be needed on LibreOffice and/or NVDA side for both issues. [1] https://github.com/nvaccess/nvda/issues/9310 Change-Id: I0f53212d14ee17c760b9e6c91be2154a1b25d862 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121821 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-08tdf#100086 tdf#124832 wina11y: Implement IAccessibleTable2Michael Weghorn
Extend 'CAccTable' to implement the 'IAccessibleTable2' interface in addition to the (deprecated) 'IAccessibleTable' interface from the IAccessible2 spec. 'IAccessibleTable2::get_cellAt' and 'IAccessibleTable2:get_nSelectedCells' are basically the same as 'IAccessibleTable::get_accessibleAt' and 'IAccessibleTable::get_nSelectedChildren' under new names. 'IAccessibleTable2::get_selectedRows' and 'IAccessibleTable2::getSelectedColumns' are essentially the same as their 'IAccessibleTable' counterparts, except that they have the first param removed (which is ignored in the IAccessibleTable version anyway). 'IAccessibleTable2::get_selectedCells' is similar to 'IAccessibleTable::get_selectedChildren', but returns an array of references to selected cells, while the latter just returns an array of their indices. Note: Just having the IAccessibleTable2 interface, but not the IAccessibleTableCell one implemented makes the experience when using the NVDA screen reader temporarily worse, e.g. it now only says "selected" instead of the name of the currently focused cell in Calc. Implementation of IAccessibleTableCell is added in an upcoming commit (Change-Id: I0f53212d14ee17c760b9e6c91be2154a1b25d862, "tdf#100086 tdf#124832 wina11y: Implement IAccessibleTableCell") and makes NVDA announce the name of the cell again. Change-Id: I75346efc3b6e79d5ebf5e1954e9c516244efb887 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121820 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-07wina11y: Drop CAccTable::GetXInterfaceMichael Weghorn
Consistently use the 'pRXTable' member directly instead of mixing both ways to access it in almost every CAccTable method. While at it, also unify code a bit which is used to check 'pRXTable' inside of most CAccTable methods. Change-Id: Iafbff80b8304edd994507f86abd57b6dae7fe353 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121778 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-07wina11y: Move "stdafx.h" include to headersMichael Weghorn
Move the "stdafx.h" include to the MAccessible.h and UNOXWrapper.h headers from the corresponding source files, since the 'ATL_NO_VTABLE' define from stdafx.h is already used in the headers. (This e.g. also makes sure that the define is known when opening one of those headers in an IDE.) Change-Id: I3b6b7df037846daaad4d702e0e0c0bd2970dc663 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121773 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-07wina11y: Drop unused CMAccessible::IsDescendantManageMichael Weghorn
Change-Id: I90aa35ec3567d720c8adbe0cfc96343bef678ba1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121730 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-07wina11y: Let CMAccessible::get_IAccessibleFromXAccessible return boolMichael Weghorn
... instead of BOOL (from minwindef.h). All callers already assign the result to bool anyway. Change-Id: Ica29df7218815b00346474b679e7dbb180e96a85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121728 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-07wina11y: Drop unused CMAccessible::m_bRequiresSaveMichael Weghorn
It was already unused when it was added in commit a18bdb3bc05e761704cc345a66a9d642bc4f4a0a Date: Thu Nov 14 08:18:05 2013 +0000 Integrate branch of IAccessible2 Change-Id: I449314d1c13d27e76199e4bb753e88b58b8949d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121727 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-01tdf#135588 wina11y: Map AccessibleRole::STATIC to ROLE_SYSTEM_STATICTEXTMichael Weghorn
This looks like a better match to me than the previously used 'IA2_ROLE_TEXT_FRAME' and the NVDA screen reader reads the text of child objects of 'ROLE_SYSTEM_STATICTEXT' when announcing their parent objects if they have a specific role (e.g. 'ROLE_SYSTEM_PANE' or 'ROLE_SYSTEM_GROUPING'). Description for 'ROLE_SYSTEM_STATICTEXT' from [1]: > The object represents read-only text, such as labels for other controls > or instructions in a dialog box. Static text cannot be modified or > selected. Description for 'IA2_ROLE_TEXT_FRAME' from [2]: > Collection of objects that constitute a logical text entity. With this and an additional change to make the NVDA screen reader speak the children of a VclBox, NVDA reads the complete text of MessageDialogs as they are shown, rather than just the dialog title. ('AccessibleRole::STATIC' is used for the readonly VCLMultiLineEdits in a MessageDialog, s. 'VCLXAccessibleEdit::implGetAccessibleRole'.) The additional change needed to fix tdf#135588 when using NVDA on Windows is to make sure that 'AccessibleRole::PANEL' (used for a VclBox on Windows, s. commit 685ec1899435037205d98a102a32ca8b6a4836d0 Date: Mon Feb 17 16:57:44 2014 +0000 Related: fdo#74284 try AccessibleRole::PANEL for VclBoxes under windows Change-Id: Ic8c743c2646c8610b3d90425024413b40dfdab13 and additional information in fdo#74284) is mapped to something for which NVDA descends into the children. Testing this by just changing the LibreOffice side can be done by adapting the mapping for 'AccessibleRole::PANEL' to 'ROLE_SYSTEM_PANE' like this: diff --git a/winaccessibility/source/service/AccObject.cxx b/winaccessibility/source/service/AccObject.cxx index 9e3f7d063b3b..e0ae1e2dc03e 100644 --- a/winaccessibility/source/service/AccObject.cxx +++ b/winaccessibility/source/service/AccObject.cxx @@ -98,7 +98,7 @@ const short ROLE_TABLE[][2] = {OPTION_PANE , IA2_ROLE_OPTION_PANE}, {PAGE_TAB, ROLE_SYSTEM_PAGETAB}, {PAGE_TAB_LIST, ROLE_SYSTEM_PAGETABLIST}, - {PANEL, IA2_ROLE_OPTION_PANE}, + {PANEL, ROLE_SYSTEM_PANE}, {PARAGRAPH, IA2_ROLE_PARAGRAPH}, {PASSWORD_TEXT, ROLE_SYSTEM_TEXT}, {POPUP_MENU, ROLE_SYSTEM_MENUPOPUP}, Adapting NVDA as follows to handle 'controlTypes.ROLE_OPTIONPANE' accordingly might be a better approach, though: diff --git a/source/NVDAObjects/behaviors.py b/source/NVDAObjects/behaviors.py index e51f9e4a3..47389186e 100755 --- a/source/NVDAObjects/behaviors.py +++ b/source/NVDAObjects/behaviors.py @@ -89,6 +89,7 @@ class Dialog(NVDAObject): continue #For particular objects, we want to descend in to them and get their children's message text if childRole in ( + controlTypes.ROLE_OPTIONPANE,^M controlTypes.ROLE_PROPERTYPAGE, controlTypes.ROLE_PANE, controlTypes.ROLE_PANEL, I'll discuss that in the corresponding NVDA issue on GitHub: [3] [1] https://docs.microsoft.com/en-us/windows/win32/winauto/object-roles [2] https://accessibility.linuxfoundation.org/a11yspecs/ia2/archive/ia2-1.0.2/docs/html/_accessible_role_8idl.html#e37ff81431ee3762a5d41a2cb909108d73becd811853026681d0000b17da7862 [3] https://github.com/nvaccess/nvda/issues/11687 Change-Id: Ic49d49cfc2d5f01646086931f9f8a522c6f0d5fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121476 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-07-21wina11y: Deduplicate mapping for IA2TextBoundaryTypeMichael Weghorn
Add a local function 'lcl_matchIA2TextBoundaryType' that returns the UNO equivalent for the boundary type and use it from all 3 places that previously did the same mapping. Also, use the constants defined in the 'AccessibleTextType.hpp' header rather than hard-coding the values here again. It is unclear to me what the // In New UNO IAccessibleText.idl these constant values are defined as follows: comment refers to, which has been there since commit commit a18bdb3bc05e761704cc345a66a9d642bc4f4a0a Date: Thu Nov 14 08:18:05 2013 +0000 Integrate branch of IAccessible2 Just the winaccessibility directory initially. Change-Id: Ia21abb8d7088646ad6c1f83b3a03e7add716b0c0 (I don't see any IAccessibleText.idl anywhere. Maybe that was meant for some follow-up change that never took place in the end?) Change-Id: I6b8af2215948e8d0241e6f438c0f8cc00adc800f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119316 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-07-09loplugin:indentation (clang-cl)Stephan Bergmann
Change-Id: Iae559ca8bee9650c01167a4d1b918e18cbf03c28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118660 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-06-28wina11y: enum XInterfaceIndex -> enum class XInterfaceTypeMichael Weghorn
Convert enum 'XInterfaceIndex' to an enum class 'XInterfaceType'. Also, drop the explicitly assigned but unused numerical values (indexes?) and the unused 'XI_NULL' value from the enum. Change-Id: Ice6d33e6523b3885836f54bc486bbe90de4c3b95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118018 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-06-28wina11y: Convert QUERYXINTERFACE macro to template functionMichael Weghorn
Change-Id: Ia4ecab7ada4df83b773505561569cededef35612 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118005 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-06-28wina11y: Use range-based for loopMichael Weghorn
Use a const reference instead of a pointer for the iteration. Drop the extra 'g_CMAccessible_AggMap' entry at the end that was only used to indicate the end of the array in the iteration previously. Change-Id: I411e9274d56ce0ed2658dfbe3d03670e485c4b4a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118004 Tested-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-04-07Updated README.md files to represent current code / use Markdown formatHossein
Previously, all of the README files have been renamed to README.md and now, the contents of these files were changed to use Markdown format. Other than format inconsistency, some README.md files lacked information about modules, or were out of date. By using LibreOffice / OpenOffice wiki and other documentation websites, these files were updated. Now every README.md file has a title, and some description. The top-level README.md file is changed to add links to the modules. The result of processing the Markdown format README.md files can be seen at: https://docs.libreoffice.org/ Change-Id: Ic3b0c3c064a2498d6a435253b041df010cd7797a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113424 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-03-24Using .md extension/Markdown syntax for modules READMEHossein
Renaming all README files for all top level modules to README.md, applying no content change at this stage to be able to track history of the files. These files should be edited to use correct Markdown syntax later. Change-Id: I542fa3f3d32072156f16eaad2211a397cc212665 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112977 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2021-03-23tdf#124176 Use pragma once in w*Vincent LE GARREC
Change-Id: I693f6dafb743d39afd8e41e66a8066f04043f8a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112052 Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2021-03-12drop unneeded includeCaolán McNamara
Change-Id: I2f75748d5601d699471d050558885c0efb977223 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112349 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-03loplugin:referencecasting (clang-cl)Stephan Bergmann
Change-Id: If32c6f6d3618c134cfb2ac89e827491525c34687 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111811 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-02-10Remove unneeded breaksAndrea Gelmini
Extending this: https://gerrit.libreoffice.org/c/core/+/110512 Change-Id: If7e6f9c4079c2e0b48e642aa0b140fb4e03996bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110520 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-15Silence warning C4189: local variable is initialized but not referencedStephan Bergmann
Change-Id: I6157c6e92877738366c142025a3bc8f3e38eb0a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107737 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-07loplugin:stringviewparam (clang-cl)Stephan Bergmann
Change-Id: Ie29f1a5a66dd53d1e1fc9332ca4b817fa4eb43de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107332 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>