Add the notification engine that posts AX events after redisplay, and
implement the mode-line accessibility element.
* src/nsterm.h (EmacsAccessibilityBuffer): Add cachedCharsModiff
property; declare cursor and completion notification methods.
* src/nsterm.m (ns_ax_mode_line_text): New static function; extracts
mode-line text from glyph matrix.
(ns_ax_completion_string_from_prop): New static function.
(ns_ax_find_completion_overlay_range): New static function.
(ns_ax_event_is_line_nav_key): New static function.
(ns_ax_completion_text_for_span): New static function.
(EmacsAccessibilityBuffer Notifications): Category implementing
postTextChangedNotification, postFocusedCursorNotification,
postCompletionAnnouncementForBuffer, and
postAccessibilityNotificationsForFrame.
(postAccessibilityNotificationsForFrame:): Detect buffer switch and
reset cached state with explicit VoiceOver notifications, so that
split-window scenarios do not leave VoiceOver silent.
(EmacsAccessibilityModeLine): Full implementation.
(syms_of_nsterm): Add DEFSYMs for navigation and completion symbols.
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Copyright (C) 2001-2026 Free Software Foundation, Inc.
See the end of the file for license conditions.
This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs is copied elsewhere.
See the files ../README and then ../INSTALL for installation instructions.
The file 'Makefile.in' is used as a template by the script
'../configure' to produce 'Makefile'. This is the file which actually
controls the compilation of Emacs C source files. All of this should
work transparently; you should only need to change to the parent
directory, run './configure', and then run 'make'.
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.