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