1. setAccessibilitySelectedTextRange: — enables bidirectional cursor sync. Converts AX index to buffer charpos, moves point via SET_PT_BOTH. VoiceOver can now place cursor in text interaction mode. 2. setAccessibilityFocused: — handles VO+Shift+Down interaction entry. Ensures NS window focus, posts SelectedTextChanged so VoiceOver reads current line. 3. Completions announcement — when point changes in a non-focused buffer (e.g. *Completions* during Tab), posts AnnouncementRequestedNotification with the current line text. VoiceOver speaks the selected completion while minibuffer keeps focus.
38 KiB
38 KiB