GNOME Bugzilla – Bug 355524
Flatreview doesn't work in gnome-about panel.
Last modified: 2008-10-24 20:30:09 UTC
Please describe the problem: The gnome-about panel will not be reported by orca in its flatreview mode. This panel is not accessible in caret browsing mode either. Steps to reproduce: 1. Invoke orca. 2. Invoke gnome-about. 3. Press 9/7 in numpad to read the next/previous line in panel. Actual results: Orca reports blank instead of the words in the line. Expected results: Orca should report the text in the line. Does this happen every time? yes Other information: This bug is reproducible with gnome2.14 and orca1.0.0 on solaris nevada build 46.
Very odd indeed. Looking at things in at-poke seems to indicate all the stuff Orca needs is there, but it's not doing the right thing.
Created attachment 73920 [details] Orca debug output generated whilst trying to flat review gnome-about with Numpad-9
The problem is with the call to: [x, y, width, height] = text.getRangeExtents(startOffset, endOffset, 0) at line 1148 in getZonesFromAccessible() in flat_review.py. For the accessible objects that contain text, this is returning x, y, width and height values that are all 0. I added some extra print statements to printout those values and the current cliprect[x,y,width,height] values, just before calling visible(), and none of them are visible. So the perfect valid strings are not used. The Close button is okay though. Still need to work out why this call is failing. Here's the debug output: flat_review.getZonesFromAccessible (name= role=unknown) flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=9): 'About JDS' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 490 cliprect.y: 393 cliprect.width: 67 cliprect.height: 16 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=1): '.' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 562 cliprect.y: 389 cliprect.width: 4 cliprect.height: 17 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=11): 'About GNOME' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 571 cliprect.y: 393 cliprect.width: 93 cliprect.height: 16 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=1): '.' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 669 cliprect.y: 389 cliprect.width: 4 cliprect.height: 17 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=8): 'Software' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 678 cliprect.y: 393 cliprect.width: 54 cliprect.height: 16 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=1): '.' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 737 cliprect.y: 389 cliprect.width: 4 cliprect.height: 17 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=10): 'Developers' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 746 cliprect.y: 393 cliprect.width: 71 cliprect.height: 16 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=1): '.' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 822 cliprect.y: 389 cliprect.width: 4 cliprect.height: 17 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=7): 'Contact' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 831 cliprect.y: 393 cliprect.width: 49 cliprect.height: 16 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=unknown) flat_review.getZonesFromAccessible (name= role=unknown) flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=28): 'Welcome to the GNOME Desktop' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 498 cliprect.y: 418 cliprect.width: 295 cliprect.height: 23 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=27): 'Version: GNOME 2.14 Desktop' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 416 cliprect.y: 630 cliprect.width: 188 cliprect.height: 16 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=35): 'Distributor: Sun Microsystems, Inc.' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 416 cliprect.y: 650 cliprect.width: 213 cliprect.height: 16 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=20): 'Build Date: 05/15/06' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 416 cliprect.y: 670 cliprect.width: 130 cliprect.height: 16 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=text) looking at text: line at 0 is (start=0 end=58): 'Copyright 2005 Sun Microsystems, Inc. All rights reserved.' visible test: x: 0 y: 0 width: 0 height: 0 cliprect.x: 585 cliprect.y: 560 cliprect.width: 401 cliprect.height: 80 **NOT VISIBLE flat_review.getZonesFromAccessible (name= role=separator) flat_review.getZonesFromAccessible (name=Close role=push button) looking at text: line at 0 is (start=0 end=5): 'Close' visible test: x: 831 y: 705 width: 35 height: 16 cliprect.x: 795 cliprect.y: 697 cliprect.width: 85 cliprect.height: 32 IS VISIBLE.
Will and I found the gnome-about source code in the gnome-desktop module. In file .../gnome-desktop/gnome-about/gnome-about.c there is a routine called href_item_new() that "fakes up" a hypertext item on top of a gnome_canvas_item. It looks like this code isn't correctly implement getRangeExtents() properly. I'll try to isolate this into a small Python script that will replicate the problem, then file a bug against atk/gail.
I've filed bug #359635 against atk/gail for the problem with text.getRangeExtents() in gnome-about and have adjusted the summary of this bug to show that we are currently blocked.
Adjusting priority to normal as there is a command line option equivalent to gnome-about ("--version"), that provides this information.
Removing target milestone from [blocked] bugs. We have little control over them, so we're better off letting priority and severity be our guide for poking the related components.
Moving this even further down to "minor" since there is a workaround of "--version" as described in comment #6.
*** Bug 516379 has been marked as a duplicate of this bug. ***
I just tried using flat review (as well as tabbing) to access the contents of the gnome-about panel in Intrepid (2.24) and OpenSolaris build 99 (2.23.91). We're now doing the right thing. Yea! I also tried running Rich's script attached to bug 359635. We're getting correct widths and heights. Dunno what got fixed where, but fixed is good. :-)