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.enable
to 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•6 months 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•6 months 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•6 months ago
|
||
Seems I've largely broken getting the bounds of non-LTR text here. Looking into a fix.
Reporter | ||
Comment 5•5 months 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•5 months ago
|
Assignee | ||
Updated•5 months ago
|
Assignee | ||
Comment 7•5 months 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.enable
totrue
.- 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•5 months ago
|
Comment 9•5 months ago
|
||
bugherder |
Comment 10•5 months 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-firefox137
towontfix
.
For more information, please visit BugBot documentation.
Assignee | ||
Updated•5 months ago
|
Description
•