Files
emacs-doom/patches/TESTING.txt
Daneel 4f37a8660e patches: update TESTING.txt + README.txt for 0007/0008
TESTING: sections 14 (overlay completion) + 15 (child frame completion)
README: patch series listing, overlay/child frame architecture,
  textDidChange flag, focus restoration, new limitations
2026-02-28 18:01:38 +01:00

145 lines
6.1 KiB
Plaintext

VoiceOver Accessibility Patch Series — Testing Evidence
=======================================================
Tester: Martin Sukany
Date: 2026-02-28
Environment
-----------
Host: CM2D4G-A9635005 (macOS)
Base: emacs master (upstream HEAD at time of test)
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. Zoom Cursor Tracking
------------------------
PASS — UAZoomChangeFocus integration working correctly:
- Typing in buffer: cursor tracked, Zoom follows OK
- M-x: Zoom moves focus to minibuffer OK
- M-x list- TAB M-v: switches to *Completions* buffer,
TAB cycles focus across completion candidates OK
- C-x 2, C-x 2, C-x 3 (multiple splits), then C-x o
cycling: Zoom focus correctly follows between windows OK
5. Documentation
----------------
PASS — Texinfo node accessible via C-h i g (emacs)VoiceOver Accessibility.
Node correctly linked from macOS appendix menu.
6. VoiceOver — Basic Navigation
--------------------------------
PASS — VoiceOver active (Cmd+F5):
- Buffer name announced correctly on focus OK
- Typing: each character announced as typed OK
- Arrow keys / C-n / C-p: line-by-line navigation,
current line announced OK
- Word navigation: reads full current word OK
- M-x: switches to minibuffer, announces "minibuffer" OK
7. VoiceOver — Completions
---------------------------
PASS — Completion buffer interaction:
- M-x list-* then M-v to switch to *Completions*:
buffer content read correctly OK
- TAB cycling in *Completions*: announces only the
current candidate (interactive span focus) OK
8. VoiceOver — Window Switching
--------------------------------
PASS — Multiple windows (C-x 2, C-x 3, C-x o cycling):
- Announces current buffer name and content on switch OK
- Begins reading buffer content automatically OK
- User action (typing, navigation) correctly interrupts
reading and announces new action instead OK
- Notification priority/preemption working as designed OK
9. VoiceOver — Full Buffer Reading
-----------------------------------
PASS — VO+A reads entire buffer including off-screen content.
- Cursor synchronization between Emacs and VoiceOver
virtual cursor working correctly OK
10. VoiceOver — Accessibility Tree
-----------------------------------
PASS — Virtual element tree dynamically maintained:
- New AX element created for each open buffer OK
- Minibuffer element present and readable OK
- Mode-line elements present per buffer, readable via
VoiceOver virtual navigation OK
- Tree correctly updates when windows are split/closed OK
11. VoiceOver — Selection
--------------------------
PASS — C-SPC + cursor movement:
- Announces "selected" with region feedback OK
12. VoiceOver — Org-mode Invisible Text
----------------------------------------
PASS — Org-mode folding (Tab on headings):
- Folded: hidden text NOT read by VoiceOver OK
- Unfolded: full content read correctly OK
- Invisible text filtering (TEXT_PROP_MEANS_INVISIBLE)
working as designed OK
13. ERT — ns-accessibility-enabled Variable
--------------------------------------------
PASS — Ran 1 test, 1 result as expected:
- ns-accessibility-enabled is bound OK
- ns-accessibility-enabled defaults to t OK
(ERT 1/1 passed, 2026-02-28 11:45:55 CET)
14. VoiceOver — Overlay Completion (Patch 0007)
------------------------------------------------
PASS — Vertico minibuffer overlay completion:
- Vertico candidates announced on C-n / C-p navigation OK
- Selected candidate face detected (vertico-current) OK
- Deduplication: same candidate not re-announced OK
- Zoom tracks selected candidate in minibuffer
(overlayZoomRect / overlayZoomActive lifecycle) OK
- overlayZoomActive cleared on text input OK
- hl-line-mode compatibility: cursor movement in dired
and read-only buffers correctly announces lines
(textDidChange flag decouples modiff branch from
cursor-move branch) OK
15. VoiceOver — Child Frame Completion (Patch 0008)
----------------------------------------------------
PASS — Corfu child frame completion:
- Corfu popup candidates announced via VoiceOver OK
- Selected candidate face detected (corfu-current) OK
- Zoom tracks selected candidate in child frame
(direct UAZoomChangeFocus) OK
- No Emacs freeze (re-entrance guard before child frame
dispatch, buffer switch with unbind_to on all paths) OK
- Focus restored to parent buffer after corfu closes
(childFrameCompletionActive flag + FOR_EACH_FRAME
visibility check + FocusedUIElementChanged) OK
- Non-completion child frames skipped (10KB buffer limit) OK
- specpdl_ref type used correctly (not ptrdiff_t) OK