Good afternoon,
I'm Devin, a screen reader user who knows maybe 0.2% of Python, so not much of a developer. However, being totally blind, I rely on screen readers 100% of the time that I use digital interfaces of any operating system.
So, since Fuchsia is a new, upcoming OS, I wanted to see if I could bring my perspective on things to hopefully give the architects of the future more input to work with. My concern is that the way screen readers work in modern OS's, like iOS, MacOS, ChromeOS, and Android, don't give themselves enough flexibility to display information as best as they could.
So, first, I'll define terms that I'll use. I don't think enough research has been done on this subject for there to be any kind of official terms, so I'll go with:
* Text reader: A screen reader that reads documents, web pages, and other text as if it were a document. They load web pages into a buffer, and change it depending on what the browser says, not particularly on what the user does within the buffer. Other textual objects are treated similar to documents as well.
* Object reader: A screen reader which treats everything, including text, as an object or "element". All paragraphs are treated as a single object. Any formatted text inside the paragraph is split into its own object, with the paragraph continuing in another object after it.
So, these are, mainly, just two different ways to read rich text or web content. A screen reader could have an object-browser mode, like NVDA's object navigation. There are consequences to having an object reader, though.
First, formatted text being split into its own object because it isn't a plain text object makes speech stop reading the paragraph as it reaches the end of that object, then speak the few words that are formatted, then start reading the rest of the paragraph. A user, such as a child learning to use a computer, would be confused as to why that word is by itself. Also with speech, with many modern text-to-speech engines, there aren't many ways to convey different formatting attributes.
If braille is used, the problem is even more noticeable. The user, when encountering the formatted text object, just reads a mostly empty line with a few words on it, depending on how much is formatted. The braille isn't even shown formatted, even though there are plenty of formatting indicators in braille.
Text readers don't always do much better, with Narrator on Windows doing the best for a modern screen reader, but Emacspeak (on Linux, Mac, and the Linux container in Chrome Books) has always done best with speaking formatting.
Object readers do have their wins, though, such as being able to play sounds based on where the object is. I hope that use of HRTF is used with speech as well, so that the user is able to position the speech somewhere besides in the middle of their head. For me, I'd love the speech to come from somewhere in front of me, making it a little easier to think about what I'm listening to while I listen. Braille is better for this kind of contemplation, but not many blind people have the luxury of owning a braille display.
I hope that my perspective has been of some help. I don't know if all this discussion has been had internally on the Fuchsia accessibility team, or if it's too early for these discussions to be held yet, but as there are already plans to build out Fuchsia into other devices and form-factors, I hope as many perspectives can be given as possible, so that accessibility can meet as many needs as possible.
Thanks all for all your hard work.