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> From: Martin Sukany <martin@sukany.cz>
Date: Sat, 28 Feb 2026 14:16:29 +0100 Date: Sat, 28 Feb 2026 14:16:29 +0100
Subject: [PATCH] ns: include overlay display strings in accessibility text 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. Tested on macOS 14 with VoiceOver and icomplete-vertical-mode.
--- ---
src/nsterm.m | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/nsterm.m | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 178 insertions(+) 1 file changed, 178 insertions(+), 1 deletion(-)
diff --git a/src/nsterm.m b/src/nsterm.m diff --git a/src/nsterm.m b/src/nsterm.m
index 1780194..2a50a53 100644 index 1780194..c7bba5b 100644
--- a/src/nsterm.m --- a/src/nsterm.m
+++ b/src/nsterm.m +++ b/src/nsterm.m
@@ -6921,6 +6921,92 @@ ns_create_font_panel_buttons (id target, SEL select, SEL cancel_action) @@ -6915,11 +6915,96 @@ ns_create_font_panel_buttons (id target, SEL select, SEL cancel_action)
with the count. Caller must free *OUT_RUNS with xfree(). */ are truncated for accessibility purposes. */
#define NS_AX_TEXT_CAP 100000
static NSString *
+/* Extract the currently selected candidate text from overlay display +/* Extract the currently selected candidate text from overlay display
+ strings in window W. Completion frameworks (Vertico, Ivy, Icomplete) + strings in window W. Completion frameworks (Vertico, Ivy, Icomplete)
+ highlight the current candidate by applying a face property to a + 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_buffer_text (struct window *w, ptrdiff_t *out_start,
ns_ax_visible_run **out_runs, NSUInteger *out_nruns) ns_ax_visible_run **out_runs, NSUInteger *out_nruns)
{ @@ -7021,6 +7106,68 @@ ns_ax_buffer_text (struct window *w, ptrdiff_t *out_start,
@@ -7021,6 +7107,68 @@ ns_ax_buffer_text (struct window *w, ptrdiff_t *out_start,
pos = run_end; pos = run_end;
} }
@@ -203,7 +208,7 @@ index 1780194..2a50a53 100644
unbind_to (count, Qnil); unbind_to (count, Qnil);
*out_runs = runs; *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]; [self postTextChangedNotification:point];
} }