Re: Proposal: enable accessibility by default for GNOME
- From: Ghee Teo <Ghee Teo Sun COM>
- To: Willie Walker <William Walker Sun COM>
- Cc: Mark Doffman <mark doffman codethink co uk>, desktop-devel-list gnome org
- Subject: Re: Proposal: enable accessibility by default for GNOME
- Date: Thu, 31 Jul 2008 15:16:20 +0100
Willie Walker wrote:
Thanks for the numbers Mark! Numbers speak a lot louder than blanket
statements, IMO, and you've always been awesome about giving numbers.
:-) I ran some tests on my Ubuntu Intrepid with GNOME 2.23.5 machine
as well.
1) As you mention, the at-spi-registryd will be automatically started
by gnome-session. The impact is data memory 550k and code size 40k
with 0% CPU as your numbers show. This seems to be on the order of
the geyes applet (900k/24k - DATA/CODE). Compare that to an xterm,
which is at 4.2m/304k.
2) Again, as you mention, all GTK+ applications will load the
accessibility modules, adding what seems to be 150k of odd data. For
what looks like the smallest GTK+ app known to man (the test program
you provide), this accounts for an increase of 1%.
3) To test for the extra overhead of creating ATK/GAIL peers for each
GTK+ object, I ran the following test twice, once with a11y enabled
and once w/o a11y enabled, both on a fresh boot/login:
a) Run gtk-demo
b) Run top to monitor the the CODE and DATA of the gtk-demo process
c) Open and then close each of the demos in gtk-demo
This test causes many many widgets to be created and thus exercises
the ATK/GAIL mechanism heavily. The results are *not* promising. :-(
Without a11y enabled, I see gtk-demo grow from 4.2m/140k to 11m/140k.
With a11y enabled, I see gtk-demo grow from 4.2m/140k to 27m/140k.
Ouch - more than double. This is very unexpected and I'm not sure
what's going on. On the positive front, the at-spi-registryd doesn't
grow.
4) The bonobo-activation-server is automatically started on my
machine, but that happens regardless of whether a11y is enabled or
not. I'm not sure who is running it, but it accounts for 32m/84k.
Did you look at the footprint of b-a-s before running the gtk-demo
program with and without A11Y ?
b-a-s is run whenever its service is requested the more application
it serves, the more memory it takes. The key is though how does it
differ with/without A11Y for the same run.
-Ghee
In any case, the results of #3 above make alarms go off, even for an
accessibility pundit such as myself. This will require some more
investigation.
Will
Mark Doffman wrote:
Hi everyone,
Rob Taylor wrote:
Hmm, my take here is that the current AT-SPI is possibly a little
too heavy to enable by default. I'd suggest we look at enabling a11y
by default when the new AT-SPI DBus is ready (2.26 at current
estimations)
I'll take my best guess about what happens when a11y is turned on:
1. The atspi registry daemon needs to be running.
'top' has the data memory usage at 550kb and the code size at 40kb. The
cpu utilization is exactly zero.
2. All gtk applications are going to load accessibility modules.
I'm not sure which modules are going to be loaded. I would say libgail
and libatk-bridge (including libspi). Perhaps not gail, isn't it now
included in gtk? Are liborbit and libbonobo loaded for other reasons
on gtk_init?
So the test program:
int main(int argc, char* argv[])
{
gtk_init(&argc, &argv);
gtk_main();
}
It uses 15464kb virtual memory and 596kb of data when accessibility
is turned on.
When accessibility is turned off it uses 13660kb of total virtual
memory and 456kb of data.
So there is 150kb odd of data initializing the atk-bridge and libspi.
3. Accessible objects are created for gtk widgets / other UI elements.
Finding how an ATK object is created feels very much like jumping
down a rabbit hole. In the end though Gail objects and Bonobo
servants are only created on-demand. This means that there will be
very little additional memory usage if accessibility is turned on but
not accessed.
This is the important part really. Bonobo servants might be very
large, and this, I think, is where ORBit/Bonobo gets its reputation
for being heavy. However, if a11y goes unused there shouldn't be any
created.
I've cc'd Mark Doffman for his imput as he's probably got the most
experience profiling current AT-SPI behaviour.
Rob
Willie Walker wrote:
The way accessibility support works is that GTK+ loads
accessibility modules (gail and atk-bridge) if it detects that
accessibility support is enabled.
If accessibility support is not enabled when an application starts,
I don't believe there is a way to indicate to a running GTK+
application to go ahead and load the accessibility modules
retroactively. As such, one needs to quit running applications and
restart them in order for changes to the accessibility setting to
take effect.
The current user experience is very bad and kind of a Catch 22
situation: in order to enable accessibility, they often need to use
assisitve technologies. In order to use assisitve technologies,
they often need accessibility enabled. So, what we do now is tell
users to find some way to enable accessibility for their session,
then log out and log back in. It's really embarrassing as far as
I'm concerned.
I'll see if we can dig up some metrics on the costs of enabling
a11y. If anyone has good suggestions for how to do this and how to
get numbers that people will trust, I'd like to hear them. :-)
Even if the numbers are not favorable, however, I think I'd still
argue to turn a11y on by default: it's far easier for someone
without a disability to turn it off than it is for a person with a
disability to turn it on.
Will
Mathias Hasselmann wrote:
Am Mittwoch, den 30.07.2008, 13:11 -0400 schrieb Willie Walker:
Alexander Jones wrote:
> Isn't this a distro decision?
Ultimately, I guess the value for any gconf setting in
schemas/desktop_gnome_interface.schemas can be whatever a distro
wants it to be. What I'm proposing, however, is that the default
value that we choose for GNOME is that accessibility will be
enabled by default. If distros want to revert this back to
disabling accessibility, I guess it would be their choice.
What is the motivation for enabling accessibility by default?
Anecdotally....
I have had 'assistive technologies' turned on now for a year. I am
not a user. My fairly modest computer (IBM T43 512mb of ram) hasn't
had any difficulties. I haven't seen any detrimental effect.
Having assistive technologies turned off by default is a real hassle
for those who need to use it. Having it turned on by default doesn't
have much of an effect. For those who want to optimize their desktop
turning it off takes exactly 10 seconds.
For the regular user (not handicapped, not a testing engineer) the
accessibility bridge just consumes resources without providing any
benefit - AFAIKS.
Why can't accessibility be activated on demand? With D-Bus
activation
we have the platform for enabling such features on demand.
Ciao,
Mathias
------------------------------------------------------------------------
_______________________________________________
desktop-devel-list mailing list
desktop-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list
_______________________________________________
desktop-devel-list mailing list
desktop-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Thanks
Mark
_______________________________________________
desktop-devel-list mailing list
desktop-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]