Re: Developing cross-platform, accessible apps

  • From: Roopakshi Pathania <r_akshi_tgk@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Thu, 17 Jun 2010 11:00:55 -0700 (PDT)

I quite agree. There are good examples on the IBM web page that show how to 
associate a label with a control for Swing, and even SWT.

For now, I was generalizing for all the toolkins, rather than focusing on a 
particular one.

Regards
--- On Thu, 6/17/10, Jay Macarty <jay.macarty2009@xxxxxxxxx> wrote:

> From: Jay Macarty <jay.macarty2009@xxxxxxxxx>
> Subject: Re: Developing cross-platform, accessible apps
> To: programmingblind@xxxxxxxxxxxxx
> Date: Thursday, June 17, 2010, 11:05 PM
> Actually, java swing has a built-in
> mechanism for associating labels with controls. on the
> JLabel object is a method called something like
> setAsLabelFor which takes another component like a text
> field as an arguement. In the accessibility framework, this
> associates the label with the control. The accessibility
> framework also contains other features for attempting to
> simplify the labeling of controls such as using the tool tip
> text if no value is found for the accessibleDescription
> property. So, as you can see, the accessibility framework
> within java is extremely powerful. It is just coming up with
> the best solution for exposing all this wonderful data to
> the outside world which is a challenge. This is where I hope
> our accessibility project can show some real progress.
> 
> ----- Original Message ----- From: "Roopakshi Pathania"
> <r_akshi_tgk@xxxxxxxxx>
> To: <programmingblind@xxxxxxxxxxxxx>
> Sent: Thursday, June 17, 2010 12:06 PM
> Subject: RE: Developing cross-platform, accessible apps
> 
> 
> 
> Hi,
> 
> Not that my knowledge is really extensive, I’m not a
> hardcore programmer, more like a tinkerer.
> But there are 2 aspects to automatically labeling a
> control.
> 
> Any platform that insists on labeling a control
> automatically using some kind of a constructor reduces the
> flexibility available to the developers. The method invoked
> to auto-label your single edit line field would require the
> label to be placed at a fixed position, have a maximum
> length, or even require a set distance between the label and
> the control.
> Only Apple has that kind of clout to dictate terms to the
> developers. <smile>
> 
> The next situation could be where the developer decides to
> create a custom object to make her task easier and less
> repetitive. In this case, code can be written to add an edit
> box and its label, and then to call the setLabelFor method
> of the label. Such a control would need methods for setting
> label size, label position relative to edit box, size of
> edit box, etc.
> In this kind of a custom control, you would need to take
> account of so many things, size of label (may try and do it
> automatically for the text in the label but it probably
> would need to allow the developer to manually set the label
> size), size of control, etc. However some things may be able
> to be reduced out as you probably have a standard for the
> application (e.g. you probably will always have labels on
> one side of the
> checkboxes, you probably have a set spacing you want the
> label from the control, etc).
> 
> Regards
> Roopakshi
> 
> --- On Wed, 6/16/10, Homme, James <james.homme@xxxxxxxxxxxx>
> wrote:
> 
> > From: Homme, James <james.homme@xxxxxxxxxxxx>
> > Subject: RE: Developing cross-platform, accessible
> apps
> > To: "programmingblind@xxxxxxxxxxxxx"
> <programmingblind@xxxxxxxxxxxxx>
> > Date: Wednesday, June 16, 2010, 10:07 PM
> > Hi,
> > My knowledge of this kind of thing is shallow, so I
> > hope that I'm going to ask this question correctly.
> > 
> > Let's just say that you know that you want a platform
> to
> > exhibit certain behaviors for accessibility reasons.
> For
> > example, you know that every time you create a single
> line
> > edit field that you need a label control to come with
> it.
> > Further, you need certain properties set certain
> ways.
> > Wouldn't you want to create an object that you could
> give to
> > a developer that removes the burden of remembering to
> write
> > the code a certain way, and at least, as a minimum,
> even if
> > the developer does nothing, you get sensible results?
> > 
> > Take our single line edit control. You'd probably use
> a
> > name property to differentiate it from the other
> controls in
> > your program. Maybe it would have a default
> constructor that
> > would somehow create a label control whose control
> name
> > would start with something like lbl and then end with
> the
> > name of the single line edit control. And if the
> developer
> > doesn't put in a value that would display to the
> screen, the
> > label control's constructor or some other method would
> fill
> > that in.
> > 
> > I know that I have to be missing something, but as I
> said,
> > my knowledge in this area is limited.
> > 
> > Thanks.
> > 
> > Jim
> > 
> > Jim Homme,
> > Usability Services,
> > Phone: 412-544-1810. Skype: jim.homme
> > Internal recipients, Read my accessibility blog.
> > Discuss accessibility here. Accessibility Wiki:
> Breaking
> > news and accessibility advice
> > 
> > -----Original Message-----
> > From: programmingblind-bounce@xxxxxxxxxxxxx
> > [mailto:programmingblind-bounce@xxxxxxxxxxxxx]
> > On Behalf Of Roopakshi Pathania
> > Sent: Wednesday, June 16, 2010 12:02 PM
> > To: Jamal Mazrui
> > Cc: programmingblind@xxxxxxxxxxxxx;
> > program-l@xxxxxxxxxxxxx
> > Subject: Re: Developing cross-platform, accessible
> apps
> > 
> > 
> > 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
> 
> > 
> > 
> > This e-mail and any attachments to it are confidential
> and
> > are intended solely for use of the individual or
> entity to
> > whom they are addressed. If you have received this
> > e-mail in error, please notify the sender immediately
> and
> > then delete it. If you are not the intended
> recipient,
> > you must not keep, use, disclose, copy or distribute
> this
> > e-mail without the author's prior permission. The
> > views expressed in this e-mail message do not
> necessarily
> > represent the views of Highmark Inc., its
> subsidiaries, or
> > affiliates.
> >
> V'°¶¥ŠËlŠwè®f­Š‰Ú�×!jxÊ‹«±ëmŠx,jØm¶Ÿÿí祊Ël¢¸?–+-þšè‚¶¦š)ànX§
> 
> 
> 
> __________
> 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: