Bug 113264 - Screen reader sometimes does not read shapes when switching selection with keyboard
Summary: Screen reader sometimes does not read shapes when switching selection with ke...
Status: RESOLVED FIXED
Alias: None
Product: GEF
Classification: Tools
Component: GEF-Legacy GEF (MVC) (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 3.4.0 (Ganymede) M4   Edit
Assignee: Cherie Revells CLA
QA Contact:
URL:
Whiteboard:
Keywords: contributed
Depends on:
Blocks:
 
Reported: 2005-10-20 14:13 EDT by Cherie Revells CLA
Modified: 2008-09-18 13:31 EDT (History)
2 users (show)

See Also:


Attachments
Fix (835 bytes, patch)
2007-11-09 16:07 EST, 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 2005-10-20 14:13:08 EDT
To reproduce:
- Create a GEF logic diagram with some different shapes.
- Start MS Narrator.
- Select shapes with mouse and they are read properly (e.g. "LED").
- Select shapes with the keyboard arrow keys and they are most often read 
somewhat properly (e.g. "BLAH BLAH BLAH LED").
ISSUE: Sometimes when you select the shapes with the keyboard arrow keys they 
are not read (e.g. "BLAH BLAH BLAH" only).
Comment 1 Randy Hudson CLA 2005-10-20 14:47:31 EDT
That's a problem with Narrator. Try another accessibility client.
Comment 2 Steve Francisco CLA 2006-10-16 10:30:11 EDT
Both Windows Eyes and Jaws are not able to read the shapes, that's odd to have both narrator with the same issue... it only says custom control ... user has to go into Edit Mode to read the text ... is this the workaround you are referring to?  If that is the case, what happens to shapes that are invalid (those that are still in the diagram but have been physical deleted), since it is invalid, the user cannot invoke the Edit mode for that, only action is to delete), how can the user workaround that so a blind user can tell that the shape is invalid ?
Comment 3 Cherie Revells CLA 2006-10-16 10:37:15 EDT
What do you mean by an invalid shape?  I don't think we ever have a scenario where the shapes are still in the diagram but have been physical deleted.  
Comment 4 Cherie Revells CLA 2007-11-05 10:32:05 EST
There certainly seems to be something wrong with the screen reading capabilities on a GEF diagram.  Windows Eyes and an older version of JAWS I have, cannot read the shape names anymore, but I am certain this used to work.  Microsoft Narrator works sporadically for me.  Inspect Objects seems to have the correct information.
Comment 5 Cherie Revells CLA 2007-11-05 10:53:09 EST
I thought this might be an issue with the outline view -- see https://bugs.eclipse.org/bugs/show_bug.cgi?id=191570 [Viewers] [Outline] Screen Reader reads text from outline view even when it doesn't have focus.  However, the screen reader still doesn't read the shape name if I modify the logic example to not show the outline view at all.
Comment 6 Cherie Revells CLA 2007-11-07 09:17:47 EST
I have done some more testing.  My conclusions are:

1. There is a bug when the Outline View is hooked up to the diagram editor which is covered under Bugzilla 191570.  Note: This problem does not go away when you close the Outline View, you actually need to modify the editor code so the Outline View is not hooked up to the diagram.

2. (Assuming the Outline View is not hooked up)  I cannot get Windows Eyes nor an older version of JAWS to ever read the shape names on a GEF or GMF diagram.  I am pretty sure this used to work.  Microsoft Narrator will most often read the shape names, but not always.  I have done some testing with the Inspect32 and AccEvent32 tools and it seems that all the correct focus events are being sent.  Therefore, I am concluding this is screen reader problem.
Comment 7 Cherie Revells CLA 2007-11-07 15:19:25 EST
Reopening.  With help from Carolyn on the SWT team, I have figured out that if I give the AccessibleGraphicalEditPart a role like ACC.ROLE_LABEL, Windows Eyes will read it.  The previous role was "client" which apparently is the default role.  I am thinking about implementing the getRole() method in AccessibleGraphicalEditPart in GEF to use ACC.ROLE_LABEL so not every GEF client will need to know that they have to do this.
Comment 8 Cherie Revells CLA 2007-11-09 16:07:12 EST
Created attachment 82576 [details]
Fix

Here is the patch to provide an accessibility role that screen readers seem to understand.  If clients were overriding this role previously, this wouldn't affect them.
Comment 9 Cherie Revells CLA 2007-11-09 16:09:34 EST
This one is ready to be committed.
Comment 10 Anthony Hunter CLA 2007-11-16 10:46:22 EST
Committed to HEAD