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

Bug 38710

Summary: [content assist][correction] additional info should be accessible
Product: [Eclipse Project] Platform Reporter: Tom Hofmann <eclipse>
Component: TextAssignee: Markus Keller <markus.kell.r>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P2 CC: benno.baumgartner, carolynmacleod4, daniel_megert, darin.eclipse, dipalerm, kai-uwe_maetzel, markus.kell.r, Olivier_Thomann, philippe_mulet, zina
Version: 2.1Keywords: accessibility
Target Milestone: 3.4 RC1Flags: philippe_mulet: pmc_approved+
Hardware: PC   
OS: Windows 2000   
Whiteboard:
Bug Depends on: 232038    
Bug Blocks:    

Description Tom Hofmann CLA 2003-06-10 11:04:36 EDT
The tooltip-like infobox that will show additional info about a completion 
proposal / content assist proposal is not accessible to braille terminals. 
While this may be a general problem with tooltips, the additional info is more 
important than other for the user to select the correct choice.

Can we allow the the tooltip to get the focus, or anything similar?

Tested environment: 
eclipse 2.1
Jaws Braille software 4.x
Alva Braille terminal
Comment 1 Carolyn MacLeod CLA 2004-04-13 12:14:56 EDT
Maybe the Java UI could help out here by allowing F2 to give the content 
assist focus or something? Kai, does this sound feasible?
Comment 2 Dani Megert CLA 2008-01-30 02:43:39 EST
*** Bug 216943 has been marked as a duplicate of this bug. ***
Comment 3 Dani Megert CLA 2008-04-29 05:33:54 EDT
>Maybe the Java UI could help out here by allowing F2 to give the content 
>assist focus or something? 
We are currently working on this but it might not make it into 3.5 (see bug 112921) as this could destabilize the other rich hovers.

Carolyn, could we do something here using an org.eclipse.swt.accessibility.AccessibleListener on the table/list? When is getHelp(...) triggered? Could we return the additional info text there?
Comment 4 Carolyn MacLeod CLA 2008-04-29 17:00:08 EDT
I will ask the FreedomScientific guys if there is a key sequence in JAWS that results in IAccessible::get_accHelp being called.
Comment 5 Carolyn MacLeod CLA 2008-04-30 01:01:38 EDT
By 'guys', of course I meant 'developers' <g>.
Comment 6 Dani Megert CLA 2008-04-30 02:14:54 EDT
Moving to RC1.
Comment 7 Frank DiPalermo CLA 2008-05-02 11:49:45 EDT
After looking at this with the latest version of JAWS, 9.0, I have a couple of thoughts:
1. When testing, you should always use the latest version of JAWS as that is the most proficient.  Go to http://www.freedomscientific.com/products/fs/jaws-product-page.asp and select Free Demo.
2. If the yellow box had a role of ToolTip, I would expect JAWS to read it, assuming that JAWS tooltip verbosity is set on.
3. A better solution might be for the user to be able to focus on the yellow box and have a cursor appear there.  Then the JAWS user could arrow up and down and read it a line at a time.  That would be easier ti=o understand than hearing it all at once. 
Comment 8 Dani Megert CLA 2008-05-05 06:07:38 EDT
>After looking at this with the latest version of JAWS, 9.0,
Do you know how/when the getHelp(...) text is requested by JAWS?
Comment 9 Frank DiPalermo CLA 2008-05-05 07:58:43 EDT
I actually don't know that JAWS ever requests the Acc_Help.  That's why I suggested a class of tooltip because we know that JAWS can read tooltips as they appear.  Carolyn is working on an example to see what JAWS' reaction will be.
Comment 10 Dani Megert CLA 2008-05-05 08:06:20 EDT
Does SWT.TOOL make it a tooltip? If so, this is already the case.
Comment 11 Carolyn MacLeod CLA 2008-05-06 11:19:31 EDT
Creating a Shell with SWT.TOOL style didn't actually give the Shell TOOLTIP role, so I wrote the code to do that. With that code, inspect32 reports the tooltip (but it doesn't have any name info). Unfortunately, neither JAWS nor Window-Eyes notices when these fake tooltips are opened. So I didn't release the "tool shell replies tooltip role" code, because it doesn't fix the problem.

So I tried sending a fake focus event, i.e.:
 NotifyWinEvent (EVENT_OBJECT_FOCUS, shell_handle, OBJID_CLIENT, CHILDID_SELF);
but this didn't help either. JAWS & W-E must be keying off of the window class instead of the role, and if so, fake tooltips will always be ignored.

I can't spend any more time on this at this point because of RC1 obligations.
The next step would be to test whether some other WinEvent (other than EVENT_OBJECT_FOCUS) makes any difference, and then to ask whether the screen reader folks are willing to look for tooltip role as well as window class. The get_accHelp angle might be interesting in future - neither screen reader currently supports a keystroke that speaks the help text, but both companies seem willing to look into supporting it in future.
Comment 12 Frank DiPalermo CLA 2008-05-06 13:37:51 EDT
It might be that JAWS reacted to the tooltip, but did not say anything as it expected the text to be in the Name property.  Carolyn will test this theory when she gets past her current crunch in a couple of weeks.
Comment 13 Dani Megert CLA 2008-05-13 11:48:12 EDT
Accessibility is an important part of the 3.3 release and a fix for this bug has been promised. In order to fix this we need to add three methods to an API class but those methods will not be API, as they will have the @noreference and @nooverride tag:

org.eclipse.jface.text.AbstractInformationControlManager.getInternalAccessor()
org.eclipse.jface.text.AbstractHoverInformationControlManager.getInternalAccessor()
org.eclipse.jface.text.source.AnnotationBarHoverManager.getInternalAccessor()

Strictly speaking this is not an API change. Philippe, can you approve?

The complete fix can be seen in the patch attached to bug 112921.
Comment 14 Philipe Mulet CLA 2008-05-13 12:00:10 EDT
This is indeed not an API change. Please double check this usecase with Olivier, as I understand API tooling may not deal properly (yet) with some of it.
Comment 15 Olivier Thomann CLA 2008-05-13 12:11:15 EDT
Adding a method in this case is ok and is not seen as a breakage.
However right now we might report this as being a new API post API freeze. I'll double check what API tools is reporting in this case. See bug 231850.
So feel free to release and I'll take care of supporting this case for 3.4.
Comment 16 Dani Megert CLA 2008-05-14 06:24:44 EDT
This got fixed through bug 112921 i.e. we now allow to set focus into the additional info popup. There's a problem though under Linux regarding the Browser widget (see bug 232038).
Comment 17 Benno Baumgartner CLA 2008-05-19 09:02:51 EDT
verifying
Comment 18 Benno Baumgartner CLA 2008-05-19 09:14:08 EDT
verified in I20080516-1333 that it is possible to set focus into the additional info pop up with the tab key.