[Clients] Gemini and accessibility regarding preformatted code blocks

Devin Prater r.d.t.prater at gmail.com
Thu Feb 25 19:42:42 GMT 2021

Hi all. I hope this comes across okay; this is my first time posting on this list. I have only been using, and writing for, Gemini for a few weeks now, but I wanted to give my thoughts, more officially than my ramblings on Mastodon, about it. This mainly just concerns clients, as I don’t have a problem really with the spec, just the assumptions made about preformatted blocks, and how they’ve been handled in clients.

I am a blind person who is interested in all kinds of different ways of working with text and writing. I’ve written in Markdown, Org-mode, tried LaTex but found it just about as verbose to write as HTML, and thought about Restructured Text but the advanced stuff in it looked a lot like HTML too. Anyways, I got into Gemini because of the simplicity. I loved the idea of basically a Markup language being the pure writing method of an entire site. No static site generator needed, just directories of linked plain text files. No CSS, no JavaScript, no Liquid or or shortcakes or anything.

So, I started looking at the spec for GemText. Links one on each line, I could do that. No italics or bold, but people are used to seeing *this* anyways, or even /this/ for better ergonomics (for me anyways) and Org-mode fans. No tags to worry about, either!

But then we get to preformatted blocks, and the dreaded Ascii graphics. This is what I’ve always disliked about all plain text mediums. MUD’s use Ascii maps and compass and all that. Gopher uses Ascii graphics. And now Gemini too. Sure, it’s wrapped up in a pretty block, but as I’ll discuss in a moment, that isn’t necessarily helpful.

Screen readers are not smart. They speak whatever the operating system or application exposes to the accessibility API’s. Sure, the spoken, or brailled, output can be arranged or massaged slightly, but whatever is there is what will be spoken, from left to right, top to bottom. Some screen readers, like NVDA and JAWS, and Orca to some extent, do try to massage the data of websites to make them easier to use or to fix accessibility issues that the web developer won’t or can’t, but there’s a line they try not to cross between scripting things to work better and making up a whole new interface for something when the UI developers don’t consider accessibility. Even if the block is labeled, it’s still text, and the screen reader will do what it does, read all of it.

So, this is where client creators come in. Gemini clients should have a way to hide preformatted blocks, or fold them, or if they are a GUI client, like GemiNaut, which shows the Gemini text in n HTML-like area, map the blocks to a frame, so that screen readers can skip them.

So far, neither Elpher, for Emacs, or Elaho, for iOS, even show Alt Text in preformatted blocks, even if that Alt Text is there. I know this is a new standard, and one that isn’t finalized yet, but I do hope that browsers focus on accessibility and start things off well, so that Gemini doesn’t turn out like the web with unlabeled images everywhere and controls on web apps that are hard to use and unlabeled. I hope that Gemini can show the world what a good group of people, a great standard, and programmers who care about making Gemini as easy and delightful to access can do to make things just that much better.

Now, this isn’t to say that Gemini is bad for accessibility. I love being able to get right to the content of a page *quickly* because there are no sidebars, no top navigation links, no ads, no frames, no nonsense. It’s like having the whole web in reader view, with only useful or important links at the bottom or somewhere out of the way. I *love* that about Gemini, and it’s why I read it on not only my laptop with Emacs, but on my iPhone too. So thank you all for this great way to read and write on the Internet! For those interested, my Gemini site is at:

=> tilde.pink/~devinprater/

Devin Prater
r.d.t.prater at gmail.com

More information about the Gemini mailing list