Windows Narrator draws bounds one character too far into next unit
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
People
(Reporter: nlapre, Assigned: Jamie)
References
(Blocks 3 open bugs)
Details
(Whiteboard: [uiaShipBlocker])
Attachments
(1 file)
STR:
- Turn on UIA support in about:config; set
accessibility.uia.enableto true. - Launch Windows Narrator
- Open test page
data:text/html,abc def ghi - Navigate by character or word and observe the bounds that Narrator draws on-screen
Expected: The bounds will tightly bound the spoken range, as it does in Edge.
Actual: The bounds tightly bound the spoken range on the left hand side (assuming LTR text), but extend one character/word/etc. past on the right hand side.
The utterances are not incorrect, they just don't match the bounded text. I suspect that the "too far to the right" behavior occurs due to some particularity in our implementation of UIA TextUnits combined with how we render bounds to UIA, since it's one character or one word too far (corresponding to TextUnits), based on the way you navigate with Narrator.
| Reporter | ||
Comment 1•1 year ago
|
||
In certain conditions, WalkLineRects uses the incorrect endpoint for
calculating rects for a given TextLeafRange. This revision fixes the problem by
properly walking the endpoint back by one character, if possible.
Comment 3•1 year ago
|
||
Backed out for causing mochitest failures @ accessible/tests/browser/bounds/browser_test_zoom_text.js & browser_caching_text_bounds.js
Backout link: https://hg.mozilla.org/integration/autoland/rev/25362b7d21e2dff3aecbc7c67e993acf7a61ed0f
| Reporter | ||
Comment 4•1 year ago
|
||
Seems I've largely broken getting the bounds of non-LTR text here. Looking into a fix.
| Reporter | ||
Comment 5•1 year ago
|
||
The specific test that this change breaks is this one. There are others also broken, but I think they're fixed by the patch for Bug 1947331. :Jamie intends to pick up this work once I'm gone.
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Comment 7•1 year ago
|
||
I'm merging bug 1947331 into this, as the changes in these two bugs are somewhat intertwined and I need to make significant changes to how these bounds functions behave. STR from that bug:
- Turn on UIA support in about:config; set
accessibility.uia.enabletotrue.- Launch Windows Narrator
- Open site
data:text/html,This is the first sentence<br/>This is the second sentence, which is longer than the first- Navigate by word (Narrator + l) through the first sentence until you hit the last word, "sentence."
- Observe the bounds wrapping the word.
Expected: The drawn bounds wrap the word "sentence" exactly, as they do in Edge.
Actual: The drawn bounds don't bound the word "sentence." They seem to extend from the top of the first line to the bottom of the second line vertically, but don't properly bound the word "sentence" horizontally on either side of the word.
Updated•1 year ago
|
Comment 9•1 year ago
|
||
| bugherder | ||
Comment 10•1 year ago
|
||
The patch landed in nightly and beta is affected.
:Jamie, is this bug important enough to require an uplift?
- If yes, please nominate the patch for beta approval.
- If no, please set
status-firefox137towontfix.
For more information, please visit BugBot documentation.
| Assignee | ||
Updated•1 year ago
|
Description
•