[Blindmath] How useful is a GUI to blind users?

Richard Baldwin baldwin at dickbaldwin.com
Sun Jan 8 03:16:42 UTC 2012


You wrote: " I thought there was generally a well-established principle in
software development that it is best to implement a set of functionality in
a way that can be connected to various presentations of user interface"

You are probably speaking of something called the model-view-control
pattern, which is great in theory, but rarely exists to the full extent
possible in practice.

Getting down in the weeds, here is an example of marrying Sun Java graphics
with SWT Java graphics. Standard Sun Java provides the capability to use
the Sun Graphics2D API to create graphics on an off-screen Image object.
Sun Graphics2D is a fairly extensive and powerful API.

The SWT makes it possible to use SWT graphics (which are entirely different
from the Sun Graphics2D API) to create off-screen graphics on an Image
object. In my opinion, SWT graphics are less extensive and less powerful
than the Sun Graphics2D API, but that is just an opinion that others may
disagree with. There is no disagreement, however, that the two are
different and are incompatible.

There is also no disagreement that an SWT Image object is different from a
Sun Image object, and the two are incompatible. Rather than building on the
Sun Image class, IBM elected to invent their own Image class in the SWT.
This was a decision that apparently had nothing to do with the use of the
native GUI components because it is not a GUI issue. Thus,
incompatibilities between Sun Java and SWT Java go far deeper than simply
the use of native GUI components or lightweight GUI components. They go
very deep into the guts of the programming environment.

When graphics are developed using Suns Graphics2D API, which is the case
with the majority of existing Java graphics libraries, the display of that
graphic information on an SWT Composite object, requires that first, it is
necessary to gain access to the Sun Image object (if possible), then it is
necessary to reformat and transport the graphics information from the Sun
Image object to an SWT Image object, and then it is necessary to display
the graphics information on an SWT Composite object.

To begin with, the graphics data on aSun Image object may, or may not be
accessible to the programmer, depending on the design of the graphics
library. Even if the graphics data on the Sun Image object is accessible
(with or without modifying the library), the task of reformatting and
transporting that data to an SWT Image object, solely for purposes of
display, is tedious, time consuming, and can result in a lack of
responsiveness for graphics-intensive programs.

Of course, it is always possible to modify a library if source code for the
library is available, but to a large extent, that defeats the purpose of
OOP and class libraries. It can also be very difficult in some cases.

Dick Baldwin

On Sat, Jan 7, 2012 at 7:57 PM, Jamal Mazrui <empower at smart.net> wrote:

> Some miscellaneous points are as follows.
>
> There were text mode, screen oriented user interfaces before graphical
> user interfaces, e.g., WordPerfect 5.1 was a highly popular DOS-based word
> processor among blind people.  In fact, I think we were, overall, more
> productive with it than any GUI word processor, like MS Word,  or
> command-oriented word processor, like VIM.
>
> Those text mode, screen oriented interfaces could be highly accessible
> with a screen reader because it knew precisely what character (and color)
> was located in every position of a grid with 25 rows and 80 columns.  The
> point of focus was also precisely known -- what later became the caret in a
> GUI.  Accessibility of GUIs has been a problem in large part because a
> screen reader has had to build an "off screen model" of what text is on the
> screen, since by the time text is displayed on the screen, it is pixels not
> characters.  A GUI screen reader has traditionally had to intercept every
> operating system call that writes to the screen, remember where the writing
> occurred, and adjust the model every time some other OS call implies a
> change in the visual presentation.
>
> This process has been error prone, thus necessitating the need for an
> accessibility API by which the screen reader can interrogate the screen at
> any time.  Unfortunately, comprehensively implementing that accessibility
> API, on both the application and screen reader side, has also been error
> prone.  There are other reasons as well why GUIs have been difficult,
> including the emphasis on a mouse for input rather than the keyboard -- the
> former usually requiring fine eye-hand coordination to be practical.
>
> Blind people, like sighted people, have a range of cognitive abilities.
>  Some find the memorization of commands and syntax, which is generally
> required by a command-line interface, to be challenging and frustrating, as
> compared to a GUI and screen reader combination implemented accessibly,
> which support much more choice selection and safe exploration of options
> before executing a task.  Often, the most productive application will be
> one that offers both an accessible GUI for typical use and a well-designed
> command line interface for advanced use.
>
> I am puzzled why Swing seems to be so integrated into popular Java
> libraries.  Do they not separate visual display from underlying
> functionality?  I thought there was generally a well-established principle
> in software development that it is best to implement a set of functionality
> in a way that can be connected to various presentations of user interface
> -- unless, of course, the library is specifically targeted to building user
> interfaces.
>
> Regarding SWT, it is cross platform, not Windows only, though different
> binary files have to be distributed with other platforms.  I am a fan of
> wxWidgets, but agree that SWT is clearly more established in the Java
> community, and do not see any advantage that wx-based GUIs would offer over
> SWT.  Both GUI libraries are essentially wrappers over native controls of
> the platform.  Such controls tend to be the most accessible because they
> implement the primary accessibility API of the platform, being build by the
> developer of both the platform and accessibility API.
>
> Jamal
>
>
>
> ______________________________**_________________
> Blindmath mailing list
> Blindmath at nfbnet.org
> http://nfbnet.org/mailman/**listinfo/blindmath_nfbnet.org<http://nfbnet.org/mailman/listinfo/blindmath_nfbnet.org>
> To unsubscribe, change your list options or get your account info for
> Blindmath:
> http://nfbnet.org/mailman/**options/blindmath_nfbnet.org/**
> baldwin%40dickbaldwin.com<http://nfbnet.org/mailman/options/blindmath_nfbnet.org/baldwin%40dickbaldwin.com>
>



-- 
Richard G. Baldwin (Dick Baldwin)
Home of Baldwin's on-line Java Tutorials
http://www.DickBaldwin.com

Professor of Computer Information Technology
Austin Community College
(512) 223-4758
mailto:Baldwin at DickBaldwin.com
http://www.austincc.edu/baldwin/



More information about the BlindMath mailing list