This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 393365 - [QuickAccess] Quick Access drop down is not accessible
Summary: [QuickAccess] Quick Access drop down is not accessible
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.3   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 4.4 M6   Edit
Assignee: Wojciech Sudol CLA
QA Contact: Wojciech Sudol CLA
URL:
Whiteboard:
Keywords: accessibility
: 409017 (view as bug list)
Depends on: 421255 425586
Blocks: 415906
  Show dependency tree
 
Reported: 2012-11-01 15:07 EDT by Carolyn MacLeod CLA
Modified: 2014-03-04 08:59 EST (History)
5 users (show)

See Also:


Attachments
SearchField.java (22.31 KB, text/plain)
2013-05-24 16:32 EDT, Carolyn MacLeod CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Carolyn MacLeod CLA 2012-11-01 15:07:46 EDT
Win 7 and Mac, latest build (20121031-2000)

With screen reader running (I was using JAWS on Win 7 and VoiceOver on Mac) type a few characters into the Quick Access field. (I typed the word "test").
The screen reader correctly says "t e s t" as you type. Now arrow down in the drop down list. The screen reader just says "test" "test" "test" every time you type a down arrow, instead of reading the selected item. It would seem that the focus is still on the text field.

So, a bit of a dilemma here: the screen reader needs to read out the selected item... but the text field needs to keep the keyboard focus so that the user can continue to type in the search field. (i.e. be careful not to break bug 162926).

I will find out what apps do to help screen readers in cases like this.
Comment 1 Carolyn MacLeod CLA 2013-01-17 15:54:54 EST
On Linux, Orca doesn't say anything at all when you type down arrow in the drop down.
Comment 2 Carolyn MacLeod CLA 2013-01-17 16:09:43 EST
The Windows "Start menu" has a "Search programs and files" text box that behaves in a similar manner. Both JAWS and NVDA Windows screen readers do a good job of this:
- click on start menu, and they say something like: "Start menu search box edit. Type text or press up or down arrow to move through selections".
- as the user types, keys are spoken, and the selected item at the top of the list is read.
- up or down arrow reads the newly-selected item.

I don't know if the screen readers have special handling for this, or if it j ust works.
Comment 3 Paul Webster CLA 2013-05-24 14:29:03 EDT
*** Bug 409017 has been marked as a duplicate of this bug. ***
Comment 4 Eric Moffatt CLA 2013-05-24 15:35:08 EDT
This may be able to be managed using SWT's accessibility listeners.

We could add an accessibility listener to the 'text' control using

text.getAccessible().addAc....

Then we'd need some logic to determine what the correct output we want to send to the reader is. For example rather than just emitting the text of the selected element in the list if it's a view the string we may want read might be "View <View name>"...

This way we should be able to have the reader(s) do the correct thing even though the KB focus remains on the text control itself.

+1 for Car's idea of trying to match the 'standard' windows start button handling.
Comment 5 Carolyn MacLeod CLA 2013-05-24 16:32:55 EDT
Created attachment 231504 [details]
SearchField.java

Eric, I am attaching a "patch" (can't create an actual patch because I just imported org.eclipse.ui.workbench from the platform, so - sorry - I attached the whole SearchField.java file... you can paste it on top of your SearchField.java and then compare to see diffs).

Note: It is NOT finished - I have to run - but it is a proof-of-concept, and it *works* (only tried it with NDVA - still would need to try with JAWS).

The biggest remaining problem is that the selectionString needs to be cleared when the shell is dismissed, and better still, the accessible name listener should be removed from the table until it is dropped down again. Or something like that.

Also there are still System.out.println's in the code - those need to be removed, code needs to be prettied and reviewed, but I think you should start with this and fine tune it, and you'll be done. Good luck.
Comment 6 Carolyn MacLeod CLA 2013-05-24 17:47:56 EDT
You will also need to do the NLS/ResourceBundle stuff to concatenate the 2 strings with colon-space between.

i.e. in SearchField.java:
...
selectedString = 
  NLS.bind(QuickAccessMessages.QuickAccess_SelectedString,
    item.getText(0),
    item.getText(1));
...

and in the associated messages.properties file:
QuickAccess_SelectedString={0}: {1}
Comment 7 Eric Moffatt CLA 2013-05-27 15:47:42 EDT
Thanks a bunch Car 1 Moving to 4.3.1 for implementation...
Comment 8 Wojciech Sudol CLA 2013-08-23 13:36:01 EDT
Review URL: https://git.eclipse.org/r/#/c/15817/
Comment 9 Eric Moffatt CLA 2013-08-26 14:55:45 EDT
Committed:

http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=b6e6a5e4921ab818676228e0638bd5005eebbc2f

Wojciech, I don't have JAWS handy, could you take tomorrow's I-build and verify that this has gone in correctly ?
Comment 10 Wojciech Sudol CLA 2013-09-17 11:10:36 EDT
I reopen the defect because the last fix does not work with JAWS.
With NVDA it works only sometimes. More investigation is necessary.
Verified in build I20130916-2330.
Comment 11 Wojciech Sudol CLA 2013-10-12 14:10:19 EDT
I tested the quick access drop down once again, this time on fresh Windows 7 instances. The quick access works fine with NVDA, but does not work with JAWS at all.
Comment 12 Wojciech Sudol CLA 2013-11-07 09:56:38 EST
It seems that the problem with JAWS is caused by a bug in SWT. I have opened a new bug 421255.
Comment 13 Paul Webster CLA 2014-01-10 05:52:49 EST
The underlying SWT bug is fixed.

PW
Comment 14 Wojciech Sudol CLA 2014-01-14 07:31:17 EST
It turns out that that bug 421255 was not the real cause of the problem. There are more problems related to SWT accessibility and JAWS - see bug 425586.
Comment 15 Paul Webster CLA 2014-02-04 10:48:11 EST
This may still not work with JAWS, but that appears to be a JAWS bug.  See bug 425586

PW
Comment 16 Wojciech Sudol CLA 2014-03-04 08:59:23 EST
Verified in I20140303-2000 with NVDA.