[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