Closed Bug 617544 Opened 11 years ago Closed 5 years ago

Provide ability to determine the node to which the browser last jumped in a document


(Core :: Disability Access APIs, defect)

Not set





(Reporter: Jamie, Unassigned)


(Blocks 1 open bug)


(Keywords: access, Whiteboard: [auto-closed:inactivity])

When a user activates a same page link (e.g. <a href="#foo">), Gecko fires a scrollingStart event for the target object. However, there is no way to determine the object to which the browser last jumped if the AT misses this event. This can happen if the AT isn't running, Firefox or the tab is in the background or the AT hasn't yet started listening for events on the document (e.g. a buffer hasn't yet been rendered) when the event is fired.

This is particularly annoying for NVDA users accessing URLs with a #anchor suffix directly because NVDA always lands the user at the top of the document.

There are a few possible solutions:
1. The cleanest is probably to implement a relation on the document specifying the last object to which the browser jumped; e.g. lastJump, lastScroll, currentPos or similar. (I'm not sure of a good name yet.) This either requires:
1.1. a new IA2 relation; or
1.2. another custom accNavigate constant. The latter is probably faster.
2. We can inspect the URL to grab the #anchor suffix. We then retrieve the object identified by this anchor name. Imo, this is pretty hacky, but it would work. We can already do this for anchors which use the @id attribute (e.g. <div id="anchor"), as there is an "id" object attribute providing the id. However, we can't do this for anchors which use a@name (e.g. <a name="anchor">) because the @name attribute isn't exposed to accessibility APIs. In order to use this solution, we would need this to be exposed.
AUTO-CLOSED. This bug untouched for over 2000 days. Please reopen if you can confirm the bug and help it progress.
Closed: 5 years ago
Resolution: --- → INCOMPLETE
Whiteboard: [auto-closed:inactivity]
You need to log in before you can comment on or make changes to this bug.