Cross-Platform Programming with wxWidgets
Just Make It Cross-Platform
Subscribe to Feed
  • Home
  • Projects
  • Links

AxTk: An Accessibility Toolkit for wxWidgets

Components, Libraries, News Add comments |

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_at_googlegroups.com.

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.


May 7th, 2009 |

Tags: Components, wxWidgets

Related Posts

  • Собираем IDE Code::Blocks под FreeBSD
  • wxWidgets 2.8.9 Released
  • wxJSON 0.5.0 Released
  • wxWidgets 2.8.8 is out !!!
  • wxJSON Tutorial – Part I – Introduction

3 Responses to “AxTk: An Accessibility Toolkit for wxWidgets”

  1. Елизавета
    May 14th, 2009 at 21:05:33

    Как это поставить? Плизз подскажите


  2. T-Rex
    May 19th, 2009 at 21:05:20

    Так а под какую ОС вы ставить собрались?


  3. Artem
    July 6th, 2009 at 12:07:02

    Хотелось бы под ВИНДУ загнать. Только не знаю как?


Leave a Reply

  • This blog is about…

    Библиотека Книги Статьи Articles Code::Blocks Components Controls Database DatabaseLayer Document/View Eclipse Localization NetBeans Networking News Printing Reports SQLite Tutorilas Video Visual Studio wxAUI wxButton wxDev-CPP wxGrid wxHelpController wxJavaScript wxJSON wxLocale wxLog wxPaintDC wxPropertyGrid wxRuby wxSQLite3 wxThread wxValidator wxWidgets wxWinCE wxZipInputStream wxZipOutputStream XML
  • Showcase

    Visit wxToolBox Homepage

    Buy wxToolBox (with source code)

  • Archives

    • November 2009
    • September 2009
    • August 2009
    • May 2009
    • April 2009
    • March 2009
    • February 2009
    • January 2009
    • December 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • December 2007
    • June 2007
    • May 2007
    • January 2007
  • Recent Comments

    • Sash on wxWidgets-2.8 and Code::Blocks (Windows)
    • T-Rex on Быстрый способ упаковки содержимого папки в ZIP-архив
    • Gerald on Быстрый способ упаковки содержимого папки в ZIP-архив
    • T-Rex on Multilingual Applications? It’s Simple!
    • Keith on Multilingual Applications? It’s Simple!
  • Buttons

    Locations of visitors to this page

    Rambler's Top100
    Рейтинг@Mail.ru

Copyright © 2010 Cross-Platform Programming with wxWidgets All Rights Reserved
RSS Log in