Summary: | Perpetual qt.accessibility.atspi warnings in log after activating screen reader with system monitor widget active | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | cwo <cwo.kde> |
Component: | System Monitor widgets | Assignee: | Plasma Bugs List <plasma-bugs-null> |
Status: | RESOLVED UPSTREAM | ||
Severity: | normal | CC: | ahiemstra, kdedev, nate, notmart |
Priority: | NOR | Keywords: | accessibility |
Version First Reported In: | master | ||
Target Milestone: | 1.0 | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
cwo
2025-01-22 12:43:05 UTC
Eeeeee, can confirm. hmm, LegendDelegate doesn't seem to export anything wrt Accessible Alright, I did a little digging because the non-stop stream of errors makes a11y testing extremely annoying. This is a minimal test case that triggers the issue: ``` import QtQuick import QtQuick.Controls Button { text: value property int value: 0 onClicked: value++ } ``` Click the button, and you get the same "qt.accessibility.atspi: ValueChanged event and no ValueInterface or ComboBox" error. qquickaccssibleattached seems to turn every valueChanged signal (i.e. every property named value that any Item has) into a QAccesssible::ValueChanged event, forwards that through some intermediaries to atspiadaptor, which then complains that the item is not a ValueInterface of ComboBox because the at-spi spec value thingy only makes sense for those. I think this happens at around line 350 in qquickaccessibleattached.cpp/ line 193 of qquickaccessibleattached_p.h, but the metaobject stuff goes a little over my head and I can't quite follow it (though I can't see anything else where this could possibly happen). I tried renaming the value property in LegendDelegate and that solves the error, but I don't think we can do that for API stability reasons. I'm not sure how to proceed from here. This likely requires changes in Qt (maybe either not forwarding all valueChanged events, or dropping them silently in atspiadaptor if there's no ValueInterface/Combobox). Sounds like a plain old Qt bug then. While we could deprecate value and add a new property, I'd rather not since value is used as a name quite a bit in QuickCharts.
> qquickaccssibleattached seems to turn every valueChanged signal (i.e. every property named value that any Item has) into a QAccesssible::ValueChanged event
That just sounds wrong and like very naive code to me.
Sounded wrong to me too tbh. But there may be reasons for it, I don't grasp all the internals. I'll prepare a qtbug then. It'll be my first, fingers crossed... |