Use read-only wxTextCtrl for license and credits in generic about dialog (PR #27055)

23 views
Skip to first unread message

Quin Gillespie

unread,
Sep 21, 2026, 8:09:40 PM (2 days ago) Sep 21
to wx-...@googlegroups.com, Subscribed

Replaces #27050, as discussed there.

The license and credits in the collapsible panes of the generic about dialog were shown in a wxStaticText, which keyboard and screen reader users could not Tab to. They are now shown in a read-only multi-line wxTextCtrl, so they can be focused and read line by line with the arrow keys, which matters for long licenses such as the GPL. The control is sized for its text, up to 10 lines under MSW, and scrolls for longer text.

Tested with NVDA on Windows 11, with a 40 line license: Tab moves into the text and then to the next pane header, the text can be read with the arrow keys, and Enter in it doesn't close the dialog.

One thing is still missing: the text control has no accessible name, so screen readers only announce it as "edit, read only" and users landing on it, e.g. with Shift+Tab, don't know which pane it belongs to. It should use the pane title, e.g. "License", as its name. This looks like a good first user for the SetAccessibleName() discussed in #27051, and I'd add it here once that exists. What do you think?


You can view, comment on, or merge this pull request online at:

  https://github.com/wxWidgets/wxWidgets/pull/27055

Commit Summary

  • a81d3d8 Use read-only wxTextCtrl for license and credits in generic about dialog

File Changes

(1 file)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/27055@github.com>

Quin Gillespie

unread,
Sep 21, 2026, 8:10:38 PM (2 days ago) Sep 21
to wx-...@googlegroups.com, Subscribed
trypsynth left a comment (wxWidgets/wxWidgets#27055)

Also worth noting I have no sighted people around to look at my screen at the moment, so I have no idea how this looks. Feedback welcome!


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/27055/c5769371461@github.com>

VZ

unread,
Sep 21, 2026, 8:36:02 PM (2 days ago) Sep 21
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#27055)

Don't we use the window name as fallback for screen readers? I.e. couldn't we just use "licence" or whatever as the name of the control?


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/27055/c5769577705@github.com>

Quin Gillespie

unread,
Sep 21, 2026, 8:40:37 PM (2 days ago) Sep 21
to wx-...@googlegroups.com, Subscribed
trypsynth left a comment (wxWidgets/wxWidgets#27055)

We do, but only for generic windows: when a window is created without a title, wxWindowMSW::MSWCreate() uses its name as the window text, and this is what screen readers announce (it's where "wxCollapsiblePanePane" came from when the empty pane got focus). It doesn't work for native controls like wxTextCtrl, though: the window text of an EDIT is its contents, and Windows takes the name of an edit control from the static label before it.

So I don't think there is a short-term fix here other than adding a visible label, and SetAccessibleName() looks like the way to go. I can do it next if that sounds good to you.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/27055/c5769612426@github.com>

VZ

unread,
Sep 22, 2026, 7:18:44 AM (19 hours ago) Sep 22
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#27055)

I've tested this and unfortunately it doesn't look good: the change is an improvement for the licence field, but all the other ones now show as 2-line text controls with a scrollbar which is completely unnecessary and looks weird when they contain just a single line.

We probably need to wxTE_MULTILINE only if there really are multiple lines in the control.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/27055/c5775495422@github.com>

Quin Gillespie

unread,
Sep 22, 2026, 10:16:21 AM (16 hours ago) Sep 22
to wx-...@googlegroups.com, Push

@trypsynth pushed 1 commit.

  • cecd7ff Don't use scrollbars for single line texts in generic about dialog


View it on GitHub or unsubscribe.


Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/27055/before/a81d3d8179869896d8d9e7a9ab45ea07aee2213e/after/cecd7ff13bc27665722c85c78f5d8f80f5f1d78a@github.com>

Quin Gillespie

unread,
Sep 22, 2026, 10:16:26 AM (16 hours ago) Sep 22
to wx-...@googlegroups.com, Subscribed
trypsynth left a comment (wxWidgets/wxWidgets#27055)

Thanks for testing! I've changed it so that the text controls only have a scrollbar and more than one line when the text contains multiple lines or doesn't fit into the maximal width. Otherwise they are exactly one line high, without any scrollbar, so the developers, artists etc. with short lists now look like single line text controls.

Notice that I still use wxTE_MULTILINE for them, just with wxTE_NO_VSCROLL, because single line read-only text controls can't be focused from keyboard under MSW, so they would be unreachable with Tab again. Alternatively they could be real single line controls using EnableFocusFromKeyboard() from #27054 once it's merged, if you prefer this.

As I can't see the screen, I checked the result by rendering the dialog into an image under MSW: short lists show as one line boxes and the long licence and a list of 30 translators as scrollable multiline boxes. Could you please check if it looks right to you now?


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/27055/c5778134831@github.com>

VZ

unread,
Sep 22, 2026, 6:04:08 PM (9 hours ago) Sep 22
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#27055)

I've removed the border from the text controls and I think they look fine now, so I'll merge this soon, thanks.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/27055/c5784931746@github.com>

Reply all
Reply to author
Forward
0 new messages