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

Bug 319677

Summary: VoiceOver doesn't read tooltip (help tag)
Product: [Eclipse Project] Platform Reporter: Markus Keller <markus.kell.r>
Component: SWTAssignee: Scott Kovatch <skovatch>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: carolynmacleod4, Silenio_Quarti, skovatch
Version: 3.7Flags: skovatch: review? (carolynmacleod4)
Target Milestone: 3.6.1   
Hardware: PC   
OS: Mac OS X   
Whiteboard:
Attachments:
Description Flags
Fix none

Description Markus Keller CLA 2010-07-13 05:55:48 EDT
I20100706-0800

VoiceOver doesn't read the tooltip (help tag) of the current control on VO-Shift-H as described here:
http://www.apple.com/voiceover/info/guide/_1124.html#mchlp2701

This also doesn't work in the Finder, but it works e.g. in the System Preferences (Language & Text > Formats > Show all regions).
Comment 1 Scott Kovatch CLA 2010-07-13 17:34:35 EDT
This works for me locally, but I'm also sitting on the change for bug 315812 as it needs to be reviewed for 3.6.1, which is probably why I'm seeing it and you don't.

I'll check that into HEAD and we can verify on the next nightly build.
Comment 2 Scott Kovatch CLA 2010-07-13 18:15:28 EDT
I just compared with the last I-build and verified that 315812 is indeed the same bug.

*** This bug has been marked as a duplicate of bug 315812 ***
Comment 3 Markus Keller CLA 2010-07-14 15:03:43 EDT
Bug 315812 fixed this for ToolItems (fix looks and feels good). This bug requests similar support for the other controls like Button, Label, Text, ...

E.g. I can't hear "Tooltip" when I use VoiceOver in this program:

public class Snippet {
    public static void main(String[] args) {
        final Display display = new Display();
        final Shell shell = new Shell(display);
        shell.setLayout(new GridLayout());
        
        Label label = new Label(shell, SWT.NONE);
        label.setText("Label Text");
        label.setToolTipText("Label Tooltip");
        
        Text text = new Text(shell, SWT.NONE);
        text.setText("Text Widget Text");
        text.setToolTipText("Text Widget Tooltip");
        
        shell.setSize(280, 100);
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }
}

An example in the SDK is in 'Preferences > General':
The 'Always run in background' checkbox has a tooltip.
Comment 4 Scott Kovatch CLA 2010-07-14 17:30:06 EDT
Ah, I see now. We just need to return the tooltip text as the help data if it's available.

Fixed in HEAD > 20100714. I'm going to ask Carolyn to review for 3.6.1 since it's a small fix.
Comment 5 Scott Kovatch CLA 2010-07-14 17:40:46 EDT
Created attachment 174355 [details]
Fix

Patch is based on 3.6 maintenance branch. Since this is accessibility-related it's a 3.6.1 candidate.
Comment 6 Scott Kovatch CLA 2010-07-14 17:42:09 EDT
Car, please review for 3.6.1. Fix is: if nothing else has already returned a value for the help attribute return the toolTipText for the Control.
Comment 7 Scott Kovatch CLA 2010-08-18 13:17:41 EDT
Reopening, as it was fixed in HEAD but not yet for 3.6.1. Needs a review.
Comment 8 Scott Kovatch CLA 2010-08-18 13:56:11 EDT
Now fixed in R3_6_maintenance branch > 20100818.
Comment 9 Scott Kovatch CLA 2010-08-18 13:56:23 EDT
.
Comment 10 Carolyn MacLeod CLA 2010-08-25 12:23:23 EDT
Looks good. I don't think you need the extra "if (returnObject == null) {".
Works great (For testing, I used the "Set/Get API" feature of ControlExample for a bunch of different controls, and typed VO-H after setting the tooltipText and giving focus to the control).