Closed Bug 387710 Opened 17 years ago Closed 17 years ago

getAccessibleAt() is broken for tree tables effective 5th July trunk build of Thunderbird.

Categories

(Core :: Disability Access APIs, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jdiggs, Assigned: evan.yan)

References

(Blocks 1 open bug)

Details

(Keywords: access)

Attachments

(1 file)

Steps to reproduce:

1. Launch Thunderbird and Accerciser.

2. In Accerciser, select the tree table for the current message list.  Then in the iPython Console type:

    table = acc.queryTable()

3. Pick some value for col, where the value you pick is the zero-indexed column number you are interested in.  Assign that value in the iPython Console, e.g.:

    col = 3

4. Type the following in the iPython Console:

    [table.getAccessibleAt(i, col).name for i in range(table.nRows)]

Expected results:  For each row, the contents of column col would be displayed.

Actual results:  For each row, the contents of column col + i are displayed.
Assignee: aaronleventhal → Evan.Yan
After the check-in of bug 377783, column picker (the button on the top-right corner) was exposed as a child of tree column list. The number of columns is now 1 bigger than the number of cells in a row.
Hi Evan, any thing you can do to help resolve this wone would be much appreciated.  This one can cause screen reader users to lose data without ever knowing it.  Currently because of this bug the orca user always hears information for a mail message or addressbook entry which is different than the one with focus.  
Attached patch patchSplinter Review
If the last child of columns accessible is column picker, minus the number of columns by 1.
Attachment #275091 - Flags: review?(aaronleventhal)
I wish we could simplify it just a bit. Can we do

nsCOMPtr<nsIContent> content = do_QueryInterface(mDOMNode);
if (content) {
  nsIContent *lastChild = content->GetChildAt(content->GetChildCount());
  if (content->NodeInfo()->Equals(kNameSpaceID_XUL, nsAccessibilityAtoms::menupopup)) {
  --*aColumns;
}


Comment on attachment 275091 [details] [diff] [review]
patch

Clearing request until that's answered.
Attachment #275091 - Flags: review?(aaronleventhal)
I tried, but it doesn't work. Testing shows the dom tree is like

 --tree
   --treecols
     --treecol
     --splitter
     ...
     --treecol
   --treechildren

No treecolpicker in treecols' children.
I'm curious why the tree isn't the same as it is in DOM inspector.
Comment on attachment 275091 [details] [diff] [review]
patch

One nit: we usually don't use localName for comparisons. I don't remember why. We generally QI to nsIContent and then do
content->NodeInfo()->Equals(kNameSpaceID_XUL, nsAccessibilityAtoms::menupopup))
Attachment #275091 - Flags: review+
Attachment #275091 - Flags: approval1.9?
Attachment #275091 - Flags: approval1.9? → approval1.9+
checked in with Aaron's comment addressed.

/cvsroot/mozilla/accessible/src/atk/nsXULTreeAccessibleWrap.cpp,v  <--  nsXULTreeAccessibleWrap.cpp
new revision: 1.20; previous revision: 1.19
done
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: