After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 376015 - [a11y] time-admin time servers table is not accessible.
[a11y] time-admin time servers table is not accessible.
Status: RESOLVED FIXED
Product: orca
Classification: Applications
Component: general
unspecified
Other All
: Normal normal
: 2.20.0
Assigned To: Rich Burridge
Orca Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-11-16 17:27 UTC by Rich Burridge
Modified: 2008-07-22 19:27 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18


Attachments
Patch to implement the suggested fix in comment #7. (10.80 KB, patch)
2007-05-24 20:14 UTC, Rich Burridge
none Details | Review
Revised patch (11.61 KB, patch)
2007-05-25 18:36 UTC, Rich Burridge
committed Details | Review

Description Rich Burridge 2006-11-16 17:27:51 UTC
See also Orca bug #358467 (comments #21, #23-#25) for more details.

With the time-admin application, if you click on the "Select Servers"
button it brings up a table of time servers that you can synchronize with.
Because this table contains table cells which in turn contain two more 
table cells, this renders them inaccessible to screen readers such as Orca.

at-poke can't see them either.

The list of messages in Evolution mail view has an accessible 
table and table cells. Perhaps you can check the code there 
to see how they did it.
Comment 1 Carlos Garnacho 2006-11-16 18:36:32 UTC
Maybe the code of GailTreeView should be improved to take this into consideration? I may have a look at the code

I'm thinking this because the table (and the one in users-admin) is just a plain GtkTreeView which happens to have 2 cell renderers inside one column, so the fix should be more generic
Comment 2 Rich Burridge 2006-11-16 21:14:05 UTC
Maybe it should. Adding Padraig (a gail expert), for his thoughts on this.
Comment 3 padraig.obriain 2006-11-17 10:36:04 UTC
This looks like a bug in gail so I am transferring it there. 

The strange thing is that there is code in gailtreeview.c to deal with the case when a column contains more than one cell renderer and that seems to be working as I would expect.

Need to look further.
Comment 4 padraig.obriain 2006-11-17 10:56:55 UTC
When you run at-poke click on Edit | Preferences.

Unset the toggle don't poke at widgets marked private (MANAGES DESCENDANTS)

The table has the state MANAGES_DESCENDANTS set and has about 60 children.

This will allow at-poke to show the children of the table to be shown in at-poke.

Trnasferring to orca.
Comment 5 Rich Burridge 2006-11-17 16:00:39 UTC
We currently have code in the users-admin script (with the
time-admin script mapped to it) that works around this "two
table cells in a table cell" problem.

Will, do we want to move this code up into _getBrailleRegionsForTableCell() 
and  _getBrailleRegionsForTableCellRow() in braillegenerator.py and
_getSpeechForTableCell() and in speechgenerator.py ?
Comment 6 Willie Walker 2006-11-17 16:12:25 UTC
Rich - until we get a good set of regression tests in place, I'm hesitant to bump this up to the more general speech and braille generators for fear that we might break something.  However, if we end up pushing it up higher, we might make it a very specific fix along the lines of:

If this table cell has 2 children and one of them is has a 'toggle' action and the other does not, then present this as a checkbox where:

  1) we get the checked state from the cell with the 'toggle' action
  2) we get the label from the other cell

We have done very specific heuristics for other things, such as when we come across a panel or filler and want to see if it has a label.  That check sees if the panel/filler has 2 children and one of them is a label that is not labelling anything.  Kind of hacky, we need to do these kind of things when we find that kind of practice is popular in the wild.

Will

Comment 7 Willie Walker 2007-05-22 14:17:11 UTC
> if we end up pushing it up higher, we might
> make it a very specific fix along the lines of:
> 
> If this table cell has 2 children and one of them is has a 'toggle' action and
> the other does not, then present this as a checkbox where:
> 
>   1) we get the checked state from the cell with the 'toggle' action
>   2) we get the label from the other cell

I'd say shoot for this fix to keep it relatively safe.
Comment 8 Rich Burridge 2007-05-24 20:14:00 UTC
Created attachment 88766 [details] [review]
Patch to implement the suggested fix in comment #7.

Patch not committed yet. Please test.
Comment 9 Willie Walker 2007-05-24 21:55:15 UTC
(In reply to comment #8)
> Created an attachment (id=88766) [edit]
> Patch to implement the suggested fix in comment #7.
> 
> Patch not committed yet. Please test.
> 

The speech portion seems OK, but the braille portion seems to only show the label and not the check box.  In addition, once the braille checkbox state is showing, it should be the first thing on the line and not the last thing on the line (which is what I think it might be doing now):

BRAILLE LINE:  'time-admin Application Time servers Dialog ScrollPane Table ntp1.cmc.ec.gc.ca (Eastern Canada)'

This doesn't look like a slam dunk. I put some debug in the code and it looks like it is returning the correct regions.  So, it seems like whatever might be calling this might need further debugging.

Thanks!
Comment 10 Rich Burridge 2007-05-25 18:36:16 UTC
Created attachment 88815 [details] [review]
Revised patch

Revised patch does the following:

1/ Puts both the checkbox state and the label on the braille display
   (checkbox state first). The problem was in
   _getBrailleRegionsForTableCellRow(), where we needed to extend all
   of CellRegions rather then append CellRegion[0] if
   orca.settings.readTableCellRow was True.

2/ Don't speak the label if just the checkbox state has changed.

Patch not committed yet. Please test.
Comment 11 Willie Walker 2007-05-25 21:03:56 UTC
This definitely looks much better.  The only question I have is about why we were appending CellRegion[0] in the first place.  While I was on my ride today, I was thinking that maybe this wasn't a mistake, but perhaps some way to avoid putting something on the line, such as the rolename.  I'm not sure about this, though.  Rich, Mike, do either of you remember anything along those lines?
Comment 12 Rich Burridge 2007-05-25 22:39:48 UTC
Sorry, I'm not remembering anything related to this.
Comment 13 Rich Burridge 2007-05-29 15:19:56 UTC
I've committed the latest revision of this patch as we're getting close
to agreement on how it should work. Changing bug status to "[pending].

Note that this patch removed .../orca/src/orca/scripts/users-admin.py so
either checkout Orca completely again from SVN, or remember to run
autogen.sh
Comment 14 Rich Burridge 2007-05-29 19:28:42 UTC
Thanks for the verification Mike. Closing as FIXED.