Bug 143019 - Palette Stack is not accessible because screen reader thinks its a push button
Summary: Palette Stack is not accessible because screen reader thinks its a push button
Status: RESOLVED FIXED
Alias: None
Product: GEF
Classification: Tools
Component: GEF-Legacy GEF (MVC) (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.4.0 (Ganymede)   Edit
Assignee: Cherie Revells CLA
QA Contact:
URL:
Whiteboard:
Keywords: accessibility, contributed
Depends on: 145360
Blocks:
  Show dependency tree
 
Reported: 2006-05-22 13:09 EDT by Cherie Revells CLA
Modified: 2008-09-18 13:48 EDT (History)
0 users

See Also:


Attachments
proposed solution (3.86 KB, patch)
2008-04-14 11:11 EDT, Cherie Revells CLA
ahunter.eclipse: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Cherie Revells CLA 2006-05-22 13:09:59 EDT
Use a screen reader (I used JAWS) or Inspect Objects to verify.

When in the palette, use the arrow keys to navigate to a palette stack like the V+ palette stack in the GEF logic example.

The screen reader says "V+ button".  There is no indication that this is a dropdown list where the user could select other palette types.  Inspect Objects also shows that this is a push button.  I think it should say "combo box" or something like that.

On another note, to bring the dropdown list up you have to press ALT+down arrow key.  When JAWS is running this doesn't work for me, but it does when JAWS isn't running.  I have not logged a bugzilla for this issue as I am still trying to figure out if it is a JAWS problem.
Comment 1 Steven R. Shaw CLA 2006-05-29 11:02:33 EDT
Cherie - can you investigate a fix for this?
Comment 2 Cherie Revells CLA 2006-05-30 17:26:26 EDT
The issue is in ToolEntryEditPart.  It uses the pushbutton role for all palette tool entries.  The code looked like this:
		public void getRole(AccessibleControlEvent e) {
			//Is this correct?
			e.detail = ACC.ROLE_PUSHBUTTON;
		}
I want to change this to something like this:
	public void getRole(AccessibleControlEvent e) {
            if (getParent() instanceof PaletteStackEditPart) {
                e.detail = ACC.ROLE_???;
            } else {
                e.detail = ACC.ROLE_PUSHBUTTON;
            }
	}
However, I first need to figure out which role to use.  The toolbar dropdown buttons in Eclipse look very similar to this and they use the role "split button", but there is no such role in the ACC class.  I am waiting to hear a response from the SWT team.
Comment 3 Cherie Revells CLA 2006-06-05 11:20:21 EDT
Created an SWT bugzilla:
145360 ACC class needs split button role
Comment 4 Anthony Hunter CLA 2006-09-12 12:25:14 EDT
Moving to the next maintenance release.

We are waiting for Bug 145360 to be resolved in SWT to be able to proceed further.
Comment 5 Cherie Revells CLA 2008-04-14 11:11:08 EDT
Created attachment 95926 [details]
proposed solution

Attached a patch to use COMBOBOX role.  I also need to check the active entry on the stack as this should only be the role when the user has selected the active entry.
Comment 6 Anthony Hunter CLA 2008-04-22 16:13:26 EDT
(In reply to comment #5)
> Created an attachment (id=95926) [details]
> proposed solution
> 
> Attached a patch to use COMBOBOX role.  I also need to check the active entry
> on the stack as this should only be the role when the user has selected the
> active entry.
> 

I think we applied a palette patch you created after this one. Can you recreate this patch?
Comment 7 Cherie Revells CLA 2008-04-22 16:55:06 EDT
Looks like the changes have already been committed.