Skip to main content


Does anyone who does #GUI programming and uses or has users who use a #ScreenReader or #BrailleTerminal have the scoop on how well Tk (the GUI toolkit of Tcl, accessed via Tkinter in Python) integrates with these tools?

I saw some references to #accessibility as an area of focus in the 8.5 roadmap, and with 9.0 out now, I'd really like to use it - but I need to be able to support screen reader users.

in reply to !!__NORA__!!

Still absolutely nothing when using the version of Tkinter shipped with Python 3.12.6 on Windows (that's what I have handy), which is using Tk 8.6. Haven't checked Tk 9 yet.
in reply to Matt Campbell

Last year, @DataTriny looked at retrofitting accessibility onto Tkinter using the Python bindings for our AccessKit project (accesskit.dev/), without modifying Tk itself. That turned out to be impractical, at least in part because, on Windows, Tk uses child window handles for some widgets. That implementation detail would also make it more difficult to implement accessibility in Tk directly.
Unknown parent

Matt Campbell
Tell me about it. The inaccessibility of Tk has been a frustration to me from time to time since 2002.
in reply to Matt Campbell

Basically the only Python GUI options we've had that are accessible across platforms are wx and Qt. And Qt has had less than perfect accessibility for a while. So blind Python programmers gravitated to wxPython starting around 2010.
Unknown parent

Matt Campbell
@alterae Yeah, just mentioned wx elsewhere on the thread. Even wx has caveats. At least as of about 10 years ago, there were two list view widgets, one of which was only accessible on Windows and the other was only accessible on macOS. So a friend of mine wrote a wrapper that used one or the other depending on platform. Yes, a wrapper on top of wx.
Unknown parent

chell (friend of eggbug)
if you're specifically looking at using python you may have better luck with wxPython, which (unlike tk) actually uses the system's native gui widgets. i haven't actually verified this myself but i _expect_ it would play better with accessibility tools as a result?
in reply to Matt Campbell

oh good lord
i mean i know the answer but why is cross platform gui such a mess
in reply to chell (friend of eggbug)

@alterae For one project in 2015, I wanted to use Eclipse's SWT because SWT seemed to have more consistent accessibility than wx. But I didn't want to do the whole app in Java; I wanted to do it in Python. So I embedded the small-footprint Avian JVM in my CPython app using pyjnius. It was a mess. And I later had to do some patches to SWT anyway. And now Avian is dead.
in reply to Matt Campbell

@alterae The Toga project from BeeWare is probably worth a look. It's just too bad they have to bring in .NET as a dependency on Windows so they can use Windows Forms. I understand, though; there are probably very few programmers left who want to work directly with Win32.
⇧