| Summary: | CTable does not fire accessibility events for selection or focus | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Scott Kovatch <skovatch> | ||||||
| Component: | SWT | Assignee: | Platform-SWT-Inbox <platform-swt-inbox> | ||||||
| Status: | CLOSED WONTFIX | QA Contact: | |||||||
| Severity: | normal | ||||||||
| Priority: | P3 | ||||||||
| Version: | 3.6 | ||||||||
| Target Milestone: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| Whiteboard: | stalebug | ||||||||
| Attachments: |
|
||||||||
Comment on attachment 170977 [details]
CTable work in progress
Includes Cocoa accessible changes to handle lightweight children correctly.
Created attachment 170978 [details]
JAWS spec
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant. This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug. If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant. -- The automated Eclipse Genie. |
Created attachment 170977 [details] CTable work in progress CTable does not fire the correct events to notify the accessibility infrastructure of changes in rows, selection or focus of individual rows. Test was run on the Cocoa SWT but will apply across platforms. 1. Run org.eclipse.swt.examples.accessibility.AccessibleTableExample. 2. Turn on VoiceOver. 3. Interact with the table -- select rows, change the focused item, etc. Also click on the "Add rows", remove rows, etc. buttons. VoiceOver should notify you when rows are added and when the selection changes. Instead, nothing is announced. ---------------------- Related to this, we have a spec from the author of JAWS (Windows screen reader) that describes the events it expects to see for tables, trees and lists. I will attach it to this report shortly. Specifically for this bug, are not doing the following things: - Accessible.setFocus() is never called. It should be called when the table gets focus or when the focused list item changes via ctrl-arrow. - When the selection changes we get a selectionChanged() but only on the whole table. The spec and the win32 implementation imply that it should be sending a change event for each item that was selected or de-selected, and a focus change event. The events to send are <new item selected>, <focus change> <old item that lost selection>, but it's not clear from the spec if they have to be sent in that order. Note that this has implications for Cocoa. In Cocoa you effectively 'batch' these changes for the whole table, and VoiceOver then asks for the new selection or row count when it's ready. So, we need to consider sending both changes in selection on individual rows for Windows and selection change events on the whole table. The Mac would ignores the individual item selection changes and Windows ignores the table selection change events. For focus change events it doesn't appear that VoiceOver can track a change in keyboard focus to a specific row, but it can be verified with Accessibility Inspector. ----------------------- Finally, we need to rethink the implementation of CTable. Currently it is cell-based, and all of the accessibility functionality is row and column-based, which maps to what GTK-based readers expect. This may mean introducing accessible objects that represent rows that contain cells and managing accessibility requests to maintain that hierarchy. We also want to resurrect CTable2, which is a row-oriented example of a custom table.