Tkinter: The good, the bad, and the ugly!

Adam Skutt askutt at gmail.com
Thu Jan 20 07:22:22 EST 2011


On Jan 20, 2:22 am, "Octavian Rasnita" <orasn... at gmail.com> wrote:
> Where do you got the conclusion that the accessibility is so poor?

By an examination of the facts.  MSAA is universally hated and all
screen readers actively have to work around it and its many
limitations (meaning that as an application programmer, you can do the
"right" thing and still get undesired behavior through no fault of
your own).  I have no clue if it's replacement is better, but I do
know few programs use it, so it's little comfort.

The situation on Linux is still an outright disaster.  Neither Qt4 nor
GTK enable accessibility functionality automatically and support from
the various distribution vendors is pretty limited.  It is improving,
however.

Accessibility still requires special effort "over and above" the norm
by the programmer whether you believe this to be the case or not.
Most programmers aren't even aware of the fact they must consider it
(a point you've made yourself before!) and hence commit various
accessibility sins.  This is mostly a cultural problem, not a
technical one, but it's still a real problem.

Plus, out of the stuff I run daily on Windows: two of the applications
are entirely inaccessible: the Adobe AIR one and the Gtk one.
Songbird, the XUL based music player, has some accessibility, but none
of the navigation controls seem to be enabled, which would make it
very difficult to actually use, I imagine.  It's also not particularly
keyboard friendly: you don't even get a visual focus indicator most of
the time, even though the focus is moving.

> But You keep telling me that it is hard to create accessible programs, which
> is false, but you don't know and don't want to try to see.
> Try to create a WxPython app that doesn't do anything but only displays some
> menus, buttons, combo boxes, list boxes, list views, tree views, text
> fields, check boxes, radio buttons... and you will see that they are very
> accessible with that screen reader I told you about, without requiring you
> to do anything special that you wouldn't do otherwise.

Applications that only display these things aren't very interesting.
And no, they still require additional effort.  Most developers can't
even be assed to get a sane tab focus order set, to say nothing of
keyboard shortcuts, accessibility descriptions / proper label
associations for buttons and other controls.

It gets even more complicated when you get away from controls only
meant to display text.  How many web pages have you visited where
images are missing alt tags?  Do you really thing those same people
are going to bother trying to do the right thing if asked to create a
desktop GUI application?  No, they're not, and you're going to get
whatever happens automatically.  Which isn't nothing (in some
toolkits), but it's also not what one really wants, either.

>
> How do you came to the conclusion that QT is accessible on all operating
> system?

By actually going out, reading, and even testing?  Qt has had
functional accessibility support on OS X and Windows since Qt3, and
functional support on Linux, OS X, and Windows since Qt4.  It even
extends to PySide, with a few limitations: you can't write custom
accessible widgets in PySide, though I'm pretty confident they'd
enable support if someone wrote a patch to enable the bindings.

> When you talk about accessibility, try it yourself and don't take the word
> of the GUI widgets developers.
>

I just did, NVDA was able to read my button text and its accessibility
description just fine, both in C++ and Python versions of my Qt
application.  I didn't bother testing Linux or OS X, but I'm sure it
would work there too.

Adam



More information about the Python-list mailing list