[CtW] Support IAccessibleText::scrollSubStringTo
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr102 | --- | unaffected |
| firefox111 | --- | wontfix |
| firefox112 | --- | wontfix |
| firefox113 | --- | fixed |
| firefox114 | --- | fixed |
People
(Reporter: Jamie, Assigned: eeejay)
References
(Regressed 1 open bug)
Details
Attachments
(2 files)
|
48 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-beta+
|
Details | Review |
|
48 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-beta+
|
Details | Review |
From Vispero (JAWS vendor):
We discovered a regression in Nightly related to a scrolling using the IAccessibleText interface. To provide visual tracking of the current location JAWS tells the browser to scroll the virtual cursor location into view and draws a red rectangle around the text being currently spoken. This works nice in Firefox, but it is currently broken in Nightly. JAWS calls IAccessibleText::scrollSubstringTo on the desired element, and the call returns E_NOTIMPL in Nightly.
| Reporter | ||
Comment 1•2 years ago
|
||
I don't think we need to block shipping of CtW on this, but I'd like to get it uplifted into 113 if I can.
| Reporter | ||
Comment 2•2 years ago
|
||
Eitan, i see that Mac uses ScrollSubstringTo as well. However, it seems to always treat the range as HyperText offsets, even though CAchedTextMarkers use leaf offsets, not HyperText offsets. Is this a bug or is there a conversion somewhere I'm missing?
To support ScrollSubstringTo for CtW, we could simply support the ScrollSubstringTo IPDL method on Windows just as we do on Linux and Mac. However, we're going to need to support it for TextLeafRange at some point (if not already for Mac) and i don't think there's anything blocking that, so it probably makes to just go the whole way here.
To do that, we'll need to:
- Add TextLeafPoint::ToDOMPoint, based on HyperTextAccessible::OffsetToDOMPoint.
- Add TextLeafRange::ToDOMRange, based on TextRange::AssignDOMRange. This will involve moving (or temporarily duplicating) a bunch of utility methods as well.
- Add TextLeafRange::ScrollIntoView, based on TextRange::ScrollIntoView.
- Teach TextLeafRange how to construct from serialised TextRangeData.
- Add PDocAccessible::ScrollTextLeafRangeIntoView. Make TextLeafRange::ScrollIntoView use that for RemoteAccessible.
- Add HyperTextAccessibleBase::ScrollSubstringTo, calling TextLeafRange::ScrollIntoView.
- Tweak the various platforms to use HyperTextAccessibleBase or TextLeafRange.
| Assignee | ||
Comment 3•2 years ago
|
||
In mac this works because the gecko accessible in mozTextAccessible is a hypertext and the offsets given are relative to it (with simple textareas and flat contenteditables).
| Assignee | ||
Comment 4•2 years ago
|
||
I'll take a look at this.
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Comment 5•2 years ago
|
||
Generalized code we already had for getting DOM points for DOM
selection.
| Assignee | ||
Comment 6•2 years ago
|
||
Use it when caching is enabled.
Depends on D174976
Comment 8•2 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/e17169847f88
https://hg.mozilla.org/mozilla-central/rev/2d1fdd7362d9
| Reporter | ||
Comment 9•2 years ago
|
||
(In reply to Eitan Isaacson [:eeejay] from comment #3)
In mac this works because the gecko accessible in mozTextAccessible is a hypertext and the offsets given are relative to it (with simple textareas and flat contenteditables).
What if we're dealing with a compound contenteditable? Do we need an additional fix here for Mac to deal with those?
| Reporter | ||
Comment 10•2 years ago
|
||
Comment on attachment 9327580 [details]
Bug 1826264 - P1: Implement TextLeafPoint::ToDOMPoint. r?Jamie
Beta/Release Uplift Approval Request
- User impact if declined: Broken visual scrolling with JAWS screen reader.
- Is this code covered by automated tests?: Yes
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): Only impacts scrolling of text for a11y. Covered by both new and existing automated tests.
- String changes made/needed:
- Is Android affected?: No
| Reporter | ||
Updated•2 years ago
|
Comment 11•2 years ago
|
||
Comment on attachment 9327580 [details]
Bug 1826264 - P1: Implement TextLeafPoint::ToDOMPoint. r?Jamie
Approved for 113.0b5.
Updated•2 years ago
|
Comment 12•2 years ago
|
||
| bugherder uplift | ||
https://hg.mozilla.org/releases/mozilla-beta/rev/885a803053ef
https://hg.mozilla.org/releases/mozilla-beta/rev/e27961a87df5
Updated•2 years ago
|
| Assignee | ||
Updated•1 year ago
|
Description
•