Bug 15320 - MessageBox message is not read by JAWs
Summary: MessageBox message is not read by JAWs
Status: CLOSED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows 2000
: P2 major (vote)
Target Milestone: 2.0 M6   Edit
Assignee: Platform-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: accessibility
Depends on: 15378 15559
Blocks:
  Show dependency tree
 
Reported: 2002-05-06 10:36 EDT by Randy Hudson CLA
Modified: 2009-08-30 02:22 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Randy Hudson CLA 2002-05-06 10:36:52 EDT
 
Comment 1 Mike Wilson CLA 2002-05-06 10:49:23 EDT
MessageBox is effectively just a call to
  OS.MessageBox (hwndOwner, buffer1, buffer2, bits)
It's odd that it isn't being read, but I'm not sure we can do anything about 
it.
Comment 2 Carolyn MacLeod CLA 2002-05-06 12:25:40 EDT
JAWS *does* read SWT MessageBox messages.
Run the example that is pasted below, and you will believe me.

You did not give steps to repeat, but I suspect that you are talking about 
"message boxes" in the eclipse UI. For some reason they did not like the SWT 
message boxes, so they rolled their own. They did not add accessibility to 
theirs. See the org.eclipse.jface.dialogs.Dialog hierarchy, specifically 
MessageDialog.

import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;

public class MessageBoxTest {
	static Display display;
	static Shell shell;

	public static void main(String[] args) {
		display = new Display();
		shell = new Shell(display);

		MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | 
SWT.YES | SWT.NO | SWT.CANCEL);
		box.setText("MessageBox");
		box.setMessage("JAWS will read this!");
		box.open();
		
		shell.setSize(100, 100);
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) display.sleep();
		}
	}
}
Comment 3 Mike Wilson CLA 2002-05-06 12:36:40 EDT
Moving to UI for comment.
Comment 4 Nick Edgar CLA 2002-05-06 13:01:31 EDT
Probably JFace MessageDialog.
Our dialogs need to be accessible. I suspect that we're using a regular Label, 
which does not get read because it does not take focus.
Could use a read-only Text.

Comment 5 Tod Creasey CLA 2002-05-06 14:00:45 EDT
I don't recommend we use a Text at all - it wraps differently from a label and 
having a gratuitous extra focus area will look bad. I will investigate using 
the IAccessible support.
Comment 6 Randy Hudson CLA 2002-05-06 14:15:26 EDT
Actually, there is no reason to use a read-only Text control, a label should 
work fine.  When you press JAWSKEY+B (usually the "Insert" key on a full-sized 
keyboard), JAWS will read out the contents of the current dialog, labels 
included.  But, in Eclipse, it reads out the Workbench title for some reason, 
and then the messagebox title.  I was told, and I naively believed, that this 
accelerator reads the dialog to the user.
Comment 7 Tod Creasey CLA 2002-05-06 14:27:22 EDT
When I use the Ins+B combination it ends up reading the contents of the window 
that spawned the dialog so I think it is not a reliable enough workaround for 
this.

Randy can you get it to read the contents of the confirmation dialog when 
deleting using your method? I get it reading the main window first.
Comment 8 Randy Hudson CLA 2002-05-06 19:26:13 EDT
Can you try INS+B on a non-Eclipse Windows app that spawns a Modal dialog.  If 
it works in that case, then why doesn't it work in SWT?  Sounds like it could 
still be an SWT problem.
Comment 9 Tod Creasey CLA 2002-05-07 07:44:31 EDT
It works as expected outside of Eclipse. In Eclipse it reads the contents of 
the window that spawned the dialog rather than the dialog itself. The Eclipse 
Message Dialog is not a system dialog - it is a dialog shell with content - i 
wouldn't expect it to work the same way as an OS Message Box
Comment 10 Randy Hudson CLA 2002-05-07 08:54:55 EDT
I was just talking about "custom" dialogs outside of Eclipse, such as the 
Options dialog on Internet Explorer. It sounds like you were testing an OS 
Messagebox outside of Eclipse.

Since the Eclipse Message Dialog is just a dialog, this goes to show that *all* 
dialogs spawned from a workbench window won't get read by JAWS using INS+B. Is 
this true?  So, the Preferences dialog and Properties dialogs aren't "readable" 
either?
Comment 11 Tod Creasey CLA 2002-05-08 12:56:27 EDT
If you look the the Add to Favourites dialog in IE for instance you will find 
that Ctrl+B does read the contents of the dialog. What we need to check against 
is a dialog with no groups that has a Label unrelated to it. I can't think of 
one offhand - if you can this is worth looking at.
Comment 12 Randy Hudson CLA 2002-05-08 13:11:37 EDT
You could find something comparable to MessageDialog outside of Eclipse, or you 
could find something comparable to "Add to favorites" inside Eclipse, such as 
the Preference Dialog.  The preferences dialog doesn't get read either, so I 
don't think this is specific to the contents of MessageDialog.
Comment 13 Tod Creasey CLA 2002-05-30 08:08:08 EDT
Using JAWS it is possible to read the dialog using the JAWS cursor (-) so it is 
not unreadable. The Ins+B functionality is an extra feature that we do not 
currently support that we should consider for later releases. It would likely 
require some sort of discussion with Freedom Scientific (the makers of JAWS).

What it is currently reading is the parent shell (the window) of the dialog - 
special support is required to read a dialog that is not a Windows system 
dialog. This behaviour can be seen in other applications like Photoshop that 
are not specifically designed to work with JAWS.

Marking as LATER.
Comment 14 Tod Creasey CLA 2002-07-25 08:43:53 EDT
In build 0723 MessageBox text is no readable by JAWS as SWT has added 32270 
support to the shell.

Please note that JAWS only reads the direct children of the shell - any 
children within a composite will not be read.
Comment 15 Denis Roy CLA 2009-08-30 02:22:02 EDT
As of now 'LATER' and 'REMIND' resolutions are no longer supported.
Please reopen this bug if it is still valid for you.