Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
280 commits
Select commit Hold shift + click to select a range
f4567c9
Increase timeout for CI/CD jobs (#19221)
seanbudd Nov 17, 2025
bcdbdd1
Update CodeQL security analysis badge link in README (#19223)
seanbudd Nov 17, 2025
125915b
Fix LibreOffice braille scrolling (#19204)
LeonarddeR Nov 17, 2025
ec2c4ac
github-workflows-Part3: Updated actions/setup-python@v5 to actions/se…
dpy013 Nov 18, 2025
03db1ef
Update SCons to 4.10.1, introducing VS2026 support (#19226)
LeonarddeR Nov 18, 2025
6cee976
Update actions/upload-artifact and actions/download-artifact (#19224)
dpy013 Nov 18, 2025
eaab6f9
Bugfix for displayed gesture identifier containing numlock modifier (…
CyrilleB79 Nov 18, 2025
0352d82
Allow the mathematics settings panel to load for NVDA languages witho…
codeofdusk Nov 18, 2025
1472d4b
Load MathCAT relative to the app directory (#19230)
codeofdusk Nov 18, 2025
f7245fb
User guide: MathCAT edits (#19234)
josephsl Nov 18, 2025
36a2e7d
Don't attempt crash loop detection or automatic restarting on crash w…
SaschaCowley Nov 19, 2025
5e44446
Make Screen Curtain profile independent (#19177)
SaschaCowley Nov 19, 2025
163b8e8
Remove Math Player support (#19239)
SaschaCowley Nov 20, 2025
480b087
Show dialog to enable image desc once if it is not enabled in setting…
tianzeshi-study Nov 21, 2025
ff8eef7
Ensure multiselectable is discarded for TableCell (#19247)
LeonarddeR Nov 21, 2025
d5558c9
Pre-commit auto-update (#19162)
pre-commit-ci[bot] Nov 21, 2025
a8ceaa8
Symbols and character descriptions for Luxembourgish (#19241)
zstanecic Nov 21, 2025
779b345
Master to beta #19249
seanbudd Nov 21, 2025
5bd19de
Update user_docs/en/changes.xliff
actions-user Nov 21, 2025
58ab928
Update user_docs/en/userGuide.xliff
actions-user Nov 21, 2025
09bbef7
Merge beta to master #19250
seanbudd Nov 21, 2025
9fac0d8
Fix NVDA reading the Unicode hyphen (U+2010) as hyphen (#19114) (#19248)
sidkar5 Nov 21, 2025
0ab182c
ci-cd:actions/checkout-v5 to actions/checkout-v6 (#19267)
dpy013 Nov 24, 2025
84d079c
Symbol files alignment with english, and further fixes to luxembourgi…
zstanecic Nov 24, 2025
3e1b263
Update NVDA license information in README (#19251)
seanbudd Nov 25, 2025
1b806b4
add admin notes for crowdin administration (#19255)
seanbudd Nov 25, 2025
282a5cd
fix crowdin sync to beta by running pyright locally (#19252)
seanbudd Nov 25, 2025
124db37
Merge master to beta #19271
seanbudd Nov 25, 2025
3a96bcc
Update tracked translations from Crowdin (#19272)
github-actions[bot] Nov 25, 2025
d8dcc7d
Beta to master #19273
seanbudd Nov 25, 2025
3ad1b99
Update symbols.dic for bulgarian (#19274)
k-kolev1985 Nov 25, 2025
326f22f
Update hyphen in fr symbols file as per English one #19278
CyrilleB79 Nov 25, 2025
4e5f76a
Improve CI docs and modularity for forking (#19254)
seanbudd Nov 25, 2025
f97aa7b
Fix disabling then enabling touch support (#19280)
SaschaCowley Nov 26, 2025
855742d
Update symbols.dic for Finnish (#19287)
jkinnunen Nov 27, 2025
2af478d
Fix an error message in speech manager (#19275)
CyrilleB79 Nov 27, 2025
b5c8569
Beta to master #19288
seanbudd Nov 27, 2025
e419d0d
Optimize continuous recognition logic (#19291)
tianzeshi-study Nov 27, 2025
250802a
Update dependencies for 2026.1 (#19196)
SaschaCowley Nov 28, 2025
33cf7ad
Remove SAPI4 (#19290)
SaschaCowley Nov 28, 2025
e6a466a
Update eSpeak NG and Unicode CLDR (#19293)
SaschaCowley Nov 28, 2025
52770cc
Created issue type for addon integration request (#18980)
gerald-hartig Nov 28, 2025
bc2647d
Fix error when trying to read documents with malformed URL in links (…
nvdaes Nov 28, 2025
e168626
Remove references to 32-bit Windows from the user guide (#19297)
SaschaCowley Nov 29, 2025
7285300
Parse LaTeX in the user guide to MathML (#19304)
SaschaCowley Nov 30, 2025
9b923d5
Update commit refs (#19294)
SaschaCowley Nov 30, 2025
4ac85e8
Update tracked translations from Crowdin (#19306)
github-actions[bot] Dec 1, 2025
c73c339
Fork repository CI does not fail when exiting early. (#19307)
hwf1324 Dec 1, 2025
eb25400
Filter out markdown linter comments from translations (#19308)
michaelDCurran Dec 2, 2025
1f162b2
Merge pull request #19312 from nvaccess/beta
SaschaCowley Dec 2, 2025
6172254
Move settings to Privacy and Security category (#19296)
SaschaCowley Dec 3, 2025
b8ba741
Update to liblouis 3.36 (#19316)
LeonarddeR Dec 3, 2025
7ba333a
Add support for Word footnote and endnote reference navigation (#19310)
LeonarddeR Dec 3, 2025
39e499b
Update Arabic symbols in symbols.dic (#19321)
makhlwf Dec 4, 2025
e29ed1d
Fix errors in linker output when building ARM64EC (#19331)
LeonarddeR Dec 5, 2025
b3fe579
Add script to toggle mouse audio coordinates (#19026) (#19282)
rlawnsrl123 Dec 5, 2025
137f6be
Fix script to toggle mouse audio coordinates announcement (#19339)
nvdaes Dec 5, 2025
79a07dc
Report grammar errors according to configuration (#19257)
nvdaes Dec 5, 2025
46afad6
Fix settings dialog title for 2 base-only panels (#19342)
CyrilleB79 Dec 8, 2025
fdbfb01
When update is not available, do not remove corresponding GUI control…
CyrilleB79 Dec 8, 2025
3f42949
Fix starting NVDA with `--no-logging` flag (#19350)
CyrilleB79 Dec 9, 2025
054c9c3
Update tracked translations from Crowdin (#19345)
github-actions[bot] Dec 9, 2025
17ed5ef
Updated Python 3.13.9 to 3.13.11 (#19352)
dpy013 Dec 9, 2025
20e5b81
Add warnings to AI image descriptions (#19327)
SaschaCowley Dec 9, 2025
8373197
Review 2026.1 changelog/documentation changes (#19319)
SaschaCowley Dec 9, 2025
78a1391
Start dev cycle for 2026.2 (#19354)
SaschaCowley Dec 9, 2025
504e956
2026.1 final master to beta merge (#19355)
SaschaCowley Dec 9, 2025
7243bc2
Update user_docs/en/changes.xliff
actions-user Dec 9, 2025
481ecbe
Update user_docs/en/userGuide.xliff
actions-user Dec 9, 2025
139a6b7
Beta to master (#19356)
SaschaCowley Dec 9, 2025
02f3919
Fix Screen Curtain (#19305)
SaschaCowley Dec 10, 2025
3373424
Beta to master (#19364)
SaschaCowley Dec 10, 2025
43b8a9b
Mention that Python is now 64 bits in change log (#19360)
CyrilleB79 Dec 11, 2025
00a42a4
Don't play spelling error reporting sounds when typing if speech mode…
CyrilleB79 Dec 11, 2025
6155d1d
Set the MathCAT output code automatically by NVDA language (#19368)
codeofdusk Dec 11, 2025
ba0f22b
MathCAT: Use CMU in Portuguese (#19371)
codeofdusk Dec 11, 2025
5093ac0
Add crash stats output to git ignore (#19369)
SaschaCowley Dec 12, 2025
835486a
A command to repeat last spoken information (#19173)
CyrilleB79 Dec 12, 2025
675efe0
Optimize Highlighter performance using dirty rectangles. (#19344)
hwf1324 Dec 12, 2025
3792229
NVDA+F1 now opens the log viewer even when logging is disabled (#19347)
CyrilleB79 Dec 12, 2025
ed5cbc7
Added a new unassigned gesture to toggle keyboard layout (#19349)
CyrilleB79 Dec 12, 2025
cadb496
Move mathCATDir to ReadPaths (#19370)
SaschaCowley Dec 12, 2025
e9258e8
GitHub action-cache v4 to cache v5 (#19374)
dpy013 Dec 12, 2025
5fc325f
GitHub action: update upload artifact and download artifact (#19378)
dpy013 Dec 14, 2025
9aa4981
Update tracked translations from Crowdin (#19381)
github-actions[bot] Dec 15, 2025
abdbd02
Improve language handling for MathCAT braille (#19375)
codeofdusk Dec 15, 2025
1cee6d9
Pass 0 instead of None to VBuf_getControlFieldNodeWithIdentifier (#19…
SaschaCowley Dec 16, 2025
3f24e4f
Beta to master (#19389)
seanbudd Dec 16, 2025
6f9cfd1
Fixed an error that occurred when enabling visual highlighter for ele…
hwf1324 Dec 16, 2025
ee365d5
Move markdown lint disabling instruction below 2026.2 change log (#19…
CyrilleB79 Dec 16, 2025
ab1b5aa
Fix skim reading issue (#19397)
CyrilleB79 Dec 29, 2025
fd830ca
Update tracked translations from Crowdin (#19408)
github-actions[bot] Dec 29, 2025
d154ffc
Word with UIA: Retrieve Page Numbers from Custom Attributes API (#193…
akj Dec 29, 2025
edc285a
Add slider support for browse mode navigation (#19398)
tareh7z Dec 30, 2025
4a1e5c6
Fix Firefox browse mode not announcing aria-label when label element …
bramd Dec 30, 2025
d10ade5
Update tracked translations from Crowdin (#19415)
github-actions[bot] Jan 6, 2026
eeb6143
Correctly register .nvda-addon file association on installation (#19419)
SaschaCowley Jan 7, 2026
4c5d941
Merge pull request #19421 from nvaccess/beta
SaschaCowley Jan 7, 2026
9f3aecb
Revert AI image description work (#19425)
seanbudd Jan 11, 2026
1998cb2
Merge branch 'beta' into betaToMaster
SaschaCowley Jan 11, 2026
ad8c7a2
Beta to master (#19431)
SaschaCowley Jan 11, 2026
d33bc92
Fix bugs when attempting to install add-ons requiring a newer NVDA re…
SaschaCowley Jan 11, 2026
e8e5a8f
Fixup #19394: Prevent Word with UIA reporting "page -1" on final line…
akj Jan 11, 2026
099beee
Update tracked translations from Crowdin (#19434)
github-actions[bot] Jan 13, 2026
747eae0
Fixup MathCAT settings (#19227)
codeofdusk Jan 13, 2026
ea7272c
Beta to master (#19439)
seanbudd Jan 13, 2026
0ec178a
Update user_docs/en/userGuide.xliff
actions-user Jan 13, 2026
1b6267b
Output type check results to stdout and GitHub step summary (#19437)
SaschaCowley Jan 13, 2026
5151869
Revert pr #19290 to tempoararily add back broken sapi4 while we move …
michaelDCurran Jan 14, 2026
84e14ee
Minor consistency fixes in MathCAT preferences (#19440)
codeofdusk Jan 16, 2026
570d760
UI Automation in Microsoft Word: Use move by sentence custom pattern …
codeofdusk Jan 16, 2026
fb55abb
fix up pre-commit for xliff files (#19426)
seanbudd Jan 18, 2026
937fd70
update transitive dependencies to fix security warnings (#19449)
seanbudd Jan 18, 2026
c258ad5
Beta to master #19457
seanbudd Jan 18, 2026
372052c
Add new language km from Crowdin #19458
github-actions[bot] Jan 18, 2026
0791101
Move Toggle Screen Curtain command to Misc category (#19452)
CyrilleB79 Jan 19, 2026
c3b8540
Update tracked translations from Crowdin (#19459)
github-actions[bot] Jan 19, 2026
664661a
Beta to master #19460
seanbudd Jan 19, 2026
ed543fa
document support for cambodian #19450
seanbudd Jan 19, 2026
cd0342e
beta to master #19461
seanbudd Jan 19, 2026
319404c
Magnifier implementation (#19228)
Boumtchack Jan 19, 2026
7bad8be
Link with cetCompat flag (#19469)
LeonarddeR Jan 21, 2026
2b3e9c2
Remote Access: prevent multiple disconnection confirmation dialogs (#…
cary-rowen Jan 21, 2026
0a4b8d7
Improve Magnifier error messages (#19475)
CyrilleB79 Jan 21, 2026
09277db
Smoothing mouse magnifier and spotlight (#19468)
Boumtchack Jan 21, 2026
8b37367
Notify user when connecting as follower fails (#19477)
tareh7z Jan 21, 2026
890d2d6
beta to master #19481 from nvaccess/beta
seanbudd Jan 21, 2026
ccdd960
Remove unused languages added along with MathCAT inclusion #19484
CyrilleB79 Jan 22, 2026
74ebee4
Fix bosnian character descriptions (#19476)
tareh7z Jan 22, 2026
8bfb0e5
Remove unused languages added along with MathCAT inclusion - Cherry-p…
CyrilleB79 Jan 22, 2026
4689773
Fix toggle screen layout command in input gestures dialog (#19487)
SaschaCowley Jan 22, 2026
63005f0
Restore updates to changes.xliff (#19482)
seanbudd Jan 23, 2026
74e0101
Beta to master #19497 from nvaccess/beta
seanbudd Jan 23, 2026
a7c0bff
Fix NVDA+K not recognizing links with nested elements (#19428)
cary-rowen Jan 23, 2026
0e79938
Select which add-ons to copy to the system profile (#19446)
SaschaCowley Jan 23, 2026
6ad783c
Update user_docs/en/changes.xliff
actions-user Jan 23, 2026
f4481bd
Update user_docs/en/userGuide.xliff
actions-user Jan 23, 2026
9a51178
Merge pull request #19373 from codeofdusk/mathcat-config-location
codeofdusk Jan 23, 2026
0bced55
Fix Changes.md (#19500)
wmhn1872265132 Jan 23, 2026
6205c39
Update user_docs/en/changes.xliff
actions-user Jan 23, 2026
aa95ea8
Master to beta (#19501)
seanbudd Jan 23, 2026
dfafc8f
Update tracked translations from Crowdin (#19507)
github-actions[bot] Jan 26, 2026
94ea0f6
Modernise speech dict handler with enums and type hints (#19430)
LeonarddeR Jan 27, 2026
706aa13
Don't copy universal C Runtime as it will never be used on Windows 10…
SaschaCowley Jan 27, 2026
9f79e0a
Fix copying add-ons to the system profile (#19511)
SaschaCowley Jan 27, 2026
f1913ff
Fix translatable string in copy add-ons feature (#19512)
SaschaCowley Jan 27, 2026
f32e049
Support for 32 bit sapi4 and sapi5 via a 32 bit synthDriver runtime (…
michaelDCurran Jan 27, 2026
f32249e
Update user_docs/en/changes.xliff
actions-user Jan 27, 2026
10bf334
Beta to master #19514
SaschaCowley Jan 27, 2026
d45a8bd
Fix updating windows root certificates in update check (#19448)
SaschaCowley Jan 27, 2026
45d72df
Merge pull request #19520 from nvaccess/beta
SaschaCowley Jan 27, 2026
b573741
when upgrading config from schema 20 to 21, gracefully handle when a …
michaelDCurran Jan 28, 2026
e487965
Merge pull request #19521 from nvaccess/beta
SaschaCowley Jan 28, 2026
58033ba
Pre-commit auto-update (#19311)
pre-commit-ci[bot] Jan 28, 2026
93f8c66
Revert "Pre-commit auto-update" (#19522)
seanbudd Jan 28, 2026
916395a
No longer allow moving to offset past end for NVDAObjectTextInfo (#19…
LeonarddeR Jan 30, 2026
4670047
Migrate vietnamese changes from markdown to xliff (#19533)
github-actions[bot] Jan 30, 2026
e5d0196
beta to master #19534
seanbudd Jan 30, 2026
9fd08fe
Fix tracking issues with the magnifier (#19483)
Boumtchack Feb 3, 2026
71294e4
Support pitch change for capitals and rate boost (SAPI5 only) for 32 …
michaelDCurran Feb 3, 2026
9f74d30
Add more speech dictionary entry types (#19517)
LeonarddeR Feb 3, 2026
0ad37fb
update setuptools (#19524)
seanbudd Feb 4, 2026
26e93ec
Update user_docs/en/changes.xliff
actions-user Feb 4, 2026
1394ac2
Fix space in changes file (#19552)
seanbudd Feb 4, 2026
b2a380c
remove 32bit OS handling for com registration fixing tool (#19523)
seanbudd Feb 4, 2026
63e9011
Beta to master #19554
SaschaCowley Feb 4, 2026
0ea93e7
Use translated strings for driver settings in 32 bit sapi synthDriver…
michaelDCurran Feb 5, 2026
1176ef0
Beta to master #19563
SaschaCowley Feb 5, 2026
8dbe0fd
add fuzzy trigram searching to add-on store (#19309)
seanbudd Feb 6, 2026
c60c4ab
Documentation and minor code fix-ups to 32-bit SAPI support (#19555)
SaschaCowley Feb 6, 2026
c7019c1
Fixed missing attributes when calling `GetClientRect` in winUser. (#1…
hwf1324 Feb 6, 2026
8917fb0
Add a third value for the 'Play a sound for logged errors:' option (#…
CyrilleB79 Feb 6, 2026
f83b34b
add gestures for cycling magnifier full screen focus mode and color f…
seanbudd Feb 6, 2026
b9d2839
fix VS code tests (#19569)
seanbudd Feb 6, 2026
7a21000
beta to master #19570
seanbudd Feb 6, 2026
ae1aa96
Update translations from Crowdin (#19581)
SaschaCowley Feb 9, 2026
1a9a5e8
Fix a situation where NVDA may unexpectedly run as an administrator
SaschaCowley Feb 10, 2026
2bfd594
Merge commit from fork
seanbudd Feb 10, 2026
a87d0e2
Merge branch 'rc' into rcToBeta
SaschaCowley Feb 10, 2026
b4e5abc
rc to beta (#19584)
SaschaCowley Feb 10, 2026
62882b1
Update user_docs/en/changes.xliff
actions-user Feb 10, 2026
31cd035
Merge remote-tracking branch 'origin/beta' into betaToMaster
SaschaCowley Feb 10, 2026
bd95f1e
Merge beta to master (#19585)
SaschaCowley Feb 10, 2026
0c0f494
Remove misleading `scons tests` build target (#19606)
bramd Feb 13, 2026
d0be47c
Updated Python 3.13.11 to 3.13.12 (#19572)
dpy013 Feb 13, 2026
e1c7618
Make synth fallback check all other synths, not just later ones (#19603)
SaschaCowley Feb 13, 2026
0b834c9
Bump cryptography from 46.0.3 to 46.0.5 (#19601)
SaschaCowley Feb 13, 2026
8dab49b
Bump pillow (required by robot-screencaplibrary) from 12.1.0 to 12.1.…
SaschaCowley Feb 13, 2026
d44f7a1
Allow config profile triggers when Add-on Store is open (#19583)
bramd Feb 13, 2026
7ba3699
Fix inability to reopen the store (#19579)
nvdaes Feb 13, 2026
c37b942
Fix occasional freeze in 32 bit sapi synths when cancelling speech (#…
michaelDCurran Feb 13, 2026
b2a57d4
Master to beta #19612
seanbudd Feb 13, 2026
225b15a
Add undo dialog after factory defaults reset from NVDA menu #19575
bramd Feb 16, 2026
2b6ef08
Update translations from Crowdin (#19623)
SaschaCowley Feb 16, 2026
81c7e50
Apply MathCAT settings with libmathcat.SetPreference when changed (#1…
codeofdusk Feb 17, 2026
4c686c1
Fix up API symbols introduced in 2025.3 patch releases (#19630)
SaschaCowley Feb 17, 2026
4b2715d
Follow-up on 19572: Updated Python from 3.13.11 to 3.13.12 added chan…
dpy013 Feb 17, 2026
2f8b7d4
Beta to master (#19633)
seanbudd Feb 17, 2026
14a1ac7
Change log: update GitHub username references (#19621)
tareh7z Feb 17, 2026
0e373ae
Update user_docs/en/changes.xliff
actions-user Feb 17, 2026
f66bd05
Update the Fetch Crowdin translations workflow to collect individual …
SaschaCowley Feb 18, 2026
a31a332
Merge pull request #19639 from nvaccess/beta
SaschaCowley Feb 18, 2026
1ff05bd
Don't save mathCAT settings to yaml (#19637)
SaschaCowley Feb 18, 2026
c20d09c
Merge pull request #19640 from nvaccess/beta
SaschaCowley Feb 18, 2026
3dd3d1f
added true center option for fullscreen center mode (#19593)
Boumtchack Feb 19, 2026
bb1d7d8
Fix version comparisons when installing/updating/downgrading (#19631)
seanbudd Feb 20, 2026
5a160e8
Update user_docs/en/changes.xliff
actions-user Feb 20, 2026
cc554e1
beta to master #19651 from nvaccess/beta
seanbudd Feb 20, 2026
69fe433
Update symbols.dic for am #19659
Million-ayenew Feb 23, 2026
8dc9d14
Save and restore speech rate in espeak (#19661)
RyanMcCleary Feb 23, 2026
769ac12
Update tracked translations from Crowdin (#19663)
github-actions[bot] Feb 23, 2026
98a7e5f
32 bit sapi synthDrivers send audio to NVDA for playback rather than …
michaelDCurran Feb 23, 2026
bfee71b
Beta to master (#19664)
SaschaCowley Feb 23, 2026
4bf1878
fix git attributes eol syntax (#19645)
seanbudd Feb 23, 2026
4391067
modernise usage of AccessibleObjectFromWindow in rich edit (#19650)
seanbudd Feb 23, 2026
3291f42
Fix concurrency for tagged builds (#19668)
seanbudd Feb 23, 2026
b0228fe
Temporarily suspend audio ducking when a 32 bit synthDriver is in use…
michaelDCurran Feb 23, 2026
e180615
restore screen curtain state on settings cancel (#19652)
seanbudd Feb 23, 2026
bc45e6f
Beta to master (#19671)
SaschaCowley Feb 23, 2026
a8eae3d
Improve error message when absolute path is not used (#19666)
seanbudd Feb 23, 2026
de25943
Change log formatting (#19684)
CyrilleB79 Feb 24, 2026
bb71af4
Update user_docs/en/changes.xliff
actions-user Feb 24, 2026
c89c5bc
Add speech dictionary support to add-ons (#19558)
LeonarddeR Feb 25, 2026
8803dbf
Refactor validation of math preferences and eliminate duplicate MathC…
RyanMcCleary Feb 25, 2026
d045e96
Beta to master (#19685)
seanbudd Feb 25, 2026
7873e97
appModules/whatsapp.root: initial support for WhatsApp WebView2 versi…
josephsl Feb 25, 2026
418c9ab
Remove useless log (#19694)
CyrilleB79 Feb 25, 2026
5e20004
Correctly version and sign the 32 bit synthDriverHost runtime executa…
michaelDCurran Feb 25, 2026
69c4b92
check if mouse is used before changing its position (#19691)
Boumtchack Feb 25, 2026
888ce8a
Clarify error message of #19666 (#19690)
CyrilleB79 Feb 25, 2026
1504f6e
Gestures to pan screen with arrows (#19478)
Boumtchack Feb 26, 2026
22fcade
Beta to master (#19696)
seanbudd Feb 26, 2026
341577d
add pre-commit check to lint github actions (#19688)
seanbudd Feb 26, 2026
5306000
Re-enable audio ducking for proxied x86 speech synths (#19672)
SaschaCowley Feb 26, 2026
b2ec429
Refine security advisory SLA (#19699)
gerald-hartig Feb 26, 2026
67ad1ff
Add an option to use Word's native math speech in Word documents (#19…
RyanMcCleary Feb 26, 2026
ff9d8e0
Update user_docs/en/userGuide.xliff
actions-user Feb 26, 2026
cf18386
Announce capital indicators during character-by-character selection (…
cary-rowen Feb 26, 2026
261639c
Increase timeout for system tests from 10 to 15 minutes (#19703)
seanbudd Feb 26, 2026
e74b7fc
Remove change log item unrelated to NVDA itself (#19705)
CyrilleB79 Feb 26, 2026
9cadd79
Update characterDescriptions.dic for zh_TW (#19710)
andy72039 Feb 26, 2026
d6ea99e
Updated API stability policy (#19599)
gerald-hartig Feb 26, 2026
77b7576
Revert "Correctly version and sign the 32 bit synthDriverHost runtime…
seanbudd Feb 27, 2026
963f29b
Revert "Increase timeout for system tests from 10 to 15 minutes" (#19…
seanbudd Feb 27, 2026
9f09736
Update to Python 3.13.12 on beta (#19701)
SaschaCowley Feb 27, 2026
f6678fd
Update user_docs/en/changes.xliff
actions-user Feb 27, 2026
8c66883
Use ngettext for progress percentages and update Russian plurals (#19…
Kostenkov-2021 Feb 27, 2026
a94c7f8
Beta to master #19704
seanbudd Feb 27, 2026
d8bf309
Replace scons checkPot with standalone runcheckpot.bat (#19676)
bramd Mar 3, 2026
006277b
Merge branch 'master'
CrazySteve0605 Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 1 addition & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
# https://mail.gnome.org/archives/kupfer-list/2010-June/msg00002.html
*.po filter=cleanpo

eol=lf
* text=auto
* text=auto eol=lf

# Files which should not be renormalized
*.dic -text
Expand Down
108 changes: 108 additions & 0 deletions .github/ISSUE_TEMPLATE/05-addon_integration_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: "Feature from Add-on"
description: "Propose specific functionality from an existing community add-on for integration into NVDA."
title: "[Feature from Add-on] <Briefly describe the functionality>"
labels: ["enhancement", "Addon/integration"]

body:
- type: markdown
attributes:
value: |
This template is for proposing that a specific feature from an existing community add-on be integrated into NVDA.
Please focus your request on a single, conceptually focused piece of functionality.
Requests to "integrate this entire add-on" will be closed if the add-on provides many unrelated features.
The goal is to identify functionality that is essential for the core user experience.

Please read [our guide](https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/githubIssueTemplateExplanationAndExamples.md) on how to fill in this template, including how to provide the required files.
Issues may be closed if the required information is not present.

Please also note that the NVDA project has a [Citizen and Contributor Code of Conduct](https://github.com/nvaccess/nvda/blob/master/CODE_OF_CONDUCT.md).
NV Access expects that all contributors and other community members read and abide by the rules set out in this document while participating or contributing to this project.
This includes creating or commenting on issues and pull requests.

- type: textarea
id: specific-feature
attributes:
label: "Describe the specific functionality to be integrated"
description: |
Clearly and concisely describe the feature you are requesting.
If the add-on has multiple features, please list only the specific ones you believe are essential for inclusion in NVDA.
placeholder: "e.g. 'Add a hotkey to announce the title of the current tab in web browsers.'"
validations:
required: true

- type: textarea
id: problem-and-impact
attributes:
label: "What problem does this functionality solve?"
description: |
Help us understand the benefit of this feature for users.

* What common user task becomes easier or possible with this feature?
* Who is the primary target audience for this functionality (e.g. all users, developers, users of a specific application)?
* How does this improve upon NVDA's existing behavior?
placeholder: "Describe the problem solved and the target users."
validations:
required: true

- type: textarea
id: core-justification
attributes:
label: "Why should this be in NVDA vs. remaining an add-on?"
description: "Justify why this functionality is fundamental enough to be included in NVDA by default for all users, rather than being an optional installation."
placeholder: "e.g., 'This functionality is critical for accessibility in application XYZ, which is widely used and shouldn't require users to find and install a separate add-on.'"
validations:
required: true

- type: markdown
attributes:
value: |
---
### Source Add-on Information
Please provide details about the add-on where this feature is currently implemented.

- type: input
id: add-on-name
attributes:
label: "Name of the source add-on"
description: "The official name of the add-on that currently provides this functionality."
placeholder: "e.g. Awesome App Support"
validations:
required: true

- type: input
id: add-on-link
attributes:
label: "Link to add-on repository or website"
description: "Where can we find the source code and license for this add-on?"
placeholder: "https://github.com/user/add-on-repo"
validations:
required: true

- type: input
id: add-on-maintainers
attributes:
label: "Current maintainer(s) of the add-on"
description: "Please provide the GitHub username or name of the current maintainer, if known."
placeholder: "@username or 'Name'"
validations:
required: false

- type: dropdown
id: license
attributes:
label: "Add-on License Status"
description: "NVDA is licensed under GPL-2.0 or later. To be included, the add-on's code must be available under these terms. Please specify the add-on's current license situation."
options:
- "GPL-2.0 or later (No relicensing needed)"
- "Other GPL-compatible license (Author has agreed to relicense)"
- "Other GPL-compatible license (Relicensing permission is not yet confirmed)"
- "I don't know / Needs investigation"
validations:
required: true

- type: textarea
id: additional-context
attributes:
label: "Additional context"
description: "Please provide any other information you believe is relevant, such as dependencies, potential conflicts or other add-ons with similar functionality."
placeholder: "Any other details that might help us."
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/15-addon_integration_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: "(Advanced) Feature from add-on"
about: "Free text feature request template for those familiar with GitHub."
labels: ["enhancement", "Addon/integration"]
---

### Describe the specific functionality to be integrated

### What problem does this functionality solve?

### Why should this be in NVDA vs. remaining an add-on?

### Source Add-on Information
* **Name of the source add-on:**
* **Link to add-on repository or website:**
* **Current maintainer(s) of the add-on:**
* **Add-on license:**

### Additional context
12 changes: 12 additions & 0 deletions .github/workflows/assign-milestone-on-close.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,23 @@ on:
permissions:
issues: write
pull-requests: write
actions: write

jobs:
assign-milestone:
runs-on: ubuntu-latest
steps:
- name: Early exit
run: |
if [ -z "$MILESTONE_ID" ]; then
echo "MILESTONE_ID is not set. Exiting workflow."
gh run cancel ${{ github.run_id }}
gh run watch ${{ github.run_id }}
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}

- name: Check if milestone is set
id: check-milestone
uses: actions/github-script@v7
Expand Down
88 changes: 55 additions & 33 deletions .github/workflows/fetch-crowdin-translations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,22 @@ jobs:
permissions:
contents: write
pull-requests: write
actions: write
env:
branchName: updateCrowdinTranslations${{ github.run_id }}

steps:
- name: Early exit
run: |
if ("${{ vars.CROWDIN_PROJECT_ID }}".length -eq 0) {
Write-Output "CROWDIN_PROJECT_ID is not set. Exiting workflow."
gh run cancel ${{ github.run_id }}
gh run watch ${{ github.run_id }}
}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}

- name: Checkout repository
uses: actions/checkout@v4
with:
Expand All @@ -30,10 +42,10 @@ jobs:
submodules: true

- name: Set up python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.13'
architecture: 'x86'
python-version: '3.13.12'
architecture: 'x64'

- name: setup uv
uses: astral-sh/setup-uv@v6
Expand All @@ -44,51 +56,61 @@ jobs:
crowdinProjectID: ${{ vars.CROWDIN_PROJECT_ID }}
crowdinAuthToken: ${{ secrets.CROWDIN_AUTH_TOKEN }}

- name: Install pre-commit
run: |
python -m pip install --upgrade pip
pip install pre-commit
pre-commit install

# Job will fail if pre-commit checks fail
- name: Commit tracked files only
id: commit
shell: bash
run: |
git checkout -b ${{ env.branchName }}
git config --local user.name "GitHub Actions"
git config --local user.email ""
git add -u source/locale
git add -u user_docs

# Check if there are any changes to commit
if git diff --staged --quiet; then
echo "No changes to commit"
echo "has_changes=false" >> $GITHUB_OUTPUT
else
git commit -m "Update tracked translations from Crowdin"
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
run: ci/scripts/checkAndCommitTranslations.ps1 -branchName ${{ env.branchName }}

- name: Create pull request
if: steps.commit.outputs.has_changes == 'true'
shell: bash
run: |
git push --set-upstream origin ${{ env.branchName }}
# Create a pull request for the changes
gh pr create --base beta --head ${{ env.branchName }} \
--title "Update tracked translations from Crowdin" \
gh pr create --base beta --head ${{ env.branchName }} `
--title "Update tracked translations from Crowdin" `
--body "This pull request updates translations to languages being tracked from Crowdin."
env:
GITHUB_TOKEN: ${{ github.token }}

- name: Merge pull request
if: steps.commit.outputs.has_changes == 'true'
shell: bash
# Sets PR to auto-merge when checks have passed
run: |
gh pr merge ${{ env.branchName }} \
--squash --delete-branch --auto \
# Sets PR to auto-merge when checks have passed
gh pr merge ${{ env.branchName }} `
--squash --delete-branch --auto `
--body "Merged translations from Crowdin"
env:
GITHUB_TOKEN: ${{ github.token }}

- name: Notify translators of errors
if: steps.commit.outputs.has_failures == 'true'
uses: dawidd6/action-send-mail@v4
with:
server_address: ${{ secrets.EMAIL_SERVER_ADDRESS }}
server_port: ${{ secrets.EMAIL_SERVER_PORT || 465 }}
username: ${{ secrets.EMAIL_USERNAME }}
password: ${{ secrets.EMAIL_PASSWORD }}
subject: "[${{ steps.commit.outputs.invalid_pofile_locales }}]: Errors in interface translations"
to: nvda-l10n@nvaccess.org
from: '"NVDA localisations" <nvda-l10n@nvaccess.org>'
convert_markdown: true
body: |
Errors have been found in the user interface translations for the following locales: ${{ steps.commit.outputs.invalid_pofile_locales }}.
Detailed reports are included below.
Updated translations for these locales will not be included in NVDA until these errors have been corrected.

For more information, review the guide on translating NVDA's interface: <https://github.com/nvaccess/nvda/blob/master/projectDocs/translating/crowdin.md#translating-nvdas-interface>.

----------
${{ steps.commit.outputs.invalid_pofile_reports }}

html_body: |
Errors have been found in the user interface translations for the following locales: ${{ steps.commit.outputs.invalid_pofile_locales }}.
Detailed reports are included below.
Updated translations for these locales will not be included in NVDA until these errors have been corrected.

For more information, [review the guide on translating NVDA's interface](https://github.com/nvaccess/nvda/blob/master/projectDocs/translating/crowdin.md#translating-nvdas-interface).

```
----------
${{ steps.commit.outputs.invalid_pofile_reports }}
```
63 changes: 0 additions & 63 deletions .github/workflows/issueDuplication.yml

This file was deleted.

18 changes: 16 additions & 2 deletions .github/workflows/monitor-localisation-file-changes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,25 @@ on:
paths:
- 'source/locale/en/*.dic'

permissions:
actions: write

jobs:
send_email:
runs-on: ubuntu-latest

steps:
- name: Early exit
run: |
if [ -z "${{ secrets.EMAIL_USERNAME }}" ]; then
echo "EMAIL_USERNAME is not set. Exiting workflow."
gh run cancel ${{ github.run_id }}
gh run watch ${{ github.run_id }}
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}

- name: Checkout repository
uses: actions/checkout@v4
with:
Expand All @@ -33,8 +47,8 @@ jobs:
- name: Send email
uses: dawidd6/action-send-mail@v4
with:
server_address: email-smtp.us-west-2.amazonaws.com
server_port: 465
server_address: ${{ secrets.EMAIL_SERVER_ADDRESS }}
server_port: ${{ secrets.EMAIL_SERVER_PORT || 465 }}
username: ${{ secrets.EMAIL_USERNAME }}
password: ${{ secrets.EMAIL_PASSWORD }}
subject: "Changes detected in localisation files"
Expand Down
Loading
Loading