Reading text in a textarea with up and down arrows only reads the word the cursor is on, not the whole line.
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
People
(Reporter: MarcoZ, Assigned: eeejay)
Details
(Keywords: regression)
Attachments
(3 files)
STR:
- Open
data:text/html,<textarea cols="80"></textarea>
. - Type some text, at least two lines, forcing it to wrap.
- Press CMD+Pos1 to go to the top. * Expected: VoiceOver should read the whole line.
- Actual: VoiceOver only reads the word the cursor lands on.
- Press VoiceOver+L to read the whole line.
- Result: The whole line is read, correctly until the point where the browser wrapped the typed text.
- Press DownArrow.
- Expected: VoiceOver should read the whole next line.
- Actual: VoiceOver reads the last word of the previous line instead.
- Press Voiceover+L.
- Result: The whole line is read.
- Press DownArrow again. If this is the last line, the cursor will move to the very end.
- Expected: VoiceOver reads the whole line.
- Actual: The last word of the second line is read.
This is a recent regression I believe. Reporting it here so it gets on the radar, but am actually not able to provide a regression range because I'm still out ill.
Updated•3 years ago
|
Reporter | ||
Comment 1•2 years ago
|
||
Just encountered this again on Mac with current Nightly. Morgan, have you been able to reproduce this, and any leads on why this is happening?
Assignee | ||
Updated•2 years ago
|
Comment 2•2 years ago
|
||
Yes I can reproduce this -- not sure what's going on here. Eitan said he'd look into it :)
Assignee | ||
Comment 3•2 years ago
|
||
It's quirks in how we send events. yay.
Assignee | ||
Comment 4•2 years ago
|
||
So we need to provide events with AXTextSelectionGranularityLine
. Currently, if the movement is one character is length, we send AXTextSelectionGranularityCharacter
, if it is larger we send AXTextSelectionGranularityWord
.
I guess we can continue hacking at this and detect passing a newline boundary to report the right kind of granularity. But it gets tricky because you would need to know that the line boundary was crossed while pressing up and down and not by navigating by word/char.
I think this hack has reached its limit. We really need to take the nsSelectionAmount
provided in nsFrameSelection::MoveCaret
, and use it to notify the nsISelectionListener
with a granularity. We should probably add direction to that if we are already at it :)
Assignee | ||
Comment 5•2 years ago
|
||
Assignee | ||
Comment 6•2 years ago
|
||
Depends on D139745
Assignee | ||
Comment 7•2 years ago
|
||
Depends on D139746
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/94a6b171e91b P1: Add granularity to selection change notification. r=smaug https://hg.mozilla.org/integration/autoland/rev/59e51fcaa1f2 P2: Add granularity to a11y caret move events. r=morgan https://hg.mozilla.org/integration/autoland/rev/2430eeb36caf P3: Add more granularities to AXSelectedTextChanged events. r=morgan
Comment 9•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/94a6b171e91b
https://hg.mozilla.org/mozilla-central/rev/59e51fcaa1f2
https://hg.mozilla.org/mozilla-central/rev/2430eeb36caf
Updated•2 years ago
|
Description
•