v14: fix VoiceOver virtual tree plumbing (based on Chromium analysis)
Root cause: VoiceOver ignored our virtual elements because they were missing critical hierarchy metadata. Chromium's AXPlatformNodeCocoa (also an NSAccessibilityElement subclass) works because it provides all of these. Fixes based on VS Code/Chromium analysis: 1. Add accessibilityWindow + accessibilityTopLevelUIElement on base class (EmacsAccessibilityElement) — VoiceOver needs these to associate notifications with a window context 2. Add accessibilityParent on base class — unbroken chain to EmacsView 3. Add isAccessibilityFocused on EmacsAccessibilityBuffer — returns YES for active buffer 4. Post FocusedUIElementChangedNotification in windowDidBecomeKey — tells VoiceOver to start tracking the virtual element on app focus 5. Remove duplicate isAccessibilityFocused, deduplicate accessibilityParent 6. Keep all v13.3 features: Zoom, typing echo, full text protocol
This commit is contained in: