Closed Bug 379747 Opened 17 years ago Closed 17 years ago

Accessible Hyperlink getURI() failing to return useful information

Categories

(Core :: Disability Access APIs, defect)

x86
Linux
defect
Not set
normal

Tracking

()

VERIFIED INVALID

People

(Reporter: scott, Assigned: ginnchen+exoracle)

References

Details

(Keywords: access)

Attachments

(1 file)

IHyperlink.getURI() is failing to return the URI string for a link. Assume the target for a link is http://mozilla.org. I would expect getURI() to return 'http://mozilla.org', however, it is returning a null string. What does work is first adapting the parent of the link to the hypertext interface and then use getLink(n) to return the hyperlink interface of the link in question. This returned hyperlink interface can then be used to retrieve 'http://mozilla.org' using getURI().
Blocks: lsr
This must have something to do with the HyperLinkImpl solution.
Assignee: aaronleventhal → ginn.chen
Keywords: access
Blocks: 376941
No longer blocks: lsr
We might consider using an object attribute called "uri" To be honest I don't understand how HyperlinkImpl works. We still have open bugs for it: bug 366000 and bug 197189. Not sure if they're still issues or not.
Summary: getURI() failing to return useful information → Accessible Hyperlink getURI() failing to return useful information
Ginn, any idea what the problem is on this one?
I'm working on bug 366000, I'll look at this one and bug 197189 after.
Scott, do we a test script to for it? Also please specify the meaning of "null string" ? You mean null pointer or empty string? Did you get any CORBA exception when calling getURI? Thanks!
Ginn, I use Accerciser for all accessibility related testing http://live.gnome.org/Accerciser . I am currently receiving an empty string when using the hyperlink interface directly on the link. No CORBA exceptions are received.
Scott, I dropped down the "Hyperlink" interface in "Interface Viewer" of Accerciser. and I see nothing there. It could be a bug of at-spi or Accerciser. I need to look at their code.
I hacked at-poke and it works for me. I queried "IDL:Acessibility/Hyperlink:1.0" and called AccessibileHyperlink_getURI(hyperlink, 0) I got the "uri" with no problem. I checked accerciser, I didn't find anywhere it is using this interface. In accerciser/plugins/interface_view.py, class _SectionHyperlink is empty. Close this bug for now. Let me know if you still have problems with this interface and API.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → WORKSFORME
You can see the problem using accerciser's IPython console even if accerciser has not implemented IHyperlink in the Interface view (I believe it is implemented but provides no data because of this bug). The following is the output from a session with accerciser IPython console. In [1]: print acc [ | Home] In [2]: h = acc.queryHyperlink() In [3]: print h.getURI(0) In [4]: ht = acc.parent.queryHypertext() In [5]: h = ht.getLink(0) In [6]: print h.getURI(0) file:///home/shaeger/ibm/439476lsr/lsr/test/minefield/ As you can see from the above output, getURI() works when you get the hyperlink interface using IHypertext on the parent (In 4-6). However, getURI() does not work when you use it directly on the link (In 3).
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Scott, can you check in at-poke? Maybe this is a problem in pyspi?
Ginn, ignore my last comment -- comment 9.
at-poke must be using Hypertext.getLink(N) which returns an accessible with the hyperlink interface. What we're reporting is if you do getChildAtIndex(N) you get the same accessible except this one says it doesn't implement hyperlink.
Scott, I followed your steps in c#9, I got uri with no problem in step [3]. I'm using Ubuntu 7.04. I think I didn't build my own atk or at-spi. What's your platform? And I said I hacked at-poke, I meant I changed the source code to use Hyperlink.getURI(0). It also works for me.
Status: REOPENED → RESOLVED
Closed: 17 years ago17 years ago
Resolution: --- → WORKSFORME
This is still a problem, now seen in Orca, LSR and Accerciser. Just to repeat the problem, assuming 'link' is an accessible object, link.getURI(0) returns the an empty string, while the following returns the URI. ihyperlink = link.parent.getLink(0) ihyperlink.getURI(0)
Sounds like it needs to reopened then.
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Scott, I met this problem once, but I couldn't reproduce it with trunk build now. Did you reproduce it with all webpages or just some pages? Can you attach your testcase? And what's your platform? Thanks!
Ginn, I see this on every link I have tested. I will attach a test page that I am absolutely sure has the problem. I am running Linux on Fedora Core 6.
Scott, I reproduced your problem with FC6. But I couldn't reproduce it on Ubuntu 7.04. I'll give a try on F-7 tomorrow, before I look into it. Thanks!
I believe it's a bug of atk 1.12.2. It got fixed in atk 1.12.4. http://svn.gnome.org/viewcvs/atk/tags/ATK_1_12_4/atk/atkhyperlinkimpl.c?r1=1074&r2=1092 Upgrade your atk lib or upgrade your whole system.
Status: REOPENED → RESOLVED
Closed: 17 years ago17 years ago
Resolution: --- → INVALID
I'm getting problems on fully patched Ubuntu 7.04 in accerciser and pyatspi direct Synaptik shows libatk 1.18.0-oubuntu1 All form controls have an invalid Hyperlink interface with nLinks = 1 and URI(0) = '' a valid link has isValid() = false
This is now working for me with Accerciser. I have recently installed Ubuntu7.10 and am fully up to date with Accerciser, pyatspi and the at-spi-registry.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: