What do you think of this tool?

  • From: Ishe Chinyoka <chinyoka@xxxxxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Sat, 9 May 2009 13:00:36 +0200

Hi coders,

I recently ran across the following announcement on the wxWidgets
mailing list. I just thought you might be interested in it as it
relates to accessibility in wxWidgets programs (of course including
its cousins like wxPython, wxPerl and Company).
Cheers,
Here we go!
-------------------------

Announcing AxTk - an accessibility toolkit for wxWidgets

wxWidgets
Add star

Julian Smart

<julian@xxxxxxxxxxxxxxx>
Thu, May 7, 2009 at 9:26 AM
Reply-To: wx-users@xxxxxxxxxxxxxxxxxxx
To: wx-users@xxxxxxxxxxxxxxxxxxx, wx-announce@xxxxxxxxxxxxxxxxxxx

Reply Alt+Shift+r
 |
Reply to all Alt+Shift+a
 |
Forward Alt+Shift+f
 |
Print
 |
Delete
 |
Show original

Announcing AxTk - an accessibility toolkit for wxWidgets
7th May 2009
http://code.google.com/p/axtk/

* What is AxTk?

AxTk (pronounced Ay Ex Tee Kay) is an open source, C++ add-on for
wxWidgets that helps developers create highly accessible, talking
applications for users
with impaired vision. It may also be useful for other impairments that
benefit from a simplified user interface.

AxTk features a new menu-based system that is easy to learn and use,
in addition to providing adaptation for some existing GUI controls and
dialogs. The
developer can choose whether to use the menu system, or to adapt an
existing application UI, or use a combination of methods.

AxTk is cross-platform (tested so far on Windows XP, Linux and Mac OS
X 10.5), and includes text-to-speech classes with the ability to drive
SAPI 5, Apple
Speech Synthesis Manager, eSpeak, and Cepstral. Other speech engines
can be driven by writing additional handlers.

Note that AxTk is a work in progress and the API is subject to change.

* What else is AxTk?

There is an additional, higher-level layer for building applications
that help the user maintain 'resource libraries' for all kinds of
files and services.
The motivation is to provided simplified access to many resources and
activities that are currently spread amongst many applications and web
sites. By
making this part of AxTk, we increase the chances of providing a
really useful, accessible application platform that can be customised
in interesting ways
for individuals or government sectors. However, this is currently a
less well-developed aspect of AxTk and one which you can ignore fo
now. The resource
demo shows playing of audio albums and reading Epub books (having
converted the XHTML content to plain text first).

* What about Braille output?

Although nothing is specifically coded yet for Braille devices, they
could be supported relatively easily by adding handlers to the
wxTextToSpeech system,
to output to the device instead of a speech engine.

* Why not just use a screen reader?

Screen readers don't have an in-depth knowledge of the application; in
theory, an AxTk application can make use of knowledge of its own
structure to make
speech more helpful and less verbose. Also, an application's custom
controls are not accessible to screen readers. In additon, AxTk
provides an alternative,
menu-based user interface that is not so prone to the problems of
accessing conventional layouts via a screen reader. Finally, an AxTk
application provides
support for application-wide colour and text size changes that are
harder to achieve in an ad-hoc way.

* Is this anything to do with MSAA (Microsoft Active Accessibility)?

No; a different approach is used. Although wxWidgets has some basic
MSAA support, other ports have no similar support and it may be hard
to create a comprehensive
cross-platform solution to accessibility based on OS-level
accessibility support. It would still leave applications and users at
the mercy of particular
screen readers and it would not solve other problems that AxTk sets
out to solve: visual adaptation, fine control over speech (such as
content voicing),
customisable shortcut support, and more.

Having said that, work on integrating MSAA equivalents for other
platforms would be very welcome, either as part of AxTk or built into
wxWidgets.

* How hard is it to use?

Apart from some housekeeping that you can pinch from the sample, the
amount of extra code can be small if you're just adapting existing
UIs. For example,
to make a dialog self-voicing and responsive to visual appearance
changes (assuming the dialog's controls are in the set of controls
currently handled
by AxTk):

#include "ax/ax_ui_adaptation.h"

...

class MyDialog: public wxDialog
{
  ...
  AxSelfVoicing m_adapter;
};

MyDialog::MyDialog(...)
{
  ...
  m_adapter.Adapt(this);
}

If you have controls that are not currently handled by AxTk, you can
write adapter classes and also handler classes that detect the
appropriate controls
and create their adapters.

Using the new menu system is also pretty straightforward as you can
see from the sample (mainframe.cpp). There are some new concepts such
as AxActivator,
which handles menu item activation, but there's plenty in common with
conventional wxWidgets programming.

* Where and how do I get it?

AxTk is hosted at Google Code and is available via SVN or as a source
tarball or zip file.

http://code.google.com/p/axtk/

The discussion group is
axtk-dev@xxxxxxxxxxxxxxxxx

The documentation is available here:

http://www.anthemion.co.uk/axtk/html/index.html

* Are there demos?

Yes; you can download axsample binaries for Windows, Linux and Mac from:

http://www.anthemion.co.uk/axtk/

You can ignore axresourcesample unless you're interested in the
higher-level resource library layer mentioned previously.

* Can I contribute?

Please do! See docs/todo.txt for some of the things left to do. You'll
probably find things to do yourself. You can supply patches in the
AxTk's Issue
Tracker, or you can ask to be added to the list of project members in
order to make changes in SVN.

* What's the build system?

None to speak of. This would make a good contribution. Currently you
can use DialogBlocks to generate projects and makefiles for the two
samples, which
simply include all the AxTk code.

* What is the license?

The license is the New BSD License, which is very brief, easy to
understand, and industry-friendly. Please see license.txt in the
source tarball for details.

I hope you find AxTk useful - or at least, fun to play with.

Julian Smart, Anthemion Software
http://www.anthemion.co.uk

-- 
Julian Smart, Anthemion Software Ltd.
28/5 Gillespie Crescent, Edinburgh, Midlothian, EH10 4HU
www.anthemion.co.uk
 | +44 (0)131 229 5306
Tools for writers:
www.writerscafe.co.uk
wxWidgets RAD:
www.dialogblocks.com
Blog:
www.juliansmart.com

-- 
Ishe Chinyoka
WEB URL: http://www.chinyoka.com
------------------------------
"Those who would give up essential liberty to purchase a little
temporary safety deserve neither liberty nor safety." -- Benjamin Franklin
__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

Other related posts: