Bug 152281 - warn:vcl: ... AccessibleDescription already set
Summary: warn:vcl: ... AccessibleDescription already set
Status: RESOLVED WORKSFORME
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
7.5.0.0 alpha0+
Hardware: All Linux (All)
: medium trivial
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Qt5 console-noise
  Show dependency treegraph
 
Reported: 2022-11-28 21:04 UTC by Eyal Rozenberg
Modified: 2022-12-09 22:05 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eyal Rozenberg 2022-11-28 21:04:26 UTC
When I load LO with the qt5 VCL, I get (among other messages) large number of consecutive console lines saying:


warn:vcl:17724:17724:vcl/source/window/accessibility.cxx:451: AccessibleDescription already set


Well...

1. Why is LO setting it again, if it's already set?
2. Suppose that LO thinks it needs to set it again, then discovers it shouldn't have. Why does it set it _yet again, over 10 times?

Version: 7.5.0.0.alpha1+ (X86_64) / LibreOffice Community
Build ID: 360b5861fb46353e7a6b9f5abf13339cd719a8df
CPU threads: 4; OS: Linux 6.0; UI render: default; VCL: qt5 (qfont+xcb)
Locale: en-IL (en_IL); UI: en-US
Comment 1 Michael Weghorn 2022-12-09 12:58:01 UTC
I don't get any such warnings when starting LO with an empty Writer doc. Having the Orca screen reader run also doesn't make the warnings show up.

Does this still happen with a current master build and a fresh LO profile?
Are you taking any specific steps or using a specific doc where this happens?

Version: 7.6.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 78b5195d8add0679263a5e08ba34be9b27637a65
CPU threads: 4; OS: Linux 6.0; UI render: default; VCL: qt5 (qfont+xcb)
Locale: en-GB (en_GB.UTF-8); UI: en-US
Calc: threaded
Comment 2 Eyal Rozenberg 2022-12-09 16:00:55 UTC
(In reply to Michael Weghorn from comment #1)
> I don't get any such warnings when starting LO with an empty Writer doc.
> Having the Orca screen reader run also doesn't make the warnings show up.
> 
> Does this still happen with a current master build and a fresh LO profile?

Actually, I am now not able to reproduce this sequence of messages.

But - I saw what I saw, which I'd argue is enough of a reason to have a dev look at the logic for "setting the accessible description".

> Are you taking any specific steps or using a specific doc where this happens?

Nope, it was just starting LO. I think I start it with --writer .
Comment 3 Michael Weghorn 2022-12-09 18:44:16 UTC
(In reply to Eyal Rozenberg from comment #2)
> Actually, I am now not able to reproduce this sequence of messages.

Thanks for testing again. Closing as WORKSFORME for now then.

> But - I saw what I saw, which I'd argue is enough of a reason to have a dev
> look at the logic for "setting the accessible description".

Without having taken a look yet: Often, there are many different code paths that something can be reached and the LO code base is rather complex, so at least my personal focus is on other tickets - in particular given that the message by itself has no impact on end users but is "just" a warning.
For a11y for example, there is for example meta bug 101912 with more than 200 tickets in the dependency tree.

Of course, if a developer wants to look into this, that's fine, but to be honest, I currently don't see much value in keeping this ticket open for that purpose unless somebody is actually planning to do so.
Comment 4 Michael Weghorn 2022-12-09 22:05:53 UTC
(In reply to Michael Weghorn from comment #3)
> Without having taken a look yet: Often, there are many different code paths
> that something can be reached and the LO code base is rather complex [...]

I still took a quick look:

The message comes from here:
https://git.libreoffice.org/core/+/78b5195d8add0679263a5e08ba34be9b27637a65/vcl/source/window/accessibility.cxx#451

I don't see anything obviously suspicious in Window::SetAccessibleDescription itself.

Grepping where this is potentially called gives:

> $ git grep SetAccessibleDescription
> bin/find-can-be-private-symbols.functions.results:Menu::SetAccessibleDescription(unsigned short, rtl::OUString const&)
> bin/find-can-be-private-symbols.functions.results:TabControl::SetAccessibleDescription(unsigned short, rtl::OUString const&)
> bin/find-can-be-private-symbols.functions.results:vcl::Window::SetAccessibleDescription(rtl::OUString const&)
> editeng/source/accessibility/AccessibleContextBase.cxx:void AccessibleContextBase::SetAccessibleDescription (
> include/editeng/AccessibleContextBase.hxx:    void SetAccessibleDescription (
> include/editeng/AccessibleContextBase.hxx:        descriptions given to the SetAccessibleDescription is ignored or
> include/vcl/menu.hxx:    void SetAccessibleDescription( sal_uInt16 nItemId, const OUString& rStr );
> include/vcl/tabctrl.hxx:    void SetAccessibleDescription( sal_uInt16 nItemId, const OUString& rStr );
> include/vcl/window.hxx:    void                                SetAccessibleDescription( const OUString& rDescr );
> svx/source/accessibility/AccessibleControlShape.cxx:        SetAccessibleDescription(
> svx/source/accessibility/AccessibleShape.cxx:            SetAccessibleDescription(sString, AccessibleContextBase::FromShape);
> vcl/source/app/salvtables.cxx:    m_xWidget->SetAccessibleDescription(rDescription);
> vcl/source/control/tabctrl.cxx:void TabControl::SetAccessibleDescription(sal_uInt16 nPageId, const OUString& rDesc)
> vcl/source/window/accessibility.cxx:void Window::SetAccessibleDescription( const OUString& rDescription )
> vcl/source/window/builder.cxx:                    pTabControl->SetAccessibleDescription(nPageId, rValue);
> vcl/source/window/builder.cxx:                pParent->SetAccessibleDescription(nNewId, rValue);
> vcl/source/window/menu.cxx:void Menu::SetAccessibleDescription( sal_uInt16 nItemId, const OUString& rStr )
> vcl/source/window/window2.cxx:        SetAccessibleDescription(rValue);

and then there are several call sites calling these, so without being able to even reproduce the warning, it's hard to say what's going on.