GNOME Bugzilla – Bug 486899
Where Am I doesn't present checkbox state in tables
Last modified: 2008-07-22 19:32:42 UTC
Steps to reproduce: 1) Run the Tree View -> List Store demo of gtk-demo 2) Arrow down to the first line and arrow left to the checkbox in the first column. 3) Press KP_Enter. Orca outputs the following: "BRAILLE LINE: 'gtk-demo Application GtkListStore demo Frame ScrollPane Table Fixed? ColumnHeader < > Fixed? 60482 Normal scrollable notebooks and hidden tabs'", " VISIBLE: '< > Fixed? 60482 Normal scrollab', cursor=1", "SPEECH OUTPUT: ''", --> "SPEECH OUTPUT: 'cell'", "SPEECH OUTPUT: ''", "SPEECH OUTPUT: '60482'", "SPEECH OUTPUT: 'Normal'", "SPEECH OUTPUT: 'scrollable notebooks and hidden tabs'", "SPEECH OUTPUT: 'row 1 of 14'" Expected results: In step 3, Orca should speak the checkbox state for the first column. I'd expect something like the following: "BRAILLE LINE: 'gtk-demo Application GtkListStore demo Frame ScrollPane Table Fixed? ColumnHeader < > Fixed? 60482 Normal scrollable notebooks and hidden tabs'", " VISIBLE: '< > Fixed? 60482 Normal scrollab', cursor=1", "SPEECH OUTPUT: ''", --> "SPEECH OUTPUT: 'checkbox not checked'", "SPEECH OUTPUT: ''", "SPEECH OUTPUT: '60482'", "SPEECH OUTPUT: 'Normal'", "SPEECH OUTPUT: 'scrollable notebooks and hidden tabs'", "SPEECH OUTPUT: 'row 1 of 14'" I'm not sure if it should say "Fixed? checkbox not checked" or just "checkbox not checked" though. Mike?
I think it should say "Fixed? checkbox not checked" because that better shows the context.
See also role_column_header.py and role_tree_table.py in the test/keystrokes/gtk-demo directory.
I think it would be a good idea to fix bug 487237 before or as part of this work. We duplicate the cell role inference logic too much right now.
I discussed bug 487237 with Rich. The plan is for me to fix this bug first and THEN for Rich to generalize the code. Changing the depends to a blocks.
Created attachment 100006 [details] [review] proposed patch There are several issues mentioned in this bug: 1. The generic "we don't present checkbox state in tables" 2. We don't speak the info for the cell we're on. 3. We should speak the column header of the cell we're on. Issues 2 and 3 are addressed by bug #486897. That leaves the generic speaking of them. This patch will cause checkboxes to be spoken when the entire row gets read. In the process of testing this (to be sure I hadn't broken regular checkbox where am I), I was struck by the pauses that result from making the role (checkbox) and the state (checked/not checked) each be its own utterance. So I tried combining the role and the state and I think it sounds better -- especially when you have a bunch of checkboxes in a row (see the gtk-demo Tree Store example). I'm tossing this out for consideration. If the verdict is that the strings should be combined, I'll look for the affected test assertions and update those. If instead the verdict is to keep the pauses, I'll put them back. Let me know. Finally, our current where am I code had this comment: # Don't speak check box cells that area not checked. That rather contradicts what we want to achieve in this bug. :-) The only rationale I could think of was not saying irrelevant stuff in Evolution and Thunderbird (such as the lack of attachment or the lack of flagged status). I tested this patch with Thunderbird 3 and Evolution 2.21.2 and we are not speaking such irrelevant information. If folks wouldn't mind testing this with earlier versions of Evolution (and any place else they could think of with similar structures) that would be great. Thanks!
I think this patch is what we are looking for including the removal of the pauses.
Created attachment 100025 [details] [review] modified test assertions Thanks Mike! Will: I modified gtk_role_checkbox.py and gtk_role_tree_table.py accordingly. Please review. Thanks! (already pylinted)
(In reply to comment #7) > Created an attachment (id=100025) [edit] > modified test assertions This looks good. Thanks!
Committed. Moving to pending.
looks great
Thanks Mike. Closing as FIXED.