The builder's path
For: Screen-reader users in JupyterLab aren't told when things happen on screen, because the app has no shared way to announce them.
“The true creator is necessity, which is the mother of our invention.”
Routes to a solution
Each route is a different kind of journey, with real people and organisations to contact at each step, starting with those in every country.
Step 1
Build in the open
Publish the code and invite contributors from the community.
Let the people a free tool helps fund its maintainer directly.
Raise and spend money in the open for a community project.
Grants for open source that makes the internet better.
Network of civic tech groups in many countries; find the one near the problem.
Step 2
Fund the maintainers
Sponsors, collectives and open source grants.
Let the people a free tool helps fund its maintainer directly.
Raise and spend money in the open for a community project.
Grants for open source that makes the internet better.
Network of civic tech groups in many countries; find the one near the problem.
Step 3
Get it adopted
Civic tech groups and public bodies take it up.
Y Combinator's free course and co-founder matching.
Raise and spend money in the open for a community project.
Network of civic tech groups in many countries; find the one near the problem.
Volunteer data scientists working with social-sector organisations.
Ideas, sources and tools for this problem, from first interviews to funding.
how screen readers pick up announcements
an existing API the issue suggests matching
how plugins and tokens work
reviewed the earlier attempts and wrote the proposal
Starter prompt
Built from this problem's brief. Paste it into Claude or any AI assistant.
Help me design and build a first working prototype for this problem in Anywhere. Problem: Screen-reader users in JupyterLab aren't told when things happen on screen, because the app has no shared way to announce them. Who it hurts: Students, researchers and data scientists who use JupyterLab with a screen reader. The moment it hurts: When a cell finishes running or a status changes and nothing is read out. What people do today: Earlier pull requests, still open, each wrote directly to the page to trigger announcements. Why it is still unsolved: Reviewers want one shared, configurable service rather than repeated one-off code. What solved looks like: A JupyterLab plugin with a public announce() function and settings to turn announcements off and set a delay, old messages cleared automatically, and at least one real feature using it. Tested with NVDA and VoiceOver. Where: Anywhere First, list what you would need to learn from the people affected before building, as interview questions. Then propose the simplest version that would help, the screens or messages it needs, and the data it would use. Keep it cheap to run, accessible, and respectful of people's privacy. Flag anything you are unsure about instead of guessing.
Talk to the people who live it before you build.
“Arise, awake; seek out the wise and learn.”
उत्तिष्ठत जाग्रत प्राप्य वरान्निबोधत
uttiṣṭhata jāgrata prāpya varān nibodhata
Get a working version in front of people fast.
Using AI is not cheating. Every tool carries the work of the people who made it, and using it well is how knowledge has always moved forward. The thinking, the care for the people who live the problem, and the judgement are still yours.
“The Analytical Engine weaves algebraical patterns just as the Jacquard-loom weaves flowers and leaves.”
Open data that fits this problem.
“The first principle is that you must not fool yourself, and you are the easiest person to fool.”
Tools matched to what this problem needs.
“That which is an obstacle on the road helps us on this road.”
Ship it responsibly, and find help and funding.
“While we teach, we learn.”
Homines dum docent discunt.
Kit written for this problem from its brief; every link was checked. Links go to each provider's own site. Zetema is not paid for any listing.