Files
emacs-doom/patches/TESTING.txt
Daneel aa0388d485 patches: fix all non-ASCII, PATCH numbering, block_input order, pkg names
- All 9 patches: convert em-dash, arrow, ellipsis, mu to ASCII equivalents
  (required for strict git am on Linux; GNU coding standards)
- 0000: Subject [PATCH 0/8] -> [PATCH] (standalone Zoom series)
- 0001: fix block_input() ordering: call block_input before
  record_unwind_protect_void(unblock_input) per standard pattern
- 0001/0005: shorten decorator separator comment lines to <80 chars
- 0007: genericize overlay completion framework name in commit message
- 0008: genericize child-frame completion framework name in commit message
- README.txt: fix stale 'default t' to 'default nil' with auto-detection note
- TESTING.txt: fix stale 'defaults to t' to 'defaults to nil'
2026-03-03 13:12:25 +01:00

146 lines
5.3 KiB
Plaintext

VoiceOver Accessibility Patch Series — Testing Evidence
=======================================================
Tester: Martin Sukany
Date: 2026-02-28
Environment
-----------
Host: CM2D4G-A9635005 (macOS 14)
Base: emacs master (upstream HEAD at time of test)
PATCH A: ZOOM (0000)
=====================
1. Patch Application
--------------------
PASS — Standalone Zoom patch applies cleanly via git-am.
No conflicts, no warnings.
2. Build
--------
PASS — Full NS (Cocoa) build completed successfully.
No warnings related to Zoom code.
3. Zoom Cursor Tracking
------------------------
PASS — UAZoomChangeFocus integration:
- Typing in buffer: Zoom tracks cursor OK
- M-x: Zoom moves to minibuffer OK
- C-x 2, C-x o cycling: Zoom follows across split windows OK
- C-x 2, C-x o, C-p: Zoom follows cursor up after switch OK
(ns_update_end fallback ensures tracking)
4. No-Zoom Overhead
--------------------
PASS — UAZoomEnabled() returns false when Zoom is off.
Single function call overhead per redisplay cycle (negligible).
PATCH B: VOICEOVER (0001-0008)
===============================
1. Patch Application
--------------------
PASS — All 8 patches applied cleanly via git-am:
0001 ns: add accessibility base classes and text extraction
0002 ns: implement buffer accessibility element (core protocol)
0003 ns: add buffer notification dispatch and mode-line element
0004 ns: add interactive span elements for Tab navigation
0005 ns: integrate accessibility with EmacsView and redisplay
0006 doc: add VoiceOver accessibility section to macOS appendix
0007 ns: announce overlay completion candidates for VoiceOver
0008 ns: announce child frame completion candidates for VoiceOver
No conflicts, no warnings.
2. Build
--------
PASS — Full NS (Cocoa) build completed successfully:
./autogen.sh OK
./configure --with-ns OK
make -j12 OK
make install OK
No warnings related to accessibility code.
3. Basic Launch
---------------
PASS — emacs -Q starts without errors or warnings.
4. VoiceOver — Basic Navigation
--------------------------------
PASS — VoiceOver active (Cmd+F5):
- Buffer name announced on focus OK
- Typing: each character announced OK
- Arrow keys / C-n / C-p: line navigation announced OK
- Word navigation (M-f / M-b): word announced OK
- M-x: switches to minibuffer, announces "minibuffer" OK
5. VoiceOver — Completions
---------------------------
PASS — Completion buffer interaction:
- M-x, partial command, Tab → *Completions* OK
- Tab cycling: announces each candidate OK
- No double-speech OK
6. VoiceOver — Window Switching
--------------------------------
PASS — Multiple windows (C-x 2, C-x 3, C-x o):
- Announces buffer name and content on switch OK
- Notification priority/preemption working OK
7. VoiceOver — Full Buffer Reading
-----------------------------------
PASS — VO+A reads entire buffer including off-screen content.
8. VoiceOver — Accessibility Tree
-----------------------------------
PASS — Virtual element tree dynamically maintained:
- Buffer elements created per window OK
- Mode-line elements readable via VO navigation OK
- Tree updates on split/close OK
9. VoiceOver — Selection
--------------------------
PASS — C-SPC + movement: announces "selected" with region.
10. VoiceOver — Org-mode Invisible Text
----------------------------------------
PASS — Folded text NOT read, unfolded text read correctly.
11. ERT — ns-accessibility-enabled Variable
--------------------------------------------
PASS — ns-accessibility-enabled bound, defaults to t.
12. VoiceOver — Overlay Completion (Patch 0007)
------------------------------------------------
PASS — Vertico overlay completion:
- Candidates announced on C-n / C-p OK
- Selected face detected (vertico-current) OK
- Deduplication working OK
- hl-line-mode compatibility (textDidChange flag) OK
13. VoiceOver — Child Frame Completion (Patch 0008)
----------------------------------------------------
PASS — Corfu child frame completion:
- Candidates announced via VoiceOver OK
- Selected face detected (corfu-current) OK
- No Emacs freeze (re-entrance guard) OK
- Focus restored to parent after popup closes OK
- Non-completion child frames skipped (10KB limit) OK
14. Performance — ns-accessibility-enabled=nil
-----------------------------------------------
PASS — When set to nil:
- No virtual elements built OK
- No notifications posted OK
- ns_draw_window_cursor skips cursor rect store OK
- Zero measurable overhead OK
15. Documentation
-----------------
PASS — Texinfo node accessible via C-h i g (emacs)VoiceOver.
etc/NEWS entry present and accurate.