This commit is contained in:
Martin Sukany
2026-02-28 14:33:41 +01:00

View File

@@ -1,4 +1,4 @@
From 8d1b276ce29e5c4cc193ce4207a2b929a550c8ce Mon Sep 17 00:00:00 2001
From d9a3c249cc55792e7cfbe12fa8b69861a6bf1f96 Mon Sep 17 00:00:00 2001
From: Martin Sukany <martin@sukany.cz>
Date: Sat, 28 Feb 2026 14:16:29 +0100
Subject: [PATCH] ns: include overlay display strings in accessibility text
@@ -34,17 +34,17 @@ Check BUF_OVERLAY_MODIFF; announce selected candidate text.
Tested on macOS 14 with VoiceOver and icomplete-vertical-mode.
---
src/nsterm.m | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 178 insertions(+)
src/nsterm.m | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 178 insertions(+), 1 deletion(-)
diff --git a/src/nsterm.m b/src/nsterm.m
index 1780194..2a50a53 100644
index 1780194..c7bba5b 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -6921,6 +6921,92 @@ ns_create_font_panel_buttons (id target, SEL select, SEL cancel_action)
with the count. Caller must free *OUT_RUNS with xfree(). */
@@ -6915,11 +6915,96 @@ ns_create_font_panel_buttons (id target, SEL select, SEL cancel_action)
are truncated for accessibility purposes. */
#define NS_AX_TEXT_CAP 100000
static NSString *
+/* Extract the currently selected candidate text from overlay display
+ strings in window W. Completion frameworks (Vertico, Ivy, Icomplete)
+ highlight the current candidate by applying a face property to a
@@ -131,10 +131,15 @@ index 1780194..2a50a53 100644
+}
+
+
/* Build accessibility text for window W, skipping invisible text.
Populates *OUT_START with the buffer start charpos.
Populates *OUT_RUNS with an array of visible runs and *OUT_NRUNS
with the count. Caller must free *OUT_RUNS with xfree(). */
-
static NSString *
ns_ax_buffer_text (struct window *w, ptrdiff_t *out_start,
ns_ax_visible_run **out_runs, NSUInteger *out_nruns)
{
@@ -7021,6 +7107,68 @@ ns_ax_buffer_text (struct window *w, ptrdiff_t *out_start,
@@ -7021,6 +7106,68 @@ ns_ax_buffer_text (struct window *w, ptrdiff_t *out_start,
pos = run_end;
}
@@ -203,7 +208,7 @@ index 1780194..2a50a53 100644
unbind_to (count, Qnil);
*out_runs = runs;
@@ -8795,6 +8943,36 @@ ns_ax_completion_text_for_span (EmacsAccessibilityBuffer *elem,
@@ -8795,6 +8942,36 @@ ns_ax_completion_text_for_span (EmacsAccessibilityBuffer *elem,
[self postTextChangedNotification:point];
}