[Development] Bug#874054: Setting QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 has a huge negative performance impact, should not be always on
Frederik Gladhorn
frederik.gladhorn at qt.io
Tue Sep 5 10:32:43 CEST 2017
I'm a bit split here, let's try to find some middle ground :)
I do think that we should always run with accessibility enabled and we don't
do that for a reason.
One thing to fix for linux accessibility is listening to the change signal on
for a11y being enabled or not. If I recall correctly listening to property
changes on dbus is not implemented in Qt since it's impossible to know if
there are any listeners to these change signals, Thiago knows the details I
think.
The next thing is to make sure we don't actually send the keyboard and mouse
events when not needed (pure insanity anyway, we should have a sound
approach...). For the time being sending all of these events over dbus is the
only way to make Orca happy and thus the only way to make applications behave
somewhat acceptable for blind users. Thinking about the code gives me
nightmares though and I'd support anyone looking at it and making sure we
don't overdo the sending of events.
And then Allan is right, by setting QT_LINUX_ACCESSIBILITY_ALWAYS_ON you ask
for it. All the stuff unconditionally. Please don't, why do you need it in the
first place?
Maybe it's time to sit down and create a somewhat defined way when it should be
enabled? Right now Qt is trying to emulate Gnome's way, except since we don't
listen to the change signal, we never dynamically enable/disable a11y. The
code is there, it's just actually reacting to the notification that's missing.
Cheers,
Frederik
On søndag 3. september 2017 19.13.38 CEST Allan Sandfeld Jensen wrote:
> On Sonntag, 3. September 2017 18:15:15 CEST Samuel Thibault wrote:
> > On the long run, it really should. Just hiding issues is not the way
> > forward :)
> >
> > Also, note that if the performance is so bad, it means something *needs*
> > to be fixed, otherwise blind users will get the bad performance, and
> > nobody will be there to fix it, because nobody notices it except blind
> > users, who are left with little hope to fix it by themselves.
>
> It is not a issue or a bug. The performance impact comes from sending
> everything the mouse hovers over to the accessibility framework (for
> instance to be spoken aloud), when there is not any accessibility tools
> running.
>
> You are deliberately crippling Qt to always send dbus events even when no
> one is listening.
>
> Note the performance impact is the same in all applications regardless of
> framework. Running accessibility tools has a substantional performance cost
> on mouse movements, but a mouse rendered or text scrolling at 60 fps is
> completely pointless to blind people, but rather important to everybody
> else.
>
> 'Allan
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
More information about the Development
mailing list