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

  • From: Richard Baldwin <baldwin@xxxxxxxxxxxxxxx>
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Sat, 27 Aug 2011 16:14:41 -0500

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: