Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I recommend using a tiling window manager - they allow you to organize windows logically, rather than spatially.

I have also written some plugins for using Vim (text editing) and Weechat (IRC chat) with speech synthesis:

https://git.sr.ht/~sircmpwn/dotfiles/tree/master/lib/vim/vim...

https://git.sr.ht/~sircmpwn/dotfiles/tree/master/.weechat/py...

And I have a script for Sway (a tiling window manager) which also gives you audible cues:

https://git.sr.ht/~sircmpwn/dotfiles/tree/master/bin/swaytal...

All of this is somewhat incomplete, but it's a good starting point if you want to get used to them and work on improvements while you're still sighted. Good luck, and let me know if I can be of service.



Are you sighted?


Not perfectly, and not for long. I wear glasses, but they only do so much, and my vision worsens every year. I use some light assistive technologies on the daily - higher contrast, large fonts, zooming in on things. To test the tools I linked to, I spend the occasional workday with all of my monitors turned off, relying on these tools to get work done. I also have a braille reader that I occasionally pull out.

I have a different philosophy and approach to using computers than most, and that affects my views on accessibility. Stapling a screenreader onto a graphical application, for example, to me seems like the wrong approach. Text-based applications are much more accessible, and these are my bread and butter. To this end, my work on accessibility involves making more information available as text, organized logically rather than spatially, and making it easier to access and manipulate that information with vision impairments (and other sorts of impairments, too).


As someone preparing for this, too, I still have no clue on how to rasterize the code quickly. Voice always feels inefficient and braille feels like a joke when it comes to the amount of information being displayed. Do you have suggestions? Do you transpile code?

I also use VIM because it feels like the best case of voice integration or braille integration...but I have no source for how to actually do this properly. Are there good reading materials on this?

Currently I am trying to build a semantic web browser, also with the intention to filter out all legacy crap CSS that prevents interaction with the content [1] and the idea of being able to train CNNs with the content... but when it comes to code, my memory of it seems to suck so hard that I always have no clue of what I wrote the day before.

[1] still alpha as hell: https://github.com/cookiengineer/stealth

(Also a long time observer of your work here. You are one of the good guys. Stay awesome!)


Even with the aid of sight, I don't read an entire codebase at once. I follow the logic, a few lines at a time, as it moves through the parts I'm interested in. I use grep to find the things I ought to read. With this approach, I build a mental model of the codebase quickly, with lots of blanks - but with detail in the areas I'm focusing on.

As for how to actually rig up braille readers on Linux, check out BRLTTY. It's pretty straightforward. I was working on an Alpine Linux spin which was more accessible out of the box, but I got discouraged by various circumstances and shelved it.


I think your use of the term "braille reader" might be causing some confusion. I know you use brltty. But do you use its text-to-speech output, or do you use a refreshable braille device that moves little pins up and down to form braille cells? If the former, I'd suggest referring to brltty as a screen reader.

Also, do you run brltty on a Linux text console, or in a terminal window in your Sway session?


I use a refreshable braille display. I use it mainly on the Linux console, but I've been thinking about rigging something up for use with Sway.


Wow, I underestimated your seriousness about adapting to alternate output methods. Did you have to buy that braille display at your own expense? As I'm sure you know, they're expensive. How recently did you start learning braille? Has it been a challenge for you to learn to read it with your fingers?


I bought a cheap used one off of eBay, it wasn't too expensive - a few hundred bucks. I know that nicer ones can get up there, though. Learning braille was an unusual challenge, but I didn't find it especially difficult. It only took a couple of days to become reasonably proficient with it. The braille display I ended up with is pretty nice despite its price tag, it has a good finger-feel to it and has a nice set of basic features.

The most difficult thing for me would be learning advanced levels of braille, which involves memorizing shortened forms of many words, but I reckon I can get away with just using long-form for a good long while.


> I also use VIM because it feels like the best case of voice integration or braille integration

Check out Emacsspeak: http://emacspeak.sourceforge.net/

It’s written by T.V. Raman, a blind engineer at Google by way of Cornell.

Among other things, with it you can just use the built-in Emacs browser!


Would you be willing to chat privately with a colleague of mine going through a similar lost of sight transition?


(BTW, stealth sounds awesome!)


Thank you :3 It’s still a ton of work. I heavily underestimated the networking and parsing part...and had to invent a testrunner that can test networking implementations with known buggy situations (e.g. simulate fragments like on 2g slow mobile situations).

I totally switched my workflow to Test Driven Development due to the last 6 months parsing CSS and http1.1 responses.

It’s amazing how much server infrastructure violates w3c specs and recommendations. Something like partial content (206) is mindblowingly crappily implemented on servers these days when it comes to keep alive sockets and multiple range requests. Some servers reply only with chunked encodings, even for frames with less than 256 bytes (looking at you, cloudflare dns), some only send back a single stream...some just send back ranges without headers...

And I only support http1.1 as of now, because http2 and 3 are both kinda undebuggable and there’s no reference-class testsuite to test against implementations.


That sounds brutal!

Still, it seems like a very worthwhile project. I'm fed up with modern browsers myself (the "megabar" on Firefox 75 is, somehow, the last straw for me.)

I'm going to keep an eye on Stealth because it sounds like the perfect browser/proxy engine for an experimental UI I'm working on.

Cheers! Good work and good luck. :)


On the days that you turn your monitor off, how do you do email? Do you also have a speech synthesis plugin for your aerc email client? Or do you use it with a generic screen reader for terminals? If the latter, which screen reader?

I've found that, counter-intuitively, a fully accessible GUI program with a good GUI screen reader is easier to use than a screen-oriented terminal program with a screen reader. The trouble with the latter is that the user has to understand visual concepts like highlighting, the meaning of special characters, etc.

Of course, an application or plugin that's tailor-made for doing a particular task with speech output is better than either of those other choices -- as long as you don't have to use an application that's overall inferior (e.g. using the Emacs/W3 web browser with Emacspeak as opposed to a mainstream browser).


>On the days that you turn your monitor off, how do you do email?

Poorly. I want to improve aerc in this respect. For the time being, I use a mix of my braille reader (brltty) and piping emails into vipe so I can use my vim plugin to read them.


Have you ever used a conventional GUI screen reader? Something like NVDA for Windows, VoiceOver for Mac or iOS, Talkback for Android, or Orca for GNOME? Reading a web page or an HTML email with one of those might give you a different perspective on what's possible, and specifically, how much better the experience of reading a hypertext document with a screen reader can be, compared to something like BRLTTY.


I have used Orca, and I can't stand it. The main advantage is a global place to route text for speech synthesis, but I simply hate using screenreaders to use applications which are not designed with accessibility in mind. There are few better solutions for browsing the web, though. I've been meaning to try lynx with brltty.


> I simply hate using screenreaders to use applications which are not designed with accessibility in mind.

I can understand that. I think many of us have just accepted that it has to be this way, because we're a minority and we want to have all of the advantages of using mainstream applications (economies of scale, active development, not being at an extra disadvantage compared to sighted peers, etc.).

Of course, you don't fit the profile of a "mainstream consumer" when it comes to computers. In particular, I gather that you take full advantage of the hackability of free software. So using custom TTS plugins as opposed to a clunky generic screen reader is just an extension of that overall approach to using computers.


If Orca is the only GUI screen reader you have tried, I can understand you being put off. Try NVDA on Windows with Firefox and you'll never look back. NVDA is open source btw.


I would strongly recommend switching to Windows - the screen readers are just so much better than anything on Linux. I agree with the other person who said that GUI programs are easier to use with a screen reader. At least on windows, this is definitely the case.


You know that Drew is the maintainer of sway, right? I don't think switching to Windows is an option here :P


From my experience, using the web in lynx or with emacspeak isn't an option in 2020. You just have to have a modern browser in conjunction with a well maintained screen reader. I wish I could use linux for everything, but if I want to be productive on the web I have to use Windows.


> From my experience, using the web in lynx or with emacspeak isn't an option in 2020.

Even 20 years ago the limitations of those options were clear to anyone who was willing to face reality. I was in denial for a while. (Note: I have limited vision, but I spent a lot of time helping blind people use Linux back then.)

Of course, Lynx and Emacs/W3 aren't the only alternatives. I think an interesting option would be a specialized browser UI based on headless Chromium.

In any case, I'm guessing Drew won't give up his free-software ideals easily, if at all. And he's a capable enough hacker that I'm sure he'll come up with a solution that works well for him.


I would love to read more about this in your blog! Sway is my daily driver and I love it!


It seems like this level of organization would be beneficial to the sighted community as well. Is this a value that you use to market to customers?


Yes.


Which do you prefer, screen-readers or braille readers? Also, how long did it take you to be able to feel the braille effectively?


I don't like screen readers, but I liked teaching applications to speak themselves based on text commands. I like to combine this with a braille reader and use both in different contexts. For example, a braille reader is more unambiguous with punctuation, capitalization, etc, but speech synthesis is necessary to catch my attention for a notification from a non-active application, and is more comfortable for reading natural language. It's worth reiterating, though, that I don't need these tools (yet), so people who depend on them daily may have a different opinion.

Braille is easy, I could read it reasonably well with just a couple of days of study.


Would you be willing to chat privately with a colleague of mine going through a similar lost of sight transition?


As a side note, weechat runs beautifully in Docker. I access it with Glowingbear but though a terminal it would also be trivial.


Rob Pike's Acme editor is another powerful tiling editor you can check out.


As a huge fan of Plan 9, I would strongly recommend against acme for visually impaired users. It's highly mouse-driven, requiring a spacial understanding of the interface and the ability to see where the mouse is and coordinate its movement to execute commands.


Good point - didn't think that through enough before recommending.

Just thought of as nice tiling editor.


Thoughts on Sam? It seems to me like it might be a much better fit, esp. given the ed-like command only mode. (And I always liked it better than acme anyway...)




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: