Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 18518

Summary: [Dialogs] Cannot read indirect child controls in dialogs with JAWS
Product: [Eclipse Project] Platform Reporter: mojit
Component: UIAssignee: Tod Creasey <Tod_Creasey>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: carolynmacleod4, david_williams, dbennett, dipalerm, for.work.things, kmbauer, n.a.edgar, omosaiye, paulacox, Tod_Creasey, turnham, veronika_irvine
Version: 2.0Keywords: accessibility
Target Milestone: ---   
Hardware: PC   
OS: Windows 2000   
Whiteboard:
Bug Depends on: 21771    
Bug Blocks:    

Description mojit CLA 2002-05-31 16:28:46 EDT
Error messages or warnings in dialog boxes are not accessible by 
MS Inspect or JAWS

ex. File / New / Java Class / Type package name

get error message "Type name is empty". 

A user will not know the message is there or what the problem is.

Using Ins-B or Jaws cursor is not adequate for this problem.
Comment 1 Mike Wilson CLA 2002-06-01 10:30:15 EDT
That dialog is built by the UI team.
Comment 2 Nick Edgar CLA 2002-06-01 12:05:57 EDT
If the label has or can be given an id, then scripting could be used to read 
it when it changes.
Comment 3 Tod Creasey CLA 2002-06-03 07:40:07 EDT
Dialogs can be read using the JAWS cursor. Please elaborate on the id for the 
label required - this label is defined in the superclass and so it would be 
possible to give it a name for all MessageDialogs. Also please let us know 
about how to use a script in JAWS to test this.
Comment 4 mojit CLA 2002-06-12 15:13:14 EDT
As stated before JAWS cursor or INS-B are not adequate solution to this problem 
since the user has no idea when an error is displayed on the screen. The 
Accessibility center should be contacted for guidance on fixing this problem.
Comment 5 mojit CLA 2002-07-09 09:25:35 EDT
any new updates on this problem?
Comment 6 Tod Creasey CLA 2002-07-09 09:38:22 EDT
In the latest SWT and UI plugins it is now possible for the title of a message 
box to be read using JAWS. As the label is the first widget created and now a 
child of the shell it is read both when then dialog comes up and when Ins-B is 
used to read the entire dialog. Other widgets must still be tabbed to but they 
can all still be read so in most cases all widgets are accessible to JAWs and 
in all cases the main message will be found by JAWS.

JAWs will read any widgets that are direct children of the shell which in the 
new implementation is only the label. To make the buttons children of the shell 
would require a breaking API change which may be considered for 3.0 as a large 
number of dialogs are subclasses of MessageDialog.

There will be a new build sometime on the week of the 15th of July that will 
have this new support.
Comment 7 Tod Creasey CLA 2002-07-10 11:28:40 EDT
Reducing to P3 as error messages are now accessible. Marking as later as making 
any more of the widgets direct children of the shell will require an API change.
Comment 8 Nick Edgar CLA 2002-07-17 12:02:22 EDT
The fixes Tod refers to above were released in yesterday's integration build.
Comment 9 Nick Edgar CLA 2002-07-17 12:04:54 EDT
*** Bug 15576 has been marked as a duplicate of this bug. ***
Comment 10 Nick Edgar CLA 2002-07-17 12:15:16 EDT
With the fix in yesterday's build, JAWS now reads the title and message of a 
message dialog when it appears and when using Ins+B.  This is a major 
improvement, but does not solve the problem in general.  

Other controls on the dialog which are not direct children of the shell are 
still not read.  This includes the OK/Cancel buttons, and any other controls 
added by subclasses of MessageDialog. For example, in the delete project dialog 
(select a project and choose delete), the radio buttons for "Also delete 
contents" / "Do not delete contents" are not read automatically when the dialog 
appears or when using Ins+B.  If the controls can take focus, then they can be 
read by giving them focus.  If there are other labels in the dialog, they still 
cannot be read.

Also, for wizard dialogs, property dialogs and the preferences dialog, the 
title will be read, but other controls such as the descriptive label will not 
be read since they are not direct children of the shell.  It will be very 
difficult for us to fix this in general, and next to impossible to change this 
without introducing breaking API changes.


Comment 11 Nick Edgar CLA 2002-07-17 12:15:55 EDT
We should encourage Henter Joyce to include indirect children of the shell when 
reading the dialog when it appears, and when using Ins+B.
Comment 12 Nick Edgar CLA 2002-07-17 14:44:41 EDT
Correction: the SWT fix to use role=dialog instead of role=client did not make 
it into yesterday's integration build, but it is available in the last nightly 
build (20020617 nightly).  It will be in next Tuesday's integration build.
Comment 13 Nick Edgar CLA 2002-07-17 14:45:27 EDT
Correction to the correction: 20020717 nightly
Comment 14 Tod Creasey CLA 2002-07-25 08:46:44 EDT
Reopening PR so that we can track progress with Henter-Joyce.

As of build 20020723 the direct children of the shell of a dialog will be read. 
However the Ins B (read in Tab Order) feature does not currently work - SWT is 
still investigating what information JAWS is asking for.
Comment 15 Tod Creasey CLA 2002-07-25 12:54:36 EDT
Renaming to Cannot read tab order with JAWS as the error message can now be 
read.
Comment 16 Nick Edgar CLA 2002-07-26 10:10:05 EDT
There are still two main problems:
1. When a dialog first appears, JAWS reads the title, the direct children of 
the shell, and the control that has focus, but does not read indirect children 
(exception: it will read the focus control even if it is an indirect child).

2. When using Ins+B to read the dialog, it has similar limitations.  However, 
the underlying behaviour is different.  Unlike case 1, JAWS actually asks for 
the indirect controls and for their name, state, role, etc.  However, it ends 
up not reading the information it requested.
Comment 17 Nick Edgar CLA 2002-07-26 16:55:37 EDT
Need to include the fixes for this in 2.0.1 (including the SWT dialog class 
change).

Comment 18 Tod Creasey CLA 2002-08-06 14:08:16 EDT
Fixes have been released to the 2.0.1 stream. Marking for 2.1 as we will need 
support from Hentor Joyce to go any further.
Comment 19 mojit CLA 2002-09-12 14:15:49 EDT
Comments from Accessibility Center:

<SR: Freedom has not responded to notes we sent on their support for indirect 
children.  I need to understand how you determined that "JAWS has the 
capability to pick them up".  I'm trying my dev contacts at Freedom to see if 
we can get an answer from them.>
Comment 20 Tod Creasey CLA 2002-09-17 07:43:49 EDT
When we implement the Windows IAccessibility interface JAWS is asking the 
widget for the accessible value but does not report it to the user. Veronika 
can elaborate.
Comment 21 Tod Creasey CLA 2002-09-18 12:51:55 EDT
*** Bug 19924 has been marked as a duplicate of this bug. ***
Comment 22 Tod Creasey CLA 2002-11-26 15:30:50 EST
*** Bug 8879 has been marked as a duplicate of this bug. ***
Comment 23 Nick Edgar CLA 2003-01-15 11:20:58 EST
Cannot commit to this for 2.1.  Waiting to hear from accessibility center on 
feedback from Freedom Scientific re bug 21771, on which this bug depends.
Comment 24 Carolyn MacLeod CLA 2004-02-11 16:56:04 EST
Tried this again with the JAWS 5.0 upgrade (5.00.809).
I think I see what you are saying about INS+B not reading all of the controls, 
but I am not sure that this is really required to read this dialog (or similar 
dialogs). All controls can be read when they have focus - including the error 
message label (now an edit box) that was the original problem. Note that bug 
21771 does not have anything to do with this dialog, as all of the buttons in 
this dialog are standard OS buttons with WindowText (i.e. set using SWT's API: 
Button.setText). What I am saying is that I think this bug report can be 
closed, because I think the dialog is accessible. Please advise.
Comment 25 Tod Creasey CLA 2004-03-29 09:57:13 EST
We have done all that is possible here - Bug 21771 describes any other work 
than can be done.
Comment 26 Tod Creasey CLA 2005-05-10 14:55:54 EDT
Marking closed