- SelectedTextChanged posted only for focused element: prevents completion buffer from triggering double-speech (old-candidate + new-candidate) - AnnouncementRequested for char navigation restored (evil block cursor fix): posted AFTER SelectedTextChanged so VoiceOver cancels its own reading and uses our explicit char-at-point announcement - Priority: Medium (was High)