-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Open
Feature
Copy link
Labels
TPAC2025Topics for discussion at TPAC 2025Topics for discussion at TPAC 2025
Description
Problem: On Android-Chrome there's no way to capture initial composition target range (event.getTargetRanges()) when using dictation. There may be other situations like this.
Only compositionstart and compositionend are fired, no beforeinput, which I would need to determine selection (event.getTargetRanges) right before the composition started.
Reproduce:
- On a Samsung-Android phone, set cursor inside a word
- activate dictation (word gets underlined → this is the selection I'm after)
- stop dictation immediately (before making any voice inputs)
IMG_4350.mov
Observations:
- as soon as dictation is enabled a
compositionstartevent is fired (now waiting for voice inputs) - if there are no voice inputs and the dictation is cancelled by the user, still a
compositionendevent is fired. Assuming that at the beginning the cursor was inside the word "hello"event.datawill have"hello"
Problem:
- at
compositionendthere's no way for me to set the selection to what should be replaced (the word that gets underlined initially) - in my editor this means i have to assume a collapsed selection (the cursor before dictation was enabled), which will insert the word from which the composition started again at the current cursor position.
Solution ideas:
- Expose
event.getTargetRangesin compositionstart event. Then i can capture the initial range that should be replaced (the word that has been underlined) - Change implementation so
event.datais""when nothing has been dictated - Only fire
compositionstartevent when something actually has been dictated.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
TPAC2025Topics for discussion at TPAC 2025Topics for discussion at TPAC 2025