charmbracelet / charmbracelet/bubbletea

Does Bubble Tea have anything on the roadmap for screen reader accessibility?

Open
#780 5 comments 8 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
44.9k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

**Is your feature request related to a problem? Please describe.**

I have been coding with Bubble Tea since last fall, and while it is one of the most fun Go packages I've coded in, one downside I do currently see is that it is difficult to make a TUI app that is accessible for screen readers. Based on [this paper](https://dl.acm.org/doi/fullHtml/10.1145/3411764.3445544), there are multiple barriers to CLI apps being screen-reader accessible, such as the fact that even if a TUI's displayed text is structured, to a screen reader there is no apparent structure to the text being displayed like there is in HTML.

The current approach I am going with if I want to release a Bubble Tea app to the general public is to have a `--web` flag that serves a web app so that I can take advantage of accessibility features for the browser. I'm cool with making a --web version, but it would be awesome if there was a way to be able to make an accessible product all in one TUI app rather than two.

**Describe the solution you'd like**

From discussion in the Discord about this, the most promising lead I can see on TUI accessibility might be using a second buffer so that screen reader users can get structured text that includes information about the selected element.

**Describe alternatives you've considered**

For now though, I am going with the web app approach to accessibility, but I'm interested in experimenting with second buffers.

Also I don't know as much about what APIs popular screen readers expose, but if there's a way to have a Bubble Tea talk to one of those APIs, that might be another useful lead for TUI accessibility in a Bubble Tea app.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.