Closed Bug 1409928 Opened 4 years ago Closed 4 years ago

[e10s a11y] Use handler cache for accessibles retrieved from IAccessibleHypertext

Categories

(Core :: Disability Access APIs, enhancement)

Unspecified
Windows
enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox58 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

References

Details

Attachments

(1 file)

NVDA (and possibly other AT products) primarily walks the tree using IAccessibleText and retrieves embedded objects using IAccessibleHypertext, rather than using AccessibleChildren. Unfortunately, as noted in bug 1363595 comment 21, accessibles retrieved by using IAccessibleHypertext::hyperlink do not use the handler, so caching isn't used. This effectively means that for clients that use this technique, the cache is only used for the top level document or, in the case of handling updates, the root of the subtree being updated.

This occurs because IAccessibleHypertext::hyperlink returns an IAccessibleHyperlink. The handler provider and handler do not know about this interface, and thus the handler isn't used. The client then does a QI to IAccessible2, but because they're doing this on a standard proxy, they still don't get the handler.

We need to teach the handler provider and handler about IAccessibleHyperlink.

Note that the handler is already used correctly for accessibles retrieved via AccessibleChildren. From what I can see, JAWS does not use IAccessibleHypertext, so this probably won't have any benefit for JAWS.
Depends on: 1363595
Comment on attachment 8919980 [details]
Bug 1409928: Use e10s a11y handler cache  for accessibles retrieved via IAccessibleHypertext.

https://reviewboard.mozilla.org/r/190924/#review198742
Attachment #8919980 - Flags: review?(aklotz) → review+
Keywords: checkin-needed
We need to hold off on landing this until the dependent bug merges to central, so I'm going to clear this for now and then I'll land it once that happens.
Keywords: checkin-needed
Keywords: checkin-needed
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.

hg error in cmd: hg rebase -s 22626b0eb821 -d 681b41afb3ee: rebasing 430439:22626b0eb821 "Bug 1409928: Use e10s a11y handler cache  for accessibles retrieved via IAccessibleHypertext. r=aklotz" (tip)
merging accessible/ipc/win/HandlerProvider.cpp
merging accessible/ipc/win/handler/AccessibleHandler.cpp
warning: conflicts while merging accessible/ipc/win/HandlerProvider.cpp! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.

hg error in cmd: hg rebase -s 22626b0eb821 -d 681b41afb3ee: rebasing 430439:22626b0eb821 "Bug 1409928: Use e10s a11y handler cache  for accessibles retrieved via IAccessibleHypertext. r=aklotz" (tip)
merging accessible/ipc/win/HandlerProvider.cpp
merging accessible/ipc/win/handler/AccessibleHandler.cpp
warning: conflicts while merging accessible/ipc/win/HandlerProvider.cpp! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
Rebased on top of the submission changes to the dependent patch.
Keywords: checkin-needed
Pushed by aklotz@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4fdd6f569847
Use e10s a11y handler cache  for accessibles retrieved via IAccessibleHypertext. r=aklotz
https://hg.mozilla.org/mozilla-central/rev/4fdd6f569847
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
You need to log in before you can comment on or make changes to this bug.