In AccessibleEditableTextPara::GetSelection, call
ESelection::Adjust so that the earlier position in
the text is considered the start position and the
position later in the text is considered the end
position, independent of whether the selection was
done forwards or backwards.
Always using the smaller index for the start index
and the greater index for the end index matches what
is done for Writer and what is also seen for other
applications as well.
Example results for typing "abcd", moving the mouse to
after the "c" and selecting two characters backwards
(i.e. "bc" is selected, with the caret being in
front of the "b":
Writer, with either the gtk3 or qt6 VCL plugin
and the paragraph selected in Accerciser's tree view
of the LO a11y hierarchy gives this in the IPython
console:
In [2]: acc.queryText().getSelection(0)
Out[2]: (1, 3)
For a Calc cell in edit mode, the result would
previously be:
In [4]: acc.queryText().getSelection(0)
Out[4]: (3, 1)
, but now it matches the behavior seen with
Writer.
In a quick test with Gedit on Linux and the
URL bar on Firefox on Windows and querying
the selection using the IAccessibleText
selection, the lower index was always reported
for the start index as well and the greater one
for the end index as well.
For gtk3, this additionally ensures that a selection
count of 1 is reported for a non-zero selection
that was done backwards as well, as
text_wrapper_get_n_selections returns 0 if the
end index isn't larger than the start index.
Change-Id: I549d85968f62cbfc2ee4d39c5a4aeba8767df14d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190716
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
... variant that only calls rtl::Reference<AccessibleEditableTextPara>::is().
Instead, spell out the type instead of using `auto`
to make this a bit more readable/obvious in the callers.
Change-Id: I53e2e2b8d22cd65d9d3d1f5b17e0c3ac17a711e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189677
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Rename files accordingly after the class
was renamed in previous commit
Change-Id: I33210b47cda5f71820a3c0fa657e4c3548d45732
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Jun 25 10:15:23 2025 +0200
a11y: Rename OAccessibleComponentHelper to OAccessible
Change-Id: I1d38d124af685960c0170601e930da516ce2ead3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186953
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The helper class used to implement less functionality
in the past and was used less than it is now.
But by now it is the central helper/base class used
by most a11y classes.
Since
commit 22049f633b
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon May 26 12:24:52 2025 +0200
vcl a11y: Let OAccessibleComponentHelper implement XAccessible
it also implements the XAccessible interface.
That will allow to switch parameters and class members
from the abstract XAccessible interface to using this
more concrete C++ base class in various places.
Rename the class to OAccessible to account for the
new responsibilities, and adjust its doc accordingly.
Renaming source and header file will be done in a
separate commit to simplify (git) keeping track.
Change-Id: I33210b47cda5f71820a3c0fa657e4c3548d45732
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186952
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
By now, in particular after
Change-Id: I62da0040e6c98636681c4f05dbd0b796dae5b928
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon May 26 09:35:07 2025 +0200
vcl a11y: Let VCLXAccessibleComponent implement XAccessible
, all OAccessibleComponentHelper subclasses are
implementing the XAccessible interface and returning
`this` in their XAccessible::getAccessibleContext implementation.
Unify and deduplicate that by moving the implementation to the
OAccessibleComponentHelper base class.
Locking specifics (whether a mutex was locked and which one)
and whether a check whether the accessible hadn't been
disposed yet was done varied across the different implementations.
The new OAccessibleComponentHelper::getAccessibleContext
unifies this to use OExternalLockGuard, i.e. it both locks
the mutex and throws an exception if the instance is no
longer alive.
Should this commit result in any issues, it's likely because
there is a preexisting locking issue/inconsistency or an object
has already been disposed and that needs to be addressed.
(The easiest approach in case of a disposed object would be
to simply catch + ignore the exception in the caller, but
a more thorough investigation would likely be helpful.)
Change-Id: Ib56a9ddb1c36356943c2dfd7a5705351ee43e9d9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185849
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Drop the unpublished service
"com.sun.star.accessibility.Accessible"
because it's unused internally.
As the doc in the IDL file says:
> <p>Service <code>Accessible</code> is just a wrapper for the interface
> <code>XAccessible</code>. See the interface's documentation for more
> information.</p>
That wrapper isn't needed.
This is one step towards dropping the XServiceInfo
implementation from a11y classes, which will also help
avoid linker issues seen on Windows related to multiple
classes subclassing
cppu::ImplInheritanceHelper<class comphelper::OAccessibleComponentHelper,class com::sun::star::lang::XServiceInfo>
seen with upcoming commit
Change-Id: Ib56a9ddb1c36356943c2dfd7a5705351ee43e9d9
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon May 26 12:24:52 2025 +0200
vcl a11y: Let OAccessibleComponentHelper implement XAccessible
(Gerrit change [1], Windows CI log: [2]).
A search in Google and on Ask [3] gave one result that looks
relevant/where this service is used: [4]
It was originally added in commit [5]
commit 3f227e8755954e30abf9eb2cde6e4613514e4958
Author: Zev Spitz <shivisi@hotmail.com>
Date: Sun Sep 10 09:20:55 2017 +0200
Type definitions for LibreOffice, via Automation
, which doesn't explain whether/why the particular use of
the Accessible service was chosen there, i.e. whether this
is actually of relevance.
I've created an issue/discussion to make developers of
that project aware: [6]
Stopping to implement XServiceInfo in SwAccessibleContext
and subclasses will be done in a separate upcoming commit,
now that the only service implemented by them has been
dropped.
[1] https://gerrit.libreoffice.org/c/core/+/185849/6
[2] https://ci.libreoffice.org/job/gerrit_windows/200107/console
[3] https://ask.libreoffice.org/
[4] https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/activex-libreoffice/activex-libreoffice-tests.ts
[5] https://github.com/DefinitelyTyped/DefinitelyTyped/commit/3f227e8755954e30abf9eb2cde6e4613514e4958
[6] https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/73096
Change-Id: I7432d4a524ceaf404b1a2673d8bb6cdb142baf25
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186881
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Drop the unpublished service
"com.sun.star.text.AccessibleParagraphView"
because it's unused. (The IDL file only documents some
internal implementation details of the a11y classes
implementing the service. It also isn't fully up to
date, e.g. the description of the accessible name.)
For AccessibleEditableTextPara, also no longer implement
the XServiceInfo interface, as the now dropped service was the
only one that was supported.
This is one step towards dropping the XServiceInfo
implementation from a11y classes, which will also help
avoid linker issues seen on Windows related to multiple
classes subclassing
cppu::ImplInheritanceHelper<class comphelper::OAccessibleComponentHelper,class com::sun::star::lang::XServiceInfo>
seen with upcoming commit
Change-Id: Ib56a9ddb1c36356943c2dfd7a5705351ee43e9d9
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon May 26 12:24:52 2025 +0200
vcl a11y: Let OAccessibleComponentHelper implement XAccessible
(Gerrit change [1], Windows CI log: [2]).
A search in Google and on Ask [3] didn't give
any results that would suggest this unpublished service
could be relevant for third party code.
(Instances of the service couldn't be created by external
code anyway.)
[1] https://gerrit.libreoffice.org/c/core/+/185849/6
[2] https://ci.libreoffice.org/job/gerrit_windows/200107/console
[3] https://ask.libreoffice.org/
Change-Id: Iee961e76ff7af1dab46d26cd844763970adc98c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186876
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Use it to implement (inverted) logic in
AccessibleContextBase::IsDisposed and replace uses
of the latter in subclasses by using the (protected)
OAccessibleComponentHelper::isAlive directly.
Change-Id: Ib033097dfac9e7a986cb0334caf7ac568ad4300a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184793
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
The base class implementation in
OAccessibleComponentHelper::getAccessibleIndexInParent
already implements the same logic.
Change-Id: I4bd338632c4e440a54470f1294a9e67a0ccb866d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184000
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Use the equivalent base class method
OAccessibleComponentHelper::ensureAlive instead.
Change-Id: I17a87b743d2a7b324cd4ae04cb1b924c676f0195
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183979
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
... instead of having a separate getter,
AccessibleImageBullet::SetIndexInParent.
Change-Id: Ie0e59f87e12d04efd72aa5663c4a3eb0df9baf21
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183829
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Use base class method OAccessibleComponentHelper::NotifyAccessibleEvent
directly instead. That one has the reverse order for the old/new value
params, and no default for the old value, so adjust callers accordingly.
Change-Id: Ib591495c5698832a99cd60854d4ee8aa4a206442
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183828
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Let editeng's AccessibleImageBullet derive from
OAccessibleComponentHelper to make use of the
logic already implemented there instead of having to
implement all the XAccessibleComponent
and XAccessibleEventBroadcaster methods manually.
The existing AccessibleImageBullet::implGetBounds
implementations provide the necessary logic to implement
OAccessibleComponentHelper::implGetBounds, so mark it
as overriding the base class method.
Drop all of the other overrides that are no longer
needed as the implementation is now provided by
the base class.
No change in behavior intended or observed in a quick
test with Impress and Accerciser and the gtk3 VCL plugin
on Linux.
Sample steps to add a bullet item that shows
up in the a11y tree:
1) start Impress
2) Create a new slide (Ctrl+M)
3) type text "Hello world" for the first list item
4) right-click on paragraph to open context menu, select "Bullets and
Numbering"
5) For "Type", select "Graphics"
6) select "Select image..." -> "Gallery" -> "bluearrow"
7) close dialog with "OK" button
Then, start Accerciser, and locate the "Image bullet"
object within LibreOffice's a11y tree.
Change-Id: Iba9d44288be96838e39d7cee2333f7a074deae8e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183783
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
* Drop const qualifier, which removes the need to const_cast.
* Don't call AccessibleImageBullet::getAccessibleContext,
but just use `this` directly.
Change-Id: I4949ec624e44b6330a0ca5f71f898f1d17b4bd8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183781
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Instead of letting AccessibleImageBullet dispose
itself in AccessibleImageBullet::SetEditSource when
called with a null edit source, let the AccessibleEditableTextPara
that created the bullet and can therefore be considered the
owner (see AccessibleEditableTextPara::getAccessibleChild) dispose it
again in AccessibleEditableTextPara::dispose.
Also clear `maImageBullet`.
This is similar to
commit 138bc16c9a
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Apr 3 11:59:51 2025 +0200
editeng a11y: Let para manager dispose its child
Change-Id: I8083b0c9bf304942e9ead446bdeaefeb62ae609f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183780
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Let editeng's AccessibleEditableTextPara derive from
OAccessibleComponentHelper to make use of the
logic already implemented there instead of having to
implement all the XAccessibleComponent
and XAccessibleEventBroadcaster methods manually.
The existing AccessibleEditableTextPara::getBounds
implementations provide the necessary logic to implement
OAccessibleComponentHelper::implGetBounds,
so rename those accordingly (and drop the extra mutex
guard, as the base class takes care of that).
Drop all of the other overrides that are no longer
needed as the implementation is now provided by
the base class.
No change in behavior intended or observed in a quick
test with text in Impress slides and Accerciser and Orca
when using the gtk3 and qt6 VCL plugins on Linux.
Change-Id: I5cb47eb9c6738f4bd7807cbeef260151437c0862
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183681
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
* Make method non-const, which avoid the need to const_cast.
* Just use `this` directly instead of calling
`getAccessibleContext`, which returns a reference to `this`
again.
This also prepeare for turning AccessibleEditableTextPara
into an OAccessibleComponentHelper subclass in an
upcoming commit.
Change-Id: I74526e47070979ce34e89c165843ca3a5a9b1f60
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183680
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Instead of letting AccessibleParaManager dispose
itself in AccessibleEditableTextPara::SetEditSource when
called with a null edit source, let the AccessibleParaManager
that created the paragraph and can therefore be considered the
owner (see AccessibleParaManager::CreateChild) dispose it
again in AccessibleParaManager::Release.
This is consistent with how it also explicitly disposes
all children in AccessibleParaManager::Dispose.
This is the only place that calls AccessibleEditableTextPara::SetEditSource
with a null param, so this change shouldn't change behavior
in any way.
Change-Id: I9d6ec8db69a789c18fd424e680624744b4913798
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183679
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Add a helper method AccessibleEditableTextPara::GetBulletTextLength
instead of duplicating the same logic 6 times in different places.
Change-Id: I8f9fa307fe52c84ca0200126061c5a957c7e02ab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183677
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Use the existing unotools::WeakReference instead of the
custom WeakCppRef template class to hold weak references
to the AccessibleEditableTextPara objects in
AccessibleParaManager.
An AccessibleEditableTextPara forward-declaration is not
sufficient to use
unotools::WeakReference<AccessibleEditableTextPara>, so
re-arrange includes/forward-declarations a bit.
Drop the now unused WeakCppRef.
Change-Id: I54553059a7cb36515109573c5b22d73738b1c46f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183672
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Replace use of the custom WeakCppRef template class
for AccessibleEditableTextPara::maImageBullet by
unotools::WeakReference which provides the
same functionality (a weak reference and access
to the the concrete implementation class).
Change-Id: I333f467caeb4925d718313e679507f45c9c96e00
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183671
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Both callers are only interested in the XAccessible
in the returned std::pair, so let the method only
return that instead of the pair.
Drop the now unused AccessibleParaManager::Child typedef.
Change-Id: I2b271de7b3e668be982b01bd183e0c39d47f444d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183670
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This makes more obvious that the child is a
rtl::Reference<AccessibleEditableTextPara> here, which
is otherwise a bit harder to see with all the typedefs etc.
involved.
Change-Id: Id9d0c2457813b7e0fed34b0ce8fe52553ef6a39d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183669
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
AccessibleStaticTextBase::mpThis is only used to
pass it to Exception ctors, so it seems a bit
overkill to have to manage it for that purpose.
Drop it and the corresponding setter
AccessibleStaticTextBase::SetEventSource.
Its doc says that the interface is also used
as the event source for a11y events, but that's
not actually the case.
Also drop ScAccessibleCell::Init which now no
longer needs to override the base class implementation,
ScAccessibleCellBase::Init.
Change-Id: Ide64cf2e59bfb9ae7df41171cc36e1df0c86eb9f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183628
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Merge AccessibleStaticTextBase_Impl into
AccessibleStaticTextBase.
Further simplification will be possible in
upcoming commits.
Change-Id: I4f0067c2cf1cb5b2f464b8075bc4a64f44d7babc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183627
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
So far, "paragraph <number>" and the (start of) the
paragraph text were reported as the accessible description
of the paragraph.
This resulted e.g. in Orca saying something like
"Paragraph 0: Hello world Hello world" when moving cursor
to a paragraph containing the text "Hello world" in Impress,
because both, a11y description and the text reported via the
AtspiText interface were reported.
Drop the a11y description, which is also consistent with Writer
where no description is reported. The
// (writer takes first sentence here, but that's not supported
// from EditEngine)
comment dropped along with this commit looks outdated.
The fact that this is a paragraph is already reported via the
a11y role and the text is reported via the XAccessibleText
interface. (The information which paragraph this is could
be retrieved by checking the children of the paragraph's
parent, so if an AT wanted to report that, it could
implement corresponding logic on the client side.)
Adjust the Impress a11y test originally added in
commit 6185a27db4
Author: Colomban Wendling <cwendling@hypra.fr>
Date: Sun Jul 31 17:20:03 2022 +0200
tdf#150064 Add tests for a11y tree order
Check the tree order is stable across loads and page switches.
accordingly, which included the description in
the expected output, but that's not the purpose
of the test.
Also adjust the sw a11y test
(test::AccessibleTestBase::BasicTestFontworkDialog) accordingly.
Change-Id: Ifbc1a15a976d7488396630c6bc3c9e42ba26ccc1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183625
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Only query the XAccessibleContext of the parent
accessible for the XAccessibleComponent interface,
not the XAccessible first and the XAccessibleContext
only as fallback.
As far as I understand it, the XAccessible is only there
to allow retrieving the XAccessibleContext using
XAccessible::getAccessibleContext and all other logic
should be implemented in the class implementing
the XAccessibleContext interface.
That's also what the platform bridges rely on, see
e.g. `getComponent` in vcl/unx/gtk3/a11y/atkcomponent.cxx.
If there's any case where this is handled differently,
that one should likely be adjusted to match the pattern
used everywhere else, too, instead of having special
handling here in AccessibleEditableTextPara.
(In most cases, it's the same class that implements both,
the XAccessible and the XAccessibleContext interface
anyway.)
Change-Id: Ic03c11f8406213f5f44074e39fe867b4e8b93dff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183624
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Drop overrides of the XAccessibleExtendedComponent
which just return an empty string.
That is now already implemented in the base class
implementations in OAccessibleComponentHelper, see
Change-Id: I05547b12806a6a90b166edbe196b4bc5a27344be
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Mar 31 13:49:20 2025 +0200
a11y: Merge OAccessible{,Extended}ComponentHelper, add default impl
Change-Id: Ibc3fe295eaa2dc5443ba4f8fa25a81451b7b3765
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183553
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Merge OAccessibleExtendedComponentHelper and
OAccessibleComponentHelper by letting
OAccessibleComponentHelper already implement the
XAccessibleExtendedComponent interface.
Add default implementations for the two
XAccessibleExtendedComponent methods
(XAccessibleExtendedComponent::getToolTipText
and XAccessibleExtendedComponent::getTitledBorderText)
that simply return an empty string.
Replace all uses of XAccessibleExtendedComponent
by OAccessibleComponentHelper.
This simplifies the class hierarchy and prepares
for further simplification in upcoming commits.
Change-Id: I05547b12806a6a90b166edbe196b4bc5a27344be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183551
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Let editeng's AccessibleContextBase derive from
OAccessibleExtendedComponentHelper to make use of the
logic already implemented there instead of having to
implement all the XAccessible(Extended)Component
and XAccessibleEventBroadcaster methods manually.
Adjust the various subclasses accordingly as well.
Make OCommonAccessibleComponent::addAccessibleEventListener
and OCommonAccessibleComponent::removeAccessibleEventListener
no longer final so that AccessibleShape can override them
(to add/remove the listener for the AccessibleTextHelper
object in addition to calling the base class implementation).
The existing XAccessibleComponent::getBounds implementations
provide the necessary logic to implement
OAccessibleExtendedComponentHelper::implGetBounds,
so rename those accordingly (and drop the extra guards,
as the base class takes care of that).
Drop all of the other overrides that are no longer
needed as the implementation is now provided by
the base class.
No change in behavior intended or observed in a quick
test with Impress and Accerciser and Orca when using
the gtk3 and qt6 VCL plugins on Linux.
Change-Id: I7c42a9cac1099991bc5763b87c55ace2b0fed8a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183549
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Leave these 2 methods purely virtual in AccessibleContextBase,
as this depends on subclasses overriding them to function properly.
Change-Id: I52121e18f8bb0c76d8b588a7e09b3cca9f09232d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183544
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
AccessibleContextBase and AccessibleComponentBase
are both subclassed by the exact same classes.
Merge AccessibleComponentBase into AccessibleContextBase
to simplify the class hierarchy.
Drop now unnecessary overrides.
This also aligns AccessibleContext further
with the comphelper::OAccessibleExtendedComponentHelper
class that also implements both, XAccessibleContext
and XAccessibleExtendedComponent, and thus also prepares
for potential refactoring to deduplicate code in those
two classes in the future.
Change-Id: Ia3331f2bd4563bf9cdfee35c9ea6cca91bd093cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183543
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This method from the unpublished XAccessibleExtendedComponent
interface is not used by any of the a11y platform bridges, and
I don't know of any platform a11y API that would need it.
In order to report character/font attributes, there is the
XAccessibleText interface and its
XAccessiText::getCharacterAttributes method instead, which
actually gets used by the platform a11y bridges.
Therefore, drop this method to simplify code, and also decouple
the accessibility module a bit further from the toolkit
module without having to reorganize code further.
(VCLXFont from the toolkit module currently gets used in
various implementations.)
Change-Id: I06ea3cc5998a13927b3f869877b28f03ac07c89b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177809
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>