patches: address all maintainer review issues
- Issue 1: Add explicit ApplicationServices import for UAZoomEnabled/ UAZoomChangeFocus (was implicit via Carbon.h, now explicit) - Issue 2: Rename FOR_EACH_FRAME variable 'frames' -> 'frame' (plural was misleading; matches Emacs convention) - Issue 3: Move unblock_input before ObjC calls in postCompletionAnnouncementForBuffer: to avoid holding block_input during @synchronized operations - Issue 4: Fix DEFVAR_BOOL doc and Texinfo: initial value is nil, not t; auto-detection sets it at startup - Issue 5: Replace magic 10000 with NS_AX_MAX_COMPLETION_BUFFER_CHARS constant with explanatory comment - Issue 6: Add comment to lineStartOffsets loop explaining it is gated on BUF_CHARS_MODIFF and never runs on the hot path - Issue 8: Rewrite all 9 commit messages to GNU ChangeLog format with '* file (symbol): description' entries - Issue 9: Break 81-char @interface line in nsterm.h - Issue 10: Add WINDOWP/BUFFERP guards before dereferencing cf->selected_window and cw->contents in ns_zoom_find_child_frame_candidate - Issue 11: Fix @pxref -> @xref at sentence start in macos.texi
This commit is contained in:
@@ -1,17 +1,22 @@
|
||||
From b40de953e11fce0df19bfe7c77b2b009246228ac Mon Sep 17 00:00:00 2001
|
||||
From 4b77c5a182863322da1d42b4f4f2ba5a2ce7179d Mon Sep 17 00:00:00 2001
|
||||
From: Martin Sukany <martin@sukany.cz>
|
||||
Date: Sat, 28 Feb 2026 12:58:11 +0100
|
||||
Subject: [PATCH 6/8] doc: add VoiceOver accessibility section to macOS
|
||||
appendix
|
||||
|
||||
* doc/emacs/macos.texi (VoiceOver Accessibility): New node. Document
|
||||
screen reader usage, keyboard navigation, completion announcements,
|
||||
* doc/emacs/macos.texi (VoiceOver Accessibility): New node between
|
||||
'Mac / GNUstep Events' and 'GNUstep Support'. Document screen reader
|
||||
usage, keyboard navigation, completion announcements, ns-accessibility-
|
||||
enabled, and known limitations. Use @xref for cross-reference at
|
||||
sentence start. Correct description of ns-accessibility-enabled
|
||||
default: initial value is nil, set automatically at startup.
|
||||
---
|
||||
doc/emacs/macos.texi | 75 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 75 insertions(+)
|
||||
doc/emacs/macos.texi | 76 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
src/nsterm.m | 10 ++++--
|
||||
2 files changed, 83 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
|
||||
index 6bd334f..4825cf9 100644
|
||||
index 6bd334f..6514dfc 100644
|
||||
--- a/doc/emacs/macos.texi
|
||||
+++ b/doc/emacs/macos.texi
|
||||
@@ -36,6 +36,7 @@ Support}), but we hope to improve it in the future.
|
||||
@@ -22,7 +27,7 @@ index 6bd334f..4825cf9 100644
|
||||
* GNUstep Support:: Details on status of GNUstep support.
|
||||
@end menu
|
||||
|
||||
@@ -272,6 +273,80 @@ and return the result as a string. You can also use the Lisp function
|
||||
@@ -272,6 +273,81 @@ and return the result as a string. You can also use the Lisp function
|
||||
services and receive the results back. Note that you may need to
|
||||
restart Emacs to access newly-available services.
|
||||
|
||||
@@ -70,8 +75,9 @@ index 6bd334f..4825cf9 100644
|
||||
+@vindex ns-accessibility-enabled
|
||||
+ To disable the accessibility interface entirely (for instance, to
|
||||
+eliminate overhead on systems where assistive technology is not in
|
||||
+use), set @code{ns-accessibility-enabled} to @code{nil}. The default
|
||||
+is @code{t}.
|
||||
+use), set @code{ns-accessibility-enabled} to @code{nil}. Emacs
|
||||
+detects the presence of assistive technology at startup and sets this
|
||||
+variable automatically; the initial value is @code{nil}.
|
||||
+
|
||||
+@subheading Known Limitations
|
||||
+
|
||||
@@ -94,8 +100,8 @@ index 6bd334f..4825cf9 100644
|
||||
+@end itemize
|
||||
+
|
||||
+ This support is available only on the Cocoa build; GNUstep has a
|
||||
+different accessibility model and is not yet supported
|
||||
+(@pxref{GNUstep Support}). Evil-mode block cursors are handled
|
||||
+different accessibility model and is not yet supported;
|
||||
+@xref{GNUstep Support}. Evil-mode block cursors are handled
|
||||
+correctly: character navigation announces the character at the cursor
|
||||
+position, not the character before it.
|
||||
+
|
||||
@@ -103,6 +109,27 @@ index 6bd334f..4825cf9 100644
|
||||
@node GNUstep Support
|
||||
@section GNUstep Support
|
||||
|
||||
diff --git a/src/nsterm.m b/src/nsterm.m
|
||||
index d9b8ecd..7d48e6b 100644
|
||||
--- a/src/nsterm.m
|
||||
+++ b/src/nsterm.m
|
||||
@@ -14622,9 +14622,13 @@ Nil means use fullscreen the old (< 10.7) way. The old way works better with
|
||||
|
||||
DEFVAR_BOOL ("ns-accessibility-enabled", ns_accessibility_enabled,
|
||||
doc: /* Non-nil enables Zoom cursor tracking and VoiceOver support.
|
||||
-Emacs sets this automatically at startup when macOS Zoom is active or
|
||||
-any assistive technology (VoiceOver, Switch Control, etc.) is connected,
|
||||
-and updates it whenever that state changes. You can override manually:
|
||||
+Emacs detects at startup whether macOS Zoom is active or an assistive
|
||||
+technology (VoiceOver, Switch Control, etc.) is connected, and sets
|
||||
+this variable accordingly. It updates automatically when accessibility
|
||||
+state changes. The initial value is nil; it becomes non-nil only when
|
||||
+an AT is detected.
|
||||
+
|
||||
+You can override the auto-detection:
|
||||
|
||||
(setq ns-accessibility-enabled t) ; always on
|
||||
(setq ns-accessibility-enabled nil) ; always off
|
||||
--
|
||||
2.43.0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user