Bug 117335 - [Accessibility] Mac: cannot select checkboxes in trees, lists
Summary: [Accessibility] Mac: cannot select checkboxes in trees, lists
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.1.1   Edit
Hardware: Macintosh Mac OS X - Carbon (unsup.)
: P3 normal with 2 votes (vote)
Target Milestone: 3.4 M6   Edit
Assignee: Carolyn MacLeod CLA
QA Contact:
URL:
Whiteboard:
Keywords: accessibility
Depends on:
Blocks:
 
Reported: 2005-11-21 12:11 EST by Karice McIntyre CLA
Modified: 2012-11-07 07:30 EST (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Karice McIntyre CLA 2005-11-21 12:11:26 EST
I have been doing an accessibility check on the Mac and have found that i cannot select checkbox list or tree items by using spacebar or return key.  I have tried both 3.1.1 and 3.2 M3 and get the same result, as follows.

Several examples to try in Eclipse:
1. Import > File System
         -tab to directory tree on left, use arrow keys to navigate to an item, attempt to select items in tree using space bar
         -tab to file list on right,use arrow keys to navigate to an item, attempt to select items in list using space bar
Result: checkbox is not checked when space bar is used to select
2. Help > Software Updates > Find and install... > Search for new features to install > Next
          -tab to site list, use arrow keys to navigate to an item, attempt to select an item using space bar
Result: not checked
Comment 1 Steve Northover CLA 2005-12-02 09:29:50 EST
CAR to confirm and determine the correct key sequence to select check boxes in a native Mac application (it's probably space bar).  SN and CAR to look into why we are not getting this for free.
Comment 2 Karice McIntyre CLA 2005-12-02 10:17:23 EST
Note: this bug only applies to checkboxes in lists/trees.  A checkbox not part of a list or tree is selectable using space bar.
Comment 3 Markos Charatzas CLA 2007-02-10 04:27:17 EST
Version: 3.2.1 still has that bug. Is there a workaround or a patch available?
I had a look at 3.3M4 but didn't see anything related.
Thanks.
Comment 4 Leon Widdershoven CLA 2007-08-19 10:24:16 EDT
It is still (3.3.0) not possible to select a checkbox in a tree, such as used by Source -> Generate getters / setters (java).
Comment 5 Raffi Khatchadourian CLA 2007-10-27 15:22:35 EDT
Also not working in 3.3.1.1, build id: M20071023-1652
Comment 6 Steve Northover CLA 2007-10-29 23:08:10 EDT
Carolyn, what is the correct key sequence that native applications use to select a check box in a table or tree?  Please get to the bottom of this and fix it.
Comment 7 Markus Keller CLA 2007-10-30 05:49:37 EDT
I fear there's no "native" key binding for this and this is an accessibility bug in Mac OS X 10.4.

The System Preferences have a table at Sharing > Services and a tree at Keyboard&Mouse > Keyboard Shortcuts. Both are not accessible. Nevertheless, I think SWT should just hardcode Space as toggling shortcut.
Comment 8 Carolyn MacLeod CLA 2007-10-30 13:35:30 EDT
Markus is correct that there is no native way to check/uncheck a checkbox in a table or tree on Mac OS X 10.4 or earlier. (The table and tree mentioned in comment 7 are Cocoa controls, and SWT uses a Carbon DataBrowser, but neither control has accessible checkboxes).

However, in Leopard (Mac OS X 10.5), you _can_ check and uncheck the checkbox in a table or tree if you turn on full keyboard access (control-F7 by default) and then press the Tab key to put focus on the checkbox. Then the space key checks or unchecks the box. I tried this in a Cocoa tree on Leopard, and it does work. It didn't work immediately in our Carbon tree, however. Perhaps we are holding on to the Tab key at that point. Further investigaton would be necessary to determine whether this new native behavior can make DataBrowser checkboxes accessible "for free". Alternatively, we can just hook a handler for the space key. Steve?
Comment 9 Carolyn MacLeod CLA 2007-10-30 13:54:34 EDT
Further info, from the mac accessibility developer list:

My question to the list:
>Is it possible to check/uncheck checkboxes in a DataBrowser using the >keyboard? (without using MouseKeys, of course). 

The answer, from an Apple developer:
"No, sorry. This functionality is probably never going to be added to DataBrowser. Checkbox support in DataBrowser is fraught with bugs, and is very low priority.

If you are deploying for Leopard or later, one way to achieve the desired result in a Carbon compositing window is to use HICocoaView in conjunction with NSTableView, which does support that functionality.

If you need to deploy for systems earlier than Leopard, and if you aren't using Cocoa, you will probably need to write a custom list view."

Steve, is this extras info useful?
Comment 10 Carolyn MacLeod CLA 2007-10-30 14:16:23 EDT
Steve says we are not going to use NSTableView, so the best solution is to add handling for the space key.
Comment 11 Carolyn MacLeod CLA 2007-12-13 12:41:40 EST
A work-around is to use VoiceOver keys.

To do this, type command+F5 to turn on the VoiceOver (VO) screen reader.
(command+F5 again will turn it off)

VoiceOver draws a bold border rectangle around each item that is "under the VO
cursor" and it speaks the accessible name of the item.

Use control+option+arrow keys ("VO keys") to navigate to the table or tree (VO calls it an "outline").

Then use control+option+shift+down arrow to "interact with" the table or tree.

Now use control+option+arrow keys to navigate through the table/tree items and their checkboxes.

When you get to the checkbox that you care about, use control+option+space to check/uncheck the checkbox.

Then use control+option+shift+up arrow to "stop interacting with" the table/tree.

Remember that command+F5 turns VO off.

I tried this on Tiger (10.4.11) and I suspect it works the same on Leopard (10.5). This will not work on Panther (10.3) because VoiceOver was not introduced until 10.4.
Comment 12 Carolyn MacLeod CLA 2007-12-19 15:58:15 EST
Scott, can you verify comment 9?
Comment 13 Scott Kovatch CLA 2007-12-19 17:04:47 EST
Carolyn, Guy Fullerton (the person who responded to your question) is the lead Carbon engineer, so I'm inclined to say that's the final word, but I will try to get additional confirmation. Your idea in comment #8 of listening for a space bar is a good one, too. We have needed to explicitly listen for key activity on buttons in the past to implement similar functionality.
Comment 14 Markus Keller CLA 2008-02-18 05:47:48 EST
The VoiceOver workaround works, but it is awkward for people who only have problems with positioning the mouse but don't need a screenreader.

Since space is the checkbox toggler on all other platforms (including Cocoa), SWT for Carbon should just emulate this.

(In reply to comment #8)
On 10.5.1 with 'Full keyboard access > All controls', Space already toggles when the full row is selected (no need to tab into the checkbox, e.g. in System Prefs > Keyboard Shortcuts).
Comment 15 Steve Northover CLA 2008-02-18 15:03:01 EST
Ok, we have all agreed that we are going to listen for the space bar.  CAR, is there any reason why we (you) just don't go and implement it?
Comment 16 Carolyn MacLeod CLA 2008-02-28 17:24:42 EST
Fixed > 20080228

OK, I found some time for this. You can now check/uncheck checkboxes in tables and trees on the Mac using the space bar.  :)
Comment 17 Alik Elzin CLA 2012-11-07 07:23:26 EST
Isn't working for me.

OS X Lion.

Eclipse classic with Android plugin and git:
Version: 4.2.1
Build id: M20120914-1800

Scenario:
- command+3 in java code
- Select to override/implement method
- Traverse to the intended method
Result: CANNOT check it with the spacebar nor with the return key.
Comment 18 Alik Elzin CLA 2012-11-07 07:30:54 EST
Found this to solve the issue:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=256054#c2