Bug 245159 - [Preferences] Preference pages not scrollable (accessible) via keyboard
Summary: [Preferences] Preference pages not scrollable (accessible) via keyboard
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.4   Edit
Hardware: PC Windows XP
: P3 critical (vote)
Target Milestone: 3.4.1   Edit
Assignee: Platform-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 245437
  Show dependency tree
 
Reported: 2008-08-25 13:49 EDT by Jamie Liu CLA
Modified: 2009-01-22 13:35 EST (History)
7 users (show)

See Also:
bokowski: review+


Attachments
screenshot of Java Preferences page under high contrast extra large settings (114.99 KB, image/jpeg)
2008-08-25 13:54 EDT, Jamie Liu CLA
no flags Details
Patch against JFace (840 bytes, patch)
2008-08-27 16:01 EDT, Kim Horne CLA
eclipse: review?
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jamie Liu CLA 2008-08-25 13:49:50 EDT
Build ID: I20080207-1530

Steps To Reproduce:
1. Set Windows OS to high contrast mode with extra large font (ie. in Control Panel > Accessibility Options, click Settings button and select "High Contrast Black (extra large)" )
2. In Eclipse, select Windows > Preferences... to open up Preferences dialog
3. Select "Java" node to show the Java preference page (or any longer preference page)
4. Notice vertical and horizontal scrollbars (Display has resolution 1024x768)
5. Tab to traverse different controls in preference page.  

Result: When reaching controls that are not seen initially, the scrolled composite does not scroll to make that control visible.

Expected: Scrolled composite in preference page should be scrolled to show the control the user is focusing on.


More information:
I noticed there is API introduced in Eclipse 3.4 for ScrolledComposite that makes the controls visible as a user traverses via keyboard:

public void setShowFocusedControl(boolean show)

Could the ScrolledComposite used in the PreferenceDialog take advantage of that new API?
Comment 1 Jamie Liu CLA 2008-08-25 13:54:11 EDT
Created attachment 110830 [details]
screenshot of Java Preferences page under high contrast extra large settings
Comment 2 Raji Akella CLA 2008-08-27 12:25:24 EDT
This issue is being flagged by our Accessibility team as Accessibility Compliance Failure : Checkpoint 4.5 - text in the dialog needs to be visible or scrollable (via kb) to view.

Comment 3 Jamie Liu CLA 2008-08-27 12:30:56 EDT
Changing severity to "critical" since this is a Section 508 blocking accessibility issue.  Could someone please take a look at the suggested fix in the initial description? 
Comment 4 Kim Horne CLA 2008-08-27 13:57:16 EDT
Are you hoping to see this in 3.4.1?  It's probably too late for that without any kind of escalation at your end.
Comment 5 Raji Akella CLA 2008-08-27 14:08:13 EDT
Thanks Kim, will do.

Comment 6 Kim Horne CLA 2008-08-27 15:54:33 EDT
This fix appears good.  Boris, can I get a +1?  This has just appeared on the IES list.  Patch forthcoming.
Comment 7 Kim Horne CLA 2008-08-27 16:01:09 EDT
Created attachment 111116 [details]
Patch against JFace

Uses the new SWT api for following focus widget
Comment 8 Kim Horne CLA 2008-08-27 16:20:08 EDT
Fix in R3_4_maintenance
Comment 9 Raji Akella CLA 2008-08-27 17:18:08 EDT
I had posted a comment in https://bugs.eclipse.org/bugs/show_bug.cgi?id=245366 saying it was a dup of this one. Do you agree?

Comment 10 Hiroyuki Okamoto CLA 2008-08-28 09:34:09 EDT
Kim,
This is a comments we got:

So, this means Eclipse still have Accessibility issues on Scrolling bar, even with Jamie's patch (that is, Kim's patch which adds scrolled.setShowFocusedControl in PreferenceDialog.java). From accessibility viewpoint, all the capabilities that we can use mouse to complete should also be able to complete via keyboard. So, scrolling bar should be operated via key board definitely.

So looks like, it is not enough to add setShowFocusedControl in PreferenceDialog. 
The issue is arrow keys (or PageUp/Down ?) cannot scroll prefeference page.

Steve,
is this something SWT ScrolledComposite can fix ?
Comment 11 Paul Webster CLA 2008-08-28 10:16:53 EDT
(In reply to comment #10)
> This is a comments we got:
> 
> So, this means Eclipse still have Accessibility issues on Scrolling bar, even
> with Jamie's patch (that is, Kim's patch which adds
> scrolled.setShowFocusedControl in PreferenceDialog.java). From accessibility
> viewpoint, all the capabilities that we can use mouse to complete should also
> be able to complete via keyboard. So, scrolling bar should be operated via key
> board definitely.

As I understand it, you need to be able to reach equivalent functionality not necessarily the same functionality.  The actual test was tabbing into a control that remained invisible, and that has now been fixed.

Accessibility does not mean that whatever you can do with the mouse you can do with the keyboard, simply that you can access the same functionality in some way (for example, via a menu accelerator or label mnemonic, rather than through mouse event emulation).

What functionality can you not access in the original test case?  Maybe we need to look into that again.

Conversely, is there an accessibility standard for external scrolled widgets (ALT+UP_ARROW should alway scroll the external widget)?  It might be that we have to catch keystrokes (and block them from the contained SWT controls) but it we are to do that, then it must be a well recognized standard.

PW
Comment 12 Hiroyuki Okamoto CLA 2008-08-28 10:36:20 EDT
Ann,
could you answer Paul's questions (comment #11) ?
Comment 13 Ann Abbott CLA 2008-08-28 10:58:39 EDT
Per the Software Accessibility Checklist/Checkpoint 1.1/Provide keyboard equivalents for all actions: Scrolling must be supported with the keyboard using the standard scrolling keys; page up, page down and tab, to move the viewing area and keyboard focus appropriately. 

Comment 14 Paul Webster CLA 2008-08-28 11:24:28 EDT
(In reply to comment #13)
> Per the Software Accessibility Checklist/Checkpoint 1.1/Provide keyboard
> equivalents for all actions: Scrolling must be supported with the keyboard
> using the standard scrolling keys; page up, page down and tab, to move the
> viewing area and keyboard focus appropriately. 
> 

And now we move the viewing area and keyboard focus appropriately on tab.

PW
Comment 15 Jamie Liu CLA 2008-08-28 11:40:12 EDT
The use case we were concerned about were controls that do not gain focus (ie. Labels).  Kim's patch helps a lot because now we may be able to work around this by strategically positioning controls, but it would be helpful if there was a generic way of handling scrolling.  

One case where this may be common is if there is a label at the top or bottom of a preference page -- if it is at the top, once the user tabs such that the page scrolls down, there is no way to tab back up to ensure that the label at the top is visible again.
Comment 16 Paul Webster CLA 2008-08-28 11:54:15 EDT
(In reply to comment #15)
> The use case we were concerned about were controls that do not gain focus (ie.
> Labels).  Kim's patch helps a lot because now we may be able to work around
> this by strategically positioning controls, but it would be helpful if there
> was a generic way of handling scrolling.  

Correct, labels won't gain focus although read-only text widgets will.

I think the more general case for preference pages can be addressed in 3.5 with bug 245366.  We need time to come up with and publish a strategy for client contributed preference pages that can contain any controls and code especially if the general solution is to eat certain keystrokes for the entire preference dialog.

Steve, I don't support that scroll bars can take focus?

PW
Comment 17 Paul Webster CLA 2008-08-28 11:55:32 EDT
(In reply to comment #16)
> 
> Steve, I don't support that scroll bars can take focus?
> 

That would be "I don't *suppose* ..."

PW
Comment 18 Steve Northover CLA 2008-08-28 13:32:53 EDT
Scroll bars don't take focus and even if they did, it would be annoying and strange compared to other applications on the desktop.
Comment 19 Hiroyuki Okamoto CLA 2008-08-28 21:25:12 EDT
btw,
here is "IBM Software Accessibility Checklist" Ann mentined in comment #13:
http://www-03.ibm.com/able/guidelines/software/accesssoftware.html
Comment 20 Paul Webster CLA 2009-01-22 13:35:15 EST
In M20090121-1700
PW