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 301377 - gok: Unable to activate unnamed "actionables" in tables
gok: Unable to activate unnamed "actionables" in tables
Status: RESOLVED FIXED
Product: gok
Classification: Deprecated
Component: general
1.0.x
Other Linux
: High normal
: ---
Assigned To: bill.haneman
bill.haneman
Depends on:
Blocks:
 
 
Reported: 2005-04-20 18:58 UTC by David Bolter
Modified: 2005-04-26 17:28 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
untested patch -- possible solution (2.84 KB, patch)
2005-04-22 15:20 UTC, David Bolter
reviewed Details | Review
patch to check first and second columns of row in preference to row index (4.46 KB, patch)
2005-04-26 12:51 UTC, bill.haneman
none Details | Review
patch - added one unref to previous (3.66 KB, patch)
2005-04-26 13:16 UTC, David Bolter
needs-work Details | Review
patch to provide functionality (7.04 KB, patch)
2005-04-26 17:01 UTC, bill.haneman
committed Details | Review

Description David Bolter 2005-04-20 18:58:20 UTC
From sourceforge bug 1149831 "Unable to check table checkboxes using GOK":

Using Gaim Version 0.82.1 and Gnome gok version 0.12.4

Assumptions
* A User is already created.

Steps
* Start up GOK
* Using GOK, Start up GAIM
* Click on Accounts button
* Navigate to the table
* Navigate and highlight user
* The problem is that there is no way to activate the
"online" and "auto-login" checkboxes using GOK's "UI
Grab" function. The "UI Grab" function selects the tab
above instead. GOK user needs to use the compose
window to effectively KeyNav to the checkbox.
Comment 1 David Bolter 2005-04-20 19:00:55 UTC
After some discussion we have decided that it is not ideal to expect a specified
name for every cell in a table. We will create a patch that names cells using
row/col headers and expect it to resolve this bug.
Comment 2 David Bolter 2005-04-20 19:02:37 UTC
To clarify... "naming cells" will allow us to present cells sanely as gok keys
with appropriate labels.
Comment 3 bill.haneman 2005-04-20 19:29:28 UTC
When we say 'expect a specified name for every cell in a table', more
specifically, we do not expect that every _actionable_ cell will have a name
_if_ it can be uniquely identified from row and column headers, or from column
headers and an unambiguous row name.
Comment 4 David Bolter 2005-04-20 19:49:57 UTC
Bill in implementing the patch I'm running into a bit of a problem. Given a
cell, there is no sane way (API) of getting the row header and or the column
header. I think we are either going to have to special case appending table cell
nodes, or change API.
Comment 5 David Bolter 2005-04-20 19:56:15 UTC
More explicitly: given a cell, to walk up to the table parent and then iterate
through all the cells to find the current cell and therefore the context of the
current one is too expensive.  Currently there is a lot of logic for naming
things (including cells) in gok_spy_append_node. The API for gok_spy_append_node
offers no non-kludgy way of passing in row column header info. What I can do is
change the internal API, or create a gok_spy_append_cell_node which is called if
gok_spy_append_node fails.
Comment 6 David Bolter 2005-04-20 20:11:22 UTC
I presume AccessibleRelation is not an option.
Comment 7 bill.haneman 2005-04-20 21:08:03 UTC
David: you should be able to do this with AccessibleTable, look at
Accessible_getIndexInParent, then AccessibleTable_getRowAtIndex,
AccessibleTable_getColAtIndex.
Comment 8 bill.haneman 2005-04-20 21:09:23 UTC
I don't think you should need to add any API, or at most only a tiny bit, i.e. a
flag that says "we're in a table" (which I think we already have).
Comment 9 korn 2005-04-20 22:00:06 UTC
Have you thought about a "table" keyboard which comes up when you UI Grab a
table?  A list of headers, and when a header is selected, up comes a secondary
keyboard with a list of rows? (unless there are so few cells that you could do
it all one on keyboard).  This could be very useful with StarOffice calc.
Comment 10 bill.haneman 2005-04-21 08:39:57 UTC
In the cases which are of most current interest, there are indeed so few cells
(visible) that we can indeed do it all on one keyboard.

I agree that a "table" keyboard for spreadsheet-type tables and larger trees
would be useful, but that's a longer-term RFE.  The current bug is a way around
simpler cases that are currently affecting our test assertions and user scenarios.
Comment 11 David Bolter 2005-04-21 12:54:29 UTC
Bill, comment 7 clears things up a lot - thanks!

Peter, I totally agree regarding a table keyboard. And I agree with Bill that it
is a longer term RFE.
Comment 12 bill.haneman 2005-04-21 13:06:20 UTC
actually we already have a Table keyboard - it just doesn't mirror the onscreen
view, with row and column headers, etc.  The keyboard under discussion, which
currently omits anonymous cells, is the Table keyboard.
Comment 13 David Bolter 2005-04-22 15:20:39 UTC
Created attachment 45553 [details] [review]
untested patch -- possible solution

I've just written this patch. I'm posting it early for review/direction
purposes.
Comment 14 bill.haneman 2005-04-26 12:35:13 UTC
Comment on attachment 45553 [details] [review]
untested patch -- possible solution

I'd like to see us use the text content of the first/second column if
available, in preference to the row number.  This will produce a more natural
and comprehensible set of labels for most common UIs.
Comment 15 bill.haneman 2005-04-26 12:51:49 UTC
Created attachment 45691 [details] [review]
patch to check first and second columns of row in preference to row index
Comment 16 David Bolter 2005-04-26 13:07:41 UTC
Nice idea.  So for as yet unnamed cells our combined patch tries:
(For each of row and column)
1. Use a header name.
2. For row only, try scavenging a name from an accessible in the first 2
columns. This should work nicely with Gaim.
3. Use the index.

Should work. I've found a few small probs... will update the patch.
Comment 17 David Bolter 2005-04-26 13:16:56 UTC
Created attachment 45693 [details] [review]
patch - added one unref to previous

Can someone else easily test this?
Comment 18 bill.haneman 2005-04-26 13:34:38 UTC
David, I'm testing.  THe current patch doesn't work properly because the
fallbacks are all inside the 'if column header'/'if row header' conditionals,
and we rarely have both row and column headers.  I think it just needs some
rearrangement.
Comment 19 David Bolter 2005-04-26 13:36:21 UTC
OK let me know if you are currently doing this or if I should tackle it.
Comment 20 bill.haneman 2005-04-26 17:01:28 UTC
Created attachment 45708 [details] [review]
patch to provide functionality

patch has been run with valgrind in the test case scenario.
Comment 21 David Bolter 2005-04-26 17:21:04 UTC
Comment on attachment 45708 [details] [review]
patch to provide functionality

Bill thanks for the heavy revisions on the initial patch.  Please apply.  Nice
bug to squash :-)
Comment 22 David Bolter 2005-04-26 17:27:08 UTC
Reassigning to Bill to document the most correct history on this bug.
Comment 23 David Bolter 2005-04-26 17:28:05 UTC
BTW do we need to backport this?
Comment 24 bill.haneman 2005-04-26 17:28:46 UTC
naah.