Bugzilla – Bug 489941
Implement Atk.Table implementor
Last modified: 2009-11-11 03:20:43 UTC
Create an implementor that implements all Atk.Table methods, properties and events generically so that it can be used by all controls. It should be able to recognize and proxy: - ITableProvider - IGridProvider Also, provide a unit test for the new functionality.
Oops, reverting dependency.
According to mgorse, TableImplementorHelper may be useless, so I guess I'll need more time to figure out this...
Worked a bit on this.
The implementation will likely change slightly from the WinForms one (multi-level children hierarchy)... Doing a bit of research right now with orca, which BTW stumbles upon new bug 534100.
Created attachment 315659 [details] Changed to multi-level This patch contains also the patch for bug 534100. It makes trees appear as having multi-level children.
Created attachment 319135 [details] new version Now that I committed the fix for bug 534100, I'm uploading the new version of this patch, which BTW contains a fix for an infinite loop.
Still working on this. It seems we'll need to modify orca. But WWalker has given me some requirements to fulfill before proposing a patch on it.
After a lot of hours investigating the issue, I think I found the culprit, which is not in our code but in orca. When running the winforms treeview with the multi-level approach the focus signals are not wrong, but: - Orca says the name of a cell which is not focused, but not through it's Name, but through Atk.Text interface. - In default.py (orca source code), the function locusOfFocusChanged has a different behaviour depending on if the treeview is multi-level or not. The exact difference is that the object newLocusOfFocus is indeed the correct one that got new focus, but the function that constructs the information to pass to the speech somehow screws up: utterances = self.speechGenerator.generateSpeech( newLocusOfFocus, priorObj=oldLocusOfFocus) There, the var utterances becomes an array of information about the object newLocusOfFocus, however utterances contains an erroneus name, different than the one that newLocusOfFocus has. This is clearly a bug in orca that should be fixed.
I'm working on porting the Atk.Table and Atk.Relation code from the Winforms bridge to the Moon bridge, but on the way I've found bugs on the winforms which I'm trying to fix first.
Bug related to this, but maybe not dependant: bug 546970.
Taking more time because of weird problems (maybe a bug in moon? GetAccessibleHandle() is called *before* rootvisual is set).
Hours.
Orca will have to be fixed, but it doesn't block basic table impl.
Mainly done in http://reviews.mono-a11y.org/r/488/. Total 32h in this iteration (got 2 days off).