From: "Gabor Szabo" <[EMAIL PROTECTED]>
There was a recent thread on PerlMonks with the above title
where I suggested the use of wxPerl.

http://www.perlmonks.org/?node_id=722367

I wonder what is really the issue?
How can one make sure that the application s/he is writing
has the accessibility features?

Gabor

Tk and Gtk based applications are not accessible at all for screen readers. I heard that Gtk applications are accessible under Linux, but they are not under Windows.

Java SWT applications are very accessible because SWT uses native widgets but the SWING applications even though they are accessible if using Java Access Bridge, the accessibility is poor.

Even though Microsoft takes care about the accessibility more and more, the Dot Net interfaces made with Windows Forms are much less accessible than the native Win32 widgets used for example by MFC.

The most accessible interfaces are created with MFC and Win32::GUI in perl.

WxPerl interfaces have some widgets very accessible (the most important ones) but it also has some inaccessible widgets also.

In order to be accessible, the screen readers should understand the GUI used. So if a GUI appears this year and it has the best accessibility features ever, it could be absolutely inaccessible if the screen readers don't understand it. And the screen readers manufacturers have their interests and don't jump immediately to support another interface because this requires much effort which can't be recompensed very easy.

When coding in perl, WxPerl is the best choice for creating a GUI, not only because it is also portable while Win32::GUI is not, but also because it supports UTF-8 and it can be used with other languages than English.

However, the problem of programs with GUIs in perl is that they create very huge programs that eat very much memory if the programs are complex and need to use threads. I've just abandoned a program in WxPerl (an RSS reader/Podcast reader/TV/Radio listener) because when it had one thread it occupied 40 MB of memory, and after adding each new thread, other 40 MB of memory were occupied, so at 4 threads it used 160 MB of memory, and I needed to add more threads for updating.

I've tried to share as much code as possible between threads, but no good result. Because of this reason the app used to run pretty slow and it were a little unresponsive and not nice to use, especially with the keyboard.

Win32::GUI based apps are smaller, but it doesn't offer some important features, so it can't be used for complex apps.

So unfortunately the best choice for creating a GUI, is not the best for everything. For accessibility under Windows is C++/MFC. For Portability is Java/SWT. For the complexity of widgets and accessibility is wxWidgets. Maybe the apps created with C++ and wxWidgets are also fast and consume less resources, but I don't know because I didn't test it.

And by the way, the program PVoice is not accessible for the blind, because if I remember well it offers visual features that can't be seen, like pictures, so the accessibility for the blind means a totally different thing than the one for the deaf.

Octavian

Reply via email to