SelectedTextChanged → only for selection changes (mark active) AnnouncementRequested → only for cursor moves (char/line) Never both for the same event. Fixes double-speech globally.
SelectedTextChanged → only for selection changes (mark active) AnnouncementRequested → only for cursor moves (char/line) Never both for the same event. Fixes double-speech globally.