From: Silas S. B. <ss...@ca...> - 2016-10-24 14:43:05
|
Hi Mark, yes Alpine ships with Pico but Nano is a clone of Pico so they are functionally identical. If Pico is doing something that no screen reader is reading then that seems a bit odd, although still not going to be an eSpeak issue unless eSpeak doesn't read anything at all ever. You say it's when you try to backspace; just to clarify, was there any text there to erase? Pico just beeps if you try to backspace when you are already at the beginning of the file, and if the terminal has disabled beeps then you won't hear anything. But assuming it's not that simple, I just checked the Alpine source code and found it has rather a lot of terminal optimisation. Alpine was derived from Pine which dates back to 1989, and in those days a lot of Unix systems were accessed via remote terminals that may have been operated over telephone lines. Therefore it was necessary to reduce the number of bytes that you use to send command codes to the screen, since fewer command bytes to the screen means faster updates over the phone line. Nowadays it's more rare for programmers to worry quite so much about reducing the number of command bytes they send to a screen, since editors usually run on the local machine and when they do run remotely it will be over a faster link. So our working hypothesis is this: Alpine and Pico inherited the old 1989 code and do a lot of terminal optimisations that the different screen readers you tried are somehow unable to keep up with, whereas Nano, being a newer program, is more straightforward with what it writes to the screen and therefore easier for screenreaders to cope with. I say that without having read through all the source of each editor, but it looks vaguely like that's what it's going to be. And that also points us to a solution if you want to carry on using Alpine's Pico which is to tell Alpine that you have a different type of terminal. Back in those old days with remote terminals over the phone line, there were lots of different makes and models of remote terminal, and they had different command codes. Programs that optimise for keeping the screen commands short were forced to query what type of terminal you have and choose command codes accordingly. Nowadays you are probably doing everything on a local machine and it is in fact emulating the older terminals. The terminal emulator is probably providing a whole range of commands, equivalent to the best of the best of the old terminal equipment, and Alpine is probably using all these. But if we can tell Alpine that you are using a much simpler terminal and all those fancy commands are not available, it will force it to use a simpler set of commands that hopefully the screen readers can keep up with. Try running Alpine with a command like TERM=vt100 alpine (note the capitals in the word TERM) and see if that fixes anything. Silas -- Silas S Brown http://people.ds.cam.ac.uk/ssb22 "Do not boast about tomorrow, for you do not know what a day will bring." - Proverbs 27:1 |