Developing cross-platform, accessible apps
- From: Jamal Mazrui <empower@xxxxxxxxx>
- To: programmingblind <programmingblind@xxxxxxxxxxxxx>, program-l@xxxxxxxxxxxxx
- Date: Sat, 12 Jun 2010 10:57:28 -0400
This is to share some points I have learned about developing
cross-platform, GUI-accessible, desktop apps. Currently, the key is
using programming libraries that wrap native widgets of the platform.
These native widgets generally implement the main accessibility API of
the platform, much more so than custom widgets.
On Windows, native widgets are most likely to implement Microsoft Active
Accessibility, or increasingly, User Interface Automation as it
replaces MSAA. On Linux, the GTK+ widgets that are native to the Gnome
desktop implement the Assistive Technology Service Provider Interface.
On the Mac, Cocoa-based widgets implement the Mac Accessibility Protocol.
Thus, a cross-platform library is most likely to create accessible GUIs
if it wraps native widgets of each platform, rather than defining its
own widgets. A disadvantage of this approach is that the developer
needs to be conscious of small differences in the behavior of widgets
across platforms, even though wrapping code of the library tries to
minimize such differences. Besides accessibility, an advantage of this
approach is that widgets have the look and feel that sighted users are
accustomed to experiencing on each platform.
Sometimes, a GUI library is closely associated with a programming
language that has especially strong support for that library in wrapper
functions and design tools. A few language and library combinations
that seem to work particularly well for cross-platform, accessible
development are as follows:
* Java and the Standard Widget Toolkit
http://www.eclipse.org/swt/
* Python and wxWidgets
http://wxPython.org
* C# and the System.Windows.Forms classes of the Mono Framework
http://mono-project.org
Note that, in this case, the Microsoft .NET Framework should be used as
the runtime environment on Windows in order to have native widget support.
http://msdn.microsoft.com/en-us/netframework/default.aspx
If others have further info or ideas on this topic, please share.
Jamal
__________
View the list's information and change your settings at
http://www.freelists.org/list/programmingblind
Other related posts:
- » Developing cross-platform, accessible apps - Jamal Mazrui
- » Re: Developing cross-platform, accessible apps - Chris Hofstader
- » RE: Developing cross-platform, accessible apps - Ken Perry
- » Re: Developing cross-platform, accessible apps - Roopakshi Pathania
- » Re: Developing cross-platform, accessible apps - Jamal Mazrui
- » Re: Developing cross-platform, accessible apps - Jamal Mazrui
- » Re: Developing cross-platform, accessible apps - Chris Hofstader
- » Re: Developing cross-platform, accessible apps - Chris Hofstader
- » RE: Developing cross-platform, accessible apps - Ken Perry
- » RE: Developing cross-platform, accessible apps - Ken Perry
- » Re: Developing cross-platform, accessible apps - Donald Marang
- » Re: Developing cross-platform, accessible apps - Roopakshi Pathania
- » Re: Developing cross-platform, accessible apps - Chris Hofstader
- » Re: Developing cross-platform, accessible apps - Jared Wright
- » Re: Developing cross-platform, accessible apps - Jamal Mazrui
- » Re: Developing cross-platform, accessible apps - Tom Ladis
- » RE: Developing cross-platform, accessible apps - Nick.Adamson
- » RE: Developing cross-platform, accessible apps - Ken Perry
- » Re: Developing cross-platform, accessible apps - Roopakshi Pathania
- » RE: Developing cross-platform, accessible apps - Homme, James
- » RE: Developing cross-platform, accessible apps - Roopakshi Pathania
- » Re: Developing cross-platform, accessible apps - Jay Macarty
- » Re: Developing cross-platform, accessible apps - Roopakshi Pathania
- » Re: Developing cross-platform, accessible apps - qubit
- » Re: Developing cross-platform, accessible apps - Jay Macarty