mirror of
https://github.com/anomalyco/opentui.git
synced 2026-04-24 20:45:56 +03:00
[GH-ISSUE #423] Accessibility #107
Labels
No labels
bug
core
documentation
feature
good first issue
help wanted
pull-request
question
react
solid
tmux
windows
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/opentui#107
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @kommander on GitHub (Dec 17, 2025).
Original GitHub issue: https://github.com/anomalyco/opentui/issues/423
Currently screen readers have a hard time with TUIs. My experience making TUIs accessible is limited. I know that some terminal emulators handle it better than others.
But OpenTUI should be able to help out here, by leveraging accessibility APIs on the platform it is running and let Renderables/Elements take aria-labels and other hints that are communicated to the accessibility APIs.
@ghost commented on GitHub (Dec 17, 2025):
I would think it should be able to use windows UIA for windows screen readers. I'm not well versed in the API su I'm not sure how I can help besides testing with NVDA.
@kommander commented on GitHub (Dec 17, 2025):
Okay I read up a tiny bit on that for Windows, MacOS would be similar and I guess linux variants as well. This is roughly how I would do this:
RFC: Ship a Windows UIA “provider backend” in the native library (Win32 + COM only)
Implement a UI Automation provider that exposes the OpenTUI renderable tree as a UIA accessibility tree.
Microsoft UI Automation
Rough Architecture
WM_GETOBJECTand return a UIA provider root for that HWNDThis would map real semantics (not “terminal text reading”) and would work regardless of alternate screen / ANSI. Exposing options on all Renderables via the base Renderable to set semantics and some lower level methods on the renderer to to for example trigger UIA notifications would allow something like OpenCode to make its complex interface accessible easily, as most would come out-of-the-box.
@ghost commented on GitHub (Dec 18, 2025):
Sounds good to me. I'm happy to test once this is implomented
@ghost commented on GitHub (Dec 21, 2025):
Any progress on this so far?