Update wxPython to 4.3.1 - #20882
Open
LeonarddeR wants to merge 1 commit into
Open
Update wxPython to 4.3.1#20882LeonarddeR wants to merge 1 commit into
LeonarddeR wants to merge 1 commit into
Conversation
LeonarddeR
force-pushed
the
updateWx
branch
from
September 22, 2026 18:35
df3c3d2 to
9abffd3
Compare
Update wxPython from 4.2.4 to 4.3.1, which is based on wxWidgets 3.3.3. Remove gui.nvdaControls.CustomCheckListBox.notifyIAccessible. Correct the note on the Edge WebView backend in gui.message.HtmlMessageDialog. Assisted-by: Claude:claude-opus-5-5
LeonarddeR
marked this pull request as ready for review
September 23, 2026 15:54
LeonarddeR
requested review from
SaschaCowley
and
a lite review from Copilot
and removed request for
Copilot
September 23, 2026 15:54
LeonarddeR
force-pushed
the
updateWx
branch
from
September 23, 2026 15:55
9abffd3 to
dc7b2a0
Compare
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The pinned wxPython release contains invalid type stubs that can break CI static analysis.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
What changed in this PR
Updates NVDA to wxPython 4.3.1/wxWidgets 3.3.3 and adapts checklist accessibility behavior.
Changes:
- Updated dependency pins and lockfile.
- Removed duplicate checklist accessibility notifications.
- Updated changelog and WebView documentation.
- Critical issue: wxPython 4.3.1 ships syntactically invalid type stubs that may break CI static analysis.
| File | Summary |
|---|---|
uv.lock |
Locks wxPython 4.3.1 artifacts. |
user_docs/en/changes.md |
Documents dependency and API changes. |
source/gui/nvdaControls.py |
Removes duplicate checklist notifications. |
source/gui/message.py |
Corrects Edge WebView documentation. |
pyproject.toml |
Pins wxPython 4.3.1. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| "cryptography==50.0.0", | ||
| "pyserial==3.5", | ||
| "wxPython==4.2.4", | ||
| "wxPython==4.3.1", |
This branch has not been deployed
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.
Link to issue number:
Closes #20700
Summary of the issue:
NVDA uses wxPython 4.2.4, which is based on wxWidgets 3.2.8.
wxPython 4.3 is the new release series, based on wxWidgets 3.3.
Description of user facing changes:
None intended.
wxWidgets 3.3 changes the default look of some controls, such as tree views.
Description of developer facing changes:
gui.nvdaControls.CustomCheckListBox.notifyIAccessibleis removed.Description of development approach:
pyproject.tomlis updated.wxname that NVDA's source code uses still exists in wxPython 4.3.1.CustomCheckListBoxsent the same event from its check handler, innotifyIAccessible. Every toggle would be reported twice, sonotifyIAccessibleand its event binding are removed.CustomCheckListBoxkeeps its own accessible object,ListCtrlAccessible, which takes precedence over the one from wxWidgets. The wxWidgets 3.3.3 implementation reports no child items to MSAA. With it, object navigation cannot reach the list items and the position information (for example "1 of 3") is lost. It also reports every item as focused and no item as selected.gui.message.HtmlMessageDialogsaid that wxPython 4.3 would allow reusing one Edge WebView configuration. This is not the case. wxPython 4.3.1 does not expose a way to create an Edge configuration from Python. The note is corrected.Testing strategy:
libcairo-2.dll. The distribution does not include it, because wxWidgets only loads it on demand for its cairo renderer.Known issues with pull request:
wx/adv.pyicannot be parsed. These are fixed in the upcoming wxPython release.Code Review Checklist: