Repository navigation
fix(installer): accessible plain setup for screen readers and the keyboard (#513) - #516
Merged
Merged
Conversation
…board (#513) The picture UI is pixels in one static control: NVDA has nothing to read and the keyboard has nothing to focus, so setup was unusable with a screen reader. - Add plain.nsh and a second page set in wind.nsi built from stock pages: MUI welcome, MUI licence with the full LICENSE text and a real checkbox, an nsDialogs page with the install folder and "Start Wind when I sign in", the stock install page with the log shown, and MUI finish with "Open Wind now" (de-elevated via explorer.exe) and "Create desktop shortcut". - .onInit picks plain mode (WIND_PICK_PLAIN in kit.nsh) on /ACCESSIBLE, SPI_GETSCREENREADER, a running NVDA window or high contrast; never under /S, so silent installs are unchanged. Picture creators abort in plain mode, plain MUI pages abort via PRE otherwise. - Plain mode skips the frameless window, media unpack, GDI+, the hidden log and autoclose. - Picture licence screen: Space ticks the box, and Enter before ticking shows a message box (with the /ACCESSIBLE hint) instead of doing nothing. - Document the mode in installer/README.md, README.md, chapter 11 and the release smoke checklist. Closes #513 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BjTV6Wj6XLqULZWUmqiVYJ
…ce screen (#513) NSIS leaves the keyboard focus on its hidden Next button, so the new Space handler would tick the box and the same key-up would then click Next and leave the page (or show the hint after an untick). Focus the canvas static instead; Enter still reaches Next through the default button. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BjTV6Wj6XLqULZWUmqiVYJ
…ADER (#513) Other apps leave the system screen-reader flag set with no screen reader running, which showed the plain pages to sighted users. Plain mode now follows a running NVDA (window or nvda.exe), JAWS (jfw.exe) or Narrator (Narrator.exe), plus /ACCESSIBLE and high contrast. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BjTV6Wj6XLqULZWUmqiVYJ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #513. Field report: the installer was unusable with NVDA (custom-drawn UI, no real controls, mouse-only, licence accept was a mouse-only dead end).
installer/plain.nsh: standard MUI2 pages (Welcome, Licence with real checkbox, setup page with autostart checkbox, stock install page with status/log, Finish with Run Wind + desktop shortcut). Both page sets coexist..onIniton/ACCESSIBLE,SPI_GETSCREENREADER, an NVDA window, or high contrast. Never under/S; silent installs unchanged.Verification:
build.bat installer(makensis /WX + installer_check) passes; plain pages driven by Win32 messages on a non-elevated test build (real RichEdit/checkbox/tab stops, Next gated on accept). Not tested: elevated plain Finish page, real NVDA.Open question:
SPI_GETSCREENREADERreads 1 on the owner's PC with no screen reader running (some app leaves it set), so plain mode may show there.🤖 Generated with Claude Code
https://claude.ai/code/session_01BjTV6Wj6XLqULZWUmqiVYJ