Re: Developing cross-platform, accessible apps

  • From: Roopakshi Pathania <r_akshi_tgk@xxxxxxxxx>
  • To: Jamal Mazrui <empower@xxxxxxxxx>
  • Date: Wed, 16 Jun 2010 09:02:21 -0700 (PDT)

Hmm, staying clear of this debate, I can only say that Java does have a 
powerful accessibility API and assistive technologies do (sometimes) take 
advantage of the API to provide access to their users. The only difficulty is 
that no assistive technology can take full advantage of the inbuilt 
accessibility API for now.

While there are Swing based applications that are fully accessible, in fact 
MathTrax is a good example; many applications remain inaccessible either 
because of the limitations of the bridge, or because developers have their own 
style of coding which often doesn’t include techniques that would make an app 
accessible. 
This neglect on the part of the developers for not implementing practices like 
programmatically associating a control with its label is common in all 
programming languages.

But Swing based applications also get a bad name because information on how to 
use them is not documented at a centralized place. Things like reinstalling the 
bridge every time you upgrade the JVM, using CTRL-Tab to move out of a table, 
and using F10 to focus on the menu are not generally known.

Anyway, coming back to the actual topic, you also have wxPerl that would 
provide cross-platform accessibility.
http://wxperl.sourceforge.net/ 

Regards


--- On Sun, 6/13/10, Jamal Mazrui <empower@xxxxxxxxx> wrote:

> From: Jamal Mazrui <empower@xxxxxxxxx>
> Subject: Re: Developing cross-platform, accessible apps
> To: "Roopakshi Pathania" <r_akshi_tgk@xxxxxxxxx>
> Cc: programmingblind@xxxxxxxxxxxxx, program-l@xxxxxxxxxxxxx
> Date: Sunday, June 13, 2010, 8:58 PM
> This reminds me of a debate related
> to Section 508 accessibility 
> standards.  Some argue that a software application
> should be considered 
> accessible if it implements the main accessibility API of
> the platform, 
> e.g., if a Java app implements the Java access API. 
> Others argue that 
> functional performance must also be considered as well as
> design specs. 
>   So, if relevant assistive technology does not
> support that API, then, 
> in practice, the app is inaccessible even though, in
> theory, it could or 
> should be accessible.
> 
> Proponents on one side say that it is optimal for the
> responsibility for 
> accessibility to be divided among different parts of the
> ecosystem that 
> necessarily must work together to achieve
> accessibility.  If assistive 
> technologies do not take advantage of an API that is
> availble, they are 
> at fault, not the application, and it is important for AT
> to meet its 
> responsibility on behalf of users with disabilities. 
> Without such an 
> expectation on AT, its vendors will lack sufficient
> incentive to support 
> APIs that are critical for accessibility.
> 
> Proponents on the other side say that idea sounds good in
> principle, but 
> the result can be that users with disabilities are set back
> by 
> inaccessible apps in their work and personal lives, a
> reality that is 
> unacceptable.
> 
> Jamal
> 
> 
> 
> On 6/13/2010 12:21 AM, Roopakshi Pathania wrote:
> >
> > Hi Jamal,
> >
> > Well Most major screen readers support working with
> Swing, even if a screen reader like Window Eyes uses a
> different approach. I’ve checked and Hal also supports the
> bridge.
> > Besides, it’s not possible to dismiss access to
> Swing based applications out of hand especially because
> Swing components are widely used in software developed for
> corporate environment. SAP and Oracle, both state the need
> of using Java Access Bridge on their accessibility
> requirements page.
> >
> > Java Access Bridge is probably the crux of the problem
> because it does not expose the entire Java accessibility API
> to a screen reader.
> > If anyone is interested, here is a forum for
> discussing accessibility of Java for developers who want to
> make their software accessible.
> > http://forums.sun.com/forum.jspa?forumID=3&start=0
> >
> > If you go through some of the posts, you’ll realize
> the kind of limitations Java Access Bridge imposes on
> assistive technology.
> >
> > I quite agree with Ken, we do need a better bridge to
> Java’s accessibility API.
> > This might be possible if we try to get developers
> (from the general community) interested in this project.
> >
> > Regards
> >
> > --- On Sat, 6/12/10, Jamal Mazrui<empower@xxxxxxxxx> 
> wrote:
> >
> >> From: Jamal Mazrui<empower@xxxxxxxxx>
> >> Subject: Re: Developing cross-platform, accessible
> apps
> >> To: programmingblind@xxxxxxxxxxxxx
> >> Cc: "Roopakshi Pathania"<r_akshi_tgk@xxxxxxxxx>,
> program-l@xxxxxxxxxxxxx
> >> Date: Saturday, June 12, 2010, 11:54 PM
> >> Hi Roopakshi,
> >> I am aware of the Java access API, but
> unfortunately, I do
> >> not think
> >> there is sufficient screen reader support for it
> on
> >> Windows.  This is
> >> more the fault of the screen reader companies than
> Sun,
> >> since the API is
> >> strong on the server side.
> >>
> >> Window-Eyes, for example, does not support that
> API at
> >> all.  JAWS works
> >> partially.  I hear that NVDA works
> well.  I do
> >> not know about System
> >> Access or Hal.  With the SWT approach, on the
> other
> >> hand, apps can be
> >> fully accessible because native widgets are used,
> including
> >>
> >> MSAA-integrated controls on Windows.
> >>
> >> Thanks for the info about Axtk, which I had not
> heard
> >> about.  At first,
> >> I thought the name was associated with the
> cross-platform
> >> GUI library
> >> called TK, which has poor accessibility, but I see
> that it
> >> is actually
> >> wx-related, as you say.
> >>
> >> Jamal
> >>
> >> On 6/12/2010 11:53 AM, Roopakshi Pathania wrote:
> >>   >
> >>   >  Hi Jamal,
> >>   >
> >> Thanks for the info about Axtk -- I had not heard
> of
> >> it.  The name made
> >> me first think it was related to the
> cross-platform GUI
> >> library called
> >> TK, which has poor accessibility, but I see that
> it is
> >> based on
> >> wxWdigets, as you say.
> >>
> >> Jamal
> >>
> >>
> >>
> >> On 6/12/2010 11:53 AM, Roopakshi Pathania wrote:
> >>>
> >>> Hi Jamal,
> >>>
> >>>
> >>> You left out Java Accessibility API that
> provides
> >> access to Swing based applications on all
> platforms (not
> >> completely sure about Mac) through Java Access
> Bridge.
> >>> In this regard, the guidelines laid down by
> IBM on
> >> developing a completely accessible Java
> application are
> >> quite useful.
> >>> http://www-03.ibm.com/able/guidelines/software/accesssoftware.html
> >>>
> >>> I like to point the developers of
> inaccessible
> >> applications to this page.
> >>>
> >>> One more toolkit might be of interest: AxTk.
> >>> http://code.google.com/p/axtk/
> >>>
> >>> It is built on wxWidgets and is especially
> geared
> >> towards screen reader users. It is also suppose to
> have text
> >> to speech wrapper class supporting a number of
> speech
> >> engines.
> >>>
> >>> I’m building my own tools for financial and
> data
> >> analysis, so have looked at cross-platform
> accessible
> >> libraries.
> >>>
> >>> Regards
> >>> Roopakshi
> >>>
> >>> --- On Sat, 6/12/10, Jamal Mazrui<empower@xxxxxxxxx>
> >> wrote:
> >>>
> >>>> From: Jamal Mazrui<empower@xxxxxxxxx>
> >>>> Subject: Developing cross-platform,
> accessible
> >> apps
> >>>> To: "programmingblind"<programmingblind@xxxxxxxxxxxxx>,
> >> program-l@xxxxxxxxxxxxx
> >>>> Date: Saturday, June 12, 2010, 8:27 PM
> >>>> 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 //www.freelists.org/list/programmingblind
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>> __________
> >>> View the list's information and change your
> settings
> >> at
> >>> //www.freelists.org/list/programmingblind
> >>>
> >>>
> >>
> >
> >
> >
> >
> __________
> View the list's information and change your settings at 
> //www.freelists.org/list/programmingblind
> 
> 



__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

Other related posts: