[brailleblaster] Re: Advice requested on accessibility for the blind

  • From: chris@xxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Sat, 27 Aug 2011 16:47:27 -0700

Glad to help!
Chris

> Chris, StackLayout was exactly what I needed. You have been very helpful.
>
> Thanks,
> Dick Baldwin
>
> On Sat, Aug 27, 2011 at 2:45 PM, Richard Baldwin
> <baldwin@xxxxxxxxxxxxxxx>wrote:
>
>> Will do.
>> Thanks,
>> Dick B.
>>
>>
>> On Sat, Aug 27, 2011 at 2:09 PM, Chris von See
>> <chris@xxxxxxxxxxxxx>wrote:
>>
>>> ** Take a look at StackLayout - that will allow you to pr-create your
>>> pages and easily switch between them...
>>>
>>> Cheers
>>> Cheis
>>> --
>>> Sent from my Android phone.
>>>
>>>
>>> Richard Baldwin <baldwin@xxxxxxxxxxxxxxx> wrote:
>>>>
>>>> Hi Chris,
>>>>
>>>> Thanks for the response. See my comments inline below.
>>>>
>>>> On Sat, Aug 27, 2011 at 11:44 AM, Chris von See
>>>> <chris@xxxxxxxxxxxxx>wrote:
>>>>
>>>>> Hi Richard -
>>>>>
>>>>> I got a chance to take a look at your code... I'm not totally sure I
>>>>> understand if your goal is to make the program accessible or just to
>>>>> perform
>>>>> some action when the user selects something from the list, but here
>>>>> are some
>>>>> thoughts:
>>>>>
>>>>
>>>> rgb] My ultimate goal is to expose a new GUI page that contains lots
>>>> of
>>>> controls (text boxes, buttons, etc.) when the user selects an item
>>>> from the
>>>> list. I do want it to be accessible to blind students because my
>>>> purpose is
>>>> to write a GUI interface for my SVG Graphics Library (see
>>>> http://cnx.org/content/m39607/latest/). Right now, I am trying to work
>>>> out an overall structure that will be accessible. I have never used
>>>> the SWT
>>>> before, nor have I ever written a Java program with accessibility in
>>>> mind,
>>>> so I am plowing new ground in two areas with this one.
>>>>
>>>>>
>>>>> -- If your goal is accessibility, take a look at the
>>>>> org.eclipse.swt.accessibility package.  Many controls have a
>>>>> getAccessible()
>>>>> method that returns an Accessible object which allows you to do
>>>>> various
>>>>> accessibility-related things.  Look at the Accessible object's
>>>>> methods and
>>>>> in particular the types of accessibility-related listeners you can
>>>>> add,
>>>>> which would allow you to (for example) change the description that is
>>>>> spoken
>>>>> for each list item or create the relation between the list and a
>>>>> descriptive
>>>>> label ("labelA") so that the label is spoken when the list gains
>>>>> focus.
>>>>>
>>>>
>>>> rgb] Thanks, I will take a look at it.
>>>>
>>>>
>>>>>   Take a look at the  snippets for the package at
>>>>> http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/accessibility/package-summary.htmlto
>>>>> get some examples.
>>>>>
>>>>
>>>> rgb] Will do.
>>>>
>>>>>
>>>>> -- Using List.addSelectionListener() is the way you would be notified
>>>>> of
>>>>> user list item selection.  SWT should speak each item as the user
>>>>> traverses
>>>>> the list.  You can modify what's spoken by setting listeners via
>>>>> List.getAccessible().
>>>>>
>>>>
>>>> rgb] I have discovered that the following approach to event handling
>>>> seems to work better in the sense that with this approach, the new
>>>> page is
>>>> not exposed until the user presses the Enter key on the selected item:
>>>>
>>>>     myCombo.addListener (SWT.DefaultSelection, new Listener () {
>>>>       public void handleEvent (Event e) {
>>>>         //event handler code goes here
>>>>       }//end handleEvent
>>>>     });
>>>>
>>>>>
>>>>> -- If I'm reading your code correctly, you're creating your list
>>>>> using
>>>>> the Shell as the parent, and then immediately creating a "page"
>>>>> Composite
>>>>> with the same Shell as parent.  I didn't run your code, but I *think*
>>>>> this
>>>>> will overlay your List with the contents of the "page" Composite.
>>>>>
>>>>
>>>> rgb] Actually it displays the new page below the Combo box, but the
>>>> approach that you suggest below might work better. I really don't want
>>>> to
>>>> dispose of the old page in order to expose a new one.
>>>>
>>>>
>>>>> Try creating a "base" Composite with the shell as parent, then set a
>>>>> layout on that "base", add your list with the "base" as parent and
>>>>> then add
>>>>> your "page" Composite as another child of that same "base".
>>>>> Depending on
>>>>> what layout manager you use the controls will appear in different
>>>>> relative
>>>>> positions; you might try RowLayout with SWT.VERTICAL so that the list
>>>>> appears above the "page".
>>>>>
>>>>
>>>> rgb] I will definitely try this.
>>>>
>>>>>
>>>>> -- When the list item is changed you don't need to dispose your
>>>>> "page"
>>>>> Composite - just set the label and foreground color (for the text) or
>>>>> background color (for the background of the "page").
>>>>>
>>>>
>>>> rgb] Good. As I mentioned earlier, I don't want to dispose of the old
>>>> page when I expose a new one. I would like for the user to be able to
>>>> return
>>>> to the page with the contents of the text boxes, etc., still intact.
>>>>
>>>>>
>>>>> -- Instead of allocating red, green and blue Color objects using new
>>>>> Color(r, g, b), try using the static Color.RED, Color.GREEN and
>>>>> Color.BLUE -
>>>>> these have the same red, green and blue color settings as what you
>>>>> created.
>>>>>  You also won't need to dispose these static Color objects when your
>>>>> program
>>>>> exits.
>>>>>
>>>>
>>>> rgb] Thanks. Good point.
>>>>
>>>>>
>>>>> Hope this helps.  I'll try to answer any other questions you may
>>>>> have,
>>>>> but I'll be in and out this weekend so it may take me a while to get
>>>>> back to
>>>>> you.
>>>>>
>>>>
>>>> rgb] I really do appreciate your feedback. If I am successful in this
>>>> effort, I will publish a free Java program that blind students can use
>>>> to
>>>> draw technical diagrams for their physics and math courses. Actually,
>>>> I have
>>>> already published such a program, but the user interface is very
>>>> difficult
>>>> because it requires some knowledge of programming syntax.  My
>>>> objective is
>>>> to make it available to every student with an easy-to-use GUI
>>>> interface,
>>>> even if they  don't know about programming syntax.
>>>>
>>>> Thanks,
>>>> Dick B.
>>>>
>>>>>
>>>>>
>>>>> Cheers
>>>>> Chris
>>>>>
>>>>>
>>>>>
>>>>> On Aug 26, 2011, at 5:32 PM, Richard Baldwin wrote:
>>>>>
>>>>> John,
>>>>>
>>>>> This is my second attempt to send this. The previous attempt was
>>>>> rejected because the zip file was too large. I had included the SWT
>>>>> library
>>>>> in it, which is what made it so large. Since you probably have that
>>>>> already,
>>>>> I deleted it from the zip file and am going to try again with a much
>>>>> smaller
>>>>> zip file.
>>>>>
>>>>> Thanks,
>>>>> Dick Baldwin
>>>>>
>>>>> On Fri, Aug 26, 2011 at 7:23 PM, Richard Baldwin <
>>>>> baldwin@xxxxxxxxxxxxxxx> wrote:
>>>>>
>>>>>> Hi John,
>>>>>>
>>>>>> I'm afraid that given my current lack of knowledge of SWT, I would
>>>>>> be
>>>>>> completely overwhelmed by the BrailleBlaster code.
>>>>>>
>>>>>> However, I have attached a zip file containing a simple page
>>>>>> switcher
>>>>>> program using SWT. If you could take the time to import it into
>>>>>> Eclipse (or
>>>>>> however you program using SWT) and let me know if the structure that
>>>>>> I am
>>>>>> using could be successfully navigated by a blind person, or how I
>>>>>> should
>>>>>> modify it to achieve that goal, I would greatly appreciate it.
>>>>>>
>>>>>> The GUI contains a list of three items. (I could make it a Combo or
>>>>>> three radio buttons.) When the user selects one of the items in the
>>>>>> list, a
>>>>>> Composite object opens below the list. Right now, the Composite page
>>>>>> simply
>>>>>> contains a label, but eventually I intend for each new page to be a
>>>>>> significant GUI in its own right.
>>>>>>
>>>>>> By the way, I had to rename a couple of build.bat files to get the
>>>>>> zip
>>>>>> file past the GMail virus police.
>>>>>>
>>>>>> Thanks,
>>>>>> Dick Baldwin
>>>>>>
>>>>>>
>>>>>>  On Fri, Aug 26, 2011 at 6:45 PM, John J. Boyer <
>>>>>> john.boyer@xxxxxxxxxxxxxxxxx> wrote:
>>>>>>
>>>>>>> Dick,
>>>>>>>
>>>>>>> Accessibility with SWT is almost automatic. BrailleBlaster does not
>>>>>>> use
>>>>>>> any particular accessibility features now, though it might use the
>>>>>>> accessibility package in SWT later. In the Bfailloeblasterr menu,
>>>>>>> BBMenu.java there is a listener for each item. The event is not
>>>>>>> sent
>>>>>>> until the enter key is pressed on that item. There are SWT widgets
>>>>>>> for
>>>>>>> handling lists. These will be used later, for example in handling
>>>>>>> the
>>>>>>> list of recent documents.
>>>>>>>
>>>>>>> If you have Mercurial you can get the source of BrailleBlaster from
>>>>>>> its
>>>>>>> googlecode page. BBMenu.java is in org.brailleblaster.wordprocessor
>>>>>>> I
>>>>>>> could also send you this class privately as an attachmennt, if you
>>>>>>> wish.
>>>>>>>
>>>>>>> John
>>>>>>>
>>>>>>> On Fri, Aug 26, 2011 at 06:03:09PM -0500, Richard Baldwin wrote:
>>>>>>> > I know this is off topic for this list, but I also know that
>>>>>>> there
>>>>>>> are
>>>>>>> > several excellent SWT programmers that frequent this list who
>>>>>>> probably know
>>>>>>> > the answer to my question.
>>>>>>> >
>>>>>>> > The objective is to make it possible for a blind user of an SWT
>>>>>>> GUI
>>>>>>> to
>>>>>>> > navigate through a list of items, such as might be found in a
>>>>>>> Combo,
>>>>>>> a List,
>>>>>>> > or perhaps a set of Radio buttons, and cause an event to be fired
>>>>>>> for one
>>>>>>> > and only one of the items in the list when that item is chosen.
>>>>>>> >
>>>>>>> > It looks to me like using the following code to register a
>>>>>>> listener
>>>>>>> on each
>>>>>>> > item in the list causes each item to fire an event when the arrow
>>>>>>> keys are
>>>>>>> > used to traverse the list:
>>>>>>> >
>>>>>>> > addSelectionListener(new SelectionAdapter()
>>>>>>> >
>>>>>>> > I guess what I am looking for is something like an ActionListener
>>>>>>> in
>>>>>>> the AWT
>>>>>>> > and Swing that can be fired by pressing the Return key after the
>>>>>>> arrow keys
>>>>>>> > have been used to choose a specific item.
>>>>>>> >
>>>>>>> > I am finding that learning the SWT and trying to achieve
>>>>>>> accessibility for
>>>>>>> > blind users at the same time is something of a challenge.
>>>>>>> >
>>>>>>> > If you prefer to contact me and have this discussion off list,
>>>>>>> that
>>>>>>> will be
>>>>>>> > OK with me.
>>>>>>> >
>>>>>>> > Thanks,
>>>>>>> > Dick Baldwin
>>>>>>> >
>>>>>>> > --
>>>>>>> > 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@xxxxxxxxxxxxxxx
>>>>>>> > http://www.austincc.edu/baldwin/
>>>>>>>
>>>>>>> --
>>>>>>> John J. Boyer; President, Chief Software Developer
>>>>>>> Abilitiessoft, Inc.
>>>>>>> http://www.abilitiessoft.com
>>>>>>> Madison, Wisconsin USA
>>>>>>> Developing software for people with disabilities
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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@xxxxxxxxxxxxxxx
>>>>>> http://www.austincc.edu/baldwin/
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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@xxxxxxxxxxxxxxx
>>>>> http://www.austincc.edu/baldwin/
>>>>>  <PageSwitcher01.zip>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> 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@xxxxxxxxxxxxxxx
>>>> http://www.austincc.edu/baldwin/
>>>>
>>>
>>
>>
>> --
>> 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@xxxxxxxxxxxxxxx
>> http://www.austincc.edu/baldwin/
>>
>
>
>
> --
> 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@xxxxxxxxxxxxxxx
> http://www.austincc.edu/baldwin/
>



Other related posts: