patches: fix ObjC category declaration warnings

Move postAccessibilityNotificationsForFrame: declaration from
primary @interface to (Notifications) category.
Add invalidateInteractiveSpans to (InteractiveSpans) category.
Fixes 3 compiler warnings (-Wobjc-method-access,
-Wincomplete-implementation, -Wobjc-protocol-method-implementation).
This commit is contained in:
2026-02-28 12:58:18 +01:00
parent 6da6f7c90f
commit 9130268ff0
6 changed files with 44 additions and 50 deletions

View File

@@ -1,6 +1,6 @@
From 2de08fd21b94d2eec8271b162a6bbfa94576356c Mon Sep 17 00:00:00 2001
From 72a0b8bad2d200cf093d9e0c60d937032784bd74 Mon Sep 17 00:00:00 2001
From: Martin Sukany <martin@sukany.cz>
Date: Sat, 28 Feb 2026 10:35:35 +0100
Date: Sat, 28 Feb 2026 12:58:11 +0100
Subject: [PATCH 5/6] ns: integrate accessibility with EmacsView and redisplay
Wire the accessibility infrastructure into EmacsView and the
@@ -11,25 +11,18 @@ redisplay cycle. After this patch, VoiceOver and Zoom are active.
(EmacsView dealloc): Release accessibilityElements.
(EmacsView windowDidBecomeKey): Post accessibility focus notification.
(ns_ax_collect_windows): New function.
(EmacsView rebuildAccessibilityTree): New method.
(EmacsView invalidateAccessibilityTree): New method.
(EmacsView accessibilityChildren): New method.
(EmacsView accessibilityFocusedUIElement): New method.
(EmacsView postAccessibilityUpdates): New method.
(EmacsView accessibilityBoundsForRange:): New method.
(EmacsView accessibilityParameterizedAttributeNames): New method.
(EmacsView accessibilityAttributeValue:forParameter:): New method.
(EmacsView rebuildAccessibilityTree, invalidateAccessibilityTree)
(accessibilityChildren, accessibilityFocusedUIElement)
(postAccessibilityUpdates, accessibilityBoundsForRange:)
(accessibilityParameterizedAttributeNames)
(accessibilityAttributeValue:forParameter:): New methods.
* etc/NEWS: Document VoiceOver accessibility support.
Tested on macOS 14 with VoiceOver and Zoom. End-to-end: buffer
navigation, cursor tracking, window switching, completions, evil-mode
block cursor, org-mode folded headings, indirect buffers.
Known limitations:
- Bidi: accessibilityRangeForPosition assumes LTR glyph layout.
- Mode-line icons: image/stretch glyphs not extracted (TODO).
- Text cap: buffers exceeding NS_AX_TEXT_CAP (100K) truncated.
- Non-ASCII: tested with CJK (UTF-16 surrogates) and combining chars.
Known limitations documented in patch 6 Texinfo node.
---
etc/NEWS | 13 ++
src/nsterm.m | 398 ++++++++++++++++++++++++++++++++++++++++++++++++++-