Re: Accessible terminal output

2024-01-29 Thread john doe

On 1/30/24 06:22, Christian Schoepplein wrote:

On Mon, Jan 29, 2024 at 08:40:07AM -0700, Sam Hartman wrote:

Neils, I think what you are about to find is that individual preference
generally dominates accessibility concerns here.


Yes.

All what I wrote is the prefered way I like to work because it is the most
simplest way for me. This does not mean, and thats what I also wrote, that
others do also like work this way. Its all a matter of personal taste.



What sighted PPLs see first (in this case at the top of your answer) is
what they will pick up on! ;^)

--
John Doe



Re: Accessible terminal output

2024-01-29 Thread Christian Schoepplein
On Mon, Jan 29, 2024 at 08:40:07AM -0700, Sam Hartman wrote:
>Neils, I think what you are about to find is that individual preference
>generally dominates accessibility concerns here.

Yes.

All what I wrote is the prefered way I like to work because it is the most 
simplest way for me. This does not mean, and thats what I also wrote, that 
others do also like work this way. Its all a matter of personal taste.

Regarding accessibility piping content into a pager or reading out the 
screen with a braille device or the navigation functions of the screen 
reader is also fine ofcourse, everything can be read and no content is 
missing.

Ciao,

  Schoepp



Re: Accessible terminal output

2024-01-29 Thread Sébastien Hinderer
Niels Thykier (2024/01/29 14:50 +0100):
> Christian Schoepplein:
> > Hi Nils,
> > 
> > [...]
> > 
> > Piping output into a pager is very uncomfortable for screen reader users
> > IMHO. [...]

I'd like to say I do not have the same feeling on that one.

Seb.



Re: Accessible terminal output

2024-01-29 Thread Sam Hartman
Neils, I think what you are about to find is that individual preference
generally dominates accessibility concerns here.


> "Christian" == Christian Schoepplein  writes:

Christian> Hi Nils,
Christian> On Sun, Jan 28, 2024 at 11:54:24AM +0100, Niels Thykier wrote:
>> In my case, my tool is not interactive. It generates text output
>> and either emits all of it on standard out or pipes it to a
>> pager. It is closer to a tool like ls than mutt in spirit. As far
>> as I know, my tool cannot control the caret of the output in any
>> meaningful way in this case.

Christian> Piping output into a pager is very uncomfortable for
Christian> screen reader users IMHO. To navigate such content you
Christian> either have to use the keys of a connected braille device
Christian> or use the screen reader commands to go through the
Christian> output. Both variants are much less good then piping the
Christian> content into a programm where the user can navigate the
Christian> output just with the normal arrow keys, like navigating
Christian> through a file in an editor, or piping the content into a
Christian> textbased browser like w3m where the content also can be
Christian> navigated by using the arrow keys.

I'd much rather have content in less than in w3m.

1) I do have my screen reader controls optimized for something I like to
use, so being able to navigate with the screen reader keys is in my mind
a plus not a minus.

2) I always have less available; I would not normally expect a text mode
browser to be available on a remote server.

3) I find pagers to be a good interface in the common case I actually
want to read the entire screen. I find the simple ":" prompt of less or
the "--more--" of more less disruptive than a status line of an editor
or browser.

For me, reading tabular output, the best advice I can give is to focus
on making the  table row elements as simple as possible.
For example separating each row element with a single pipe and spaces
rather than something more complicated.
I appreciate that the header line--or the separator between the header
and the rest of the table--may be more complicated.
That's not a big deal, but the more lines with lots of dashes I have to
work through, the more annoying.

I would definitely find pipe separated text easier to read than CSV.
Although in exceptionally complicated tables, I would find being able to
take CSV into a spreadsheet convenient.


For reasonably simple tables,  I would probably choose to read pipe
separated text rather than to take HTML5 and read it in Firefox.

I find the text output of  sqlite entirely reasonable unless the number
of columns in the table gets large enough and the data is sparse enough
that I cannot remember what column is involved.
I generally refine my query in that case rather than  turning the table
into html.

--Sam



Re: Accessible terminal output

2024-01-29 Thread john doe

On 1/29/24 14:50, Niels Thykier wrote:

Christian Schoepplein:

Hi Nils,

[...]

Piping output into a pager is very uncomfortable for screen reader users
IMHO. [...]

Ciao,

   Schoepp



Thanks for the hint, Schoepp.

This sounds like the screen reader optimized output mode should imply
disabling the automatic pager feature.

For context, the default behavior of my tool is to pipe output to a
pager if and only if 1) requested otherwise via an option such as the
--no-pager option and 2) the output stream is a identified as a
terminal. The latter means if you explicitly pipe to another program or
file, the automatic pager feature is disabled as well.

Accordingly, the your `| vim -` trick would have worked. That said, I
still want better defaults where I can reasonably provide them.

For the same reason, I have logic to rewrite man page references into
links to https://manpages.debian.org/page.section, because my
understanding was that manpages were rather difficult for users of
screen readers as well.



The above statement is way to general and only reflect one PPL.

Manpages that are  using the `man` utility are perfectly accessible
along with their online counterpart! ;^)

The best way to help someone  is when issues are reported to you

--
John Doe



Re: Accessible terminal output

2024-01-29 Thread Sebastian Humenda
Hi

Niels Thykier schrieb am 29.01.2024, 14:50 +0100:
>Christian Schoepplein:
>> Hi Nils,
>> 
>> [...]
>> 
>> Piping output into a pager is very uncomfortable for screen reader users
>> IMHO. [...]
>> 
>> Ciao,
>> 
>>Schoepp
>> 
>
>Thanks for the hint, Schoepp.

Just as a second confirmation, I do the very same, usually Vim and w3m. :)

>For the same reason, I have logic to rewrite man page references into links
>to https://manpages.debian.org/page.section, because my understanding was
>that manpages were rather difficult for users of screen readers as well.

I actually do man $1|vim -, though that breaks some of the encoding. Apart, I
like man pages. But maybe this is "hard to read" refers to the default pager
of man which is a bit cumbersome, indeed.


Cheers
Sebastian


signature.asc
Description: PGP signature


Re: Accessible terminal output

2024-01-29 Thread Niels Thykier

Christian Schoepplein:

Hi Nils,

[...]

Piping output into a pager is very uncomfortable for screen reader users
IMHO. [...]

Ciao,

   Schoepp



Thanks for the hint, Schoepp.

This sounds like the screen reader optimized output mode should imply 
disabling the automatic pager feature.


For context, the default behavior of my tool is to pipe output to a 
pager if and only if 1) requested otherwise via an option such as the 
--no-pager option and 2) the output stream is a identified as a 
terminal. The latter means if you explicitly pipe to another program or 
file, the automatic pager feature is disabled as well.


Accordingly, the your `| vim -` trick would have worked. That said, I 
still want better defaults where I can reasonably provide them.


For the same reason, I have logic to rewrite man page references into 
links to https://manpages.debian.org/page.section, because my 
understanding was that manpages were rather difficult for users of 
screen readers as well.


Best regards,
Niels



Re: Accessible terminal output

2024-01-29 Thread Christian Schoepplein
Hi Nils,

On Sun, Jan 28, 2024 at 11:54:24AM +0100, Niels Thykier wrote:
>In my case, my tool is not interactive. It generates text output and either
>emits all of it on standard out or pipes it to a pager. It is closer to a
>tool like ls than mutt in spirit. As far as I know, my tool cannot control
>the caret of the output in any meaningful way in this case.

Piping output into a pager is very uncomfortable for screen reader users 
IMHO. To navigate such content you either have to use the keys of a 
connected braille device or use the screen reader commands to go through the 
output. Both variants are much less good then piping the content into a 
programm where the user can navigate the output just with the normal arrow 
keys, like navigating through a file in an editor, or piping the content 
into a textbased browser like w3m where the content also can be navigated by 
using the arrow keys. At least I do avoid using pagers because I can not use 
the arrow keys to read the whole content.

So, instead doing a

ls -1 /dev/ | less

I prefere much more this, because in vim I easiely can navigate through the 
text just using the normal keyboard:

ls -1 /dev | vim -

Or also this:

ls -1 /dev | w3m

The same is with the output to the normal screen, not into a pager. Also 
this content has to be navigated using the screen reader functions which IMO 
is always much mor les comftable then using just the normal keyboard 
navigation.

But thats all my personal taste. I am much faster using the normal keyboard 
functions then navigating around with the screen reader or a braille 
device. Im sure other blind people work completely different...

Ciao,

  Schoepp



OT: Re: Accessible terminal output

2024-01-28 Thread john doe

On 1/28/24 22:09, Sébastien Hinderer wrote:

john doe (2024/01/28 21:33 +0100):

Generaly speaking, what is machine readable is screenreader friendly
(JSON/YAML).
To me, it's more importent to have an extensive documentation explaning
what a text file output contains than spending time on getting the
"correct" output.


I'd say it also depends on the kind of output. For example, I am very
happy with the currentoutput of `git status` and I am not sure I
wouldwant it to be in any structured format like JSON or YAML.

Not to say these formats are a bad idea in general, but rather that they
may not always be the best choice.




With regard to git status, you are talking about human readable output
while I'm talking about machine readable output (porcelain)! ;^)

Anyway, the OP will choose what is best in his case!

--
John Doe



Re: Accessible terminal output

2024-01-28 Thread Sébastien Hinderer
john doe (2024/01/28 21:33 +0100):
> Generaly speaking, what is machine readable is screenreader friendly
> (JSON/YAML).
> To me, it's more importent to have an extensive documentation explaning
> what a text file output contains than spending time on getting the
> "correct" output.

I'd say it also depends on the kind of output. For example, I am very
happy with the currentoutput of `git status` and I am not sure I
wouldwant it to be in any structured format like JSON or YAML.

Not to say these formats are a bad idea in general, but rather that they
may not always be the best choice.

Seb.



Re: Accessible terminal output

2024-01-28 Thread john doe

On 1/27/24 22:18, Niels Thykier wrote:

Hi,

(Please CC on replies as I am not subscribed)

I am looking for advice on how to make the terminal more accessible.

The context is that I have a terminal program sub-commands. For some of
them, I currently render an ASCII table sometimes with unstructured
notes following it as legends for users without visual impairments -
usually piped to a pager like less.
   Though this formatting is almost certainly not accessible to screen
readers. I imagine it would be something like "PLUS, 50 times DASH,
PLUS" and so on for the divider lines.

I tried searching for terminal output accessibility and I cannot find
any useful advice among the search results. So I thought I would ask
here if you have any recommendations or guides I can follow.

So far, IRC suggested to provide an alternative formats like CSV or
HTML5, which the user could redirect to a file and then process in a
tool of choice that would be accessible to them. Do you have any other
recommendations for terminal output to support visually impaired? Like
should the tool disable ANSI color and boldface output to avoid creating
confusing output?

Thanks for your support.



Generaly speaking, what is machine readable is screenreader friendly
(JSON/YAML).
To me, it's more importent to have an extensive documentation explaning
what a text file output contains than spending time on getting the
"correct" output.

--
John Doe



Re: Accessible terminal output

2024-01-28 Thread Sébastien Hinderer
Just to add one thing:

Sébastien Hinderer (2024/01/28 12:10 +0100):
> At the very least, if you want to embelish your output, it would be nice
> if there is a mode where this embelishment can be disabled, either
> through a command-line option, an environemnt variable or a directive in
> a configuration file. Basically have at least one output that would be
> easy to parse by a script.

Here my «parse by a script» also includes easy to filter with tools like
grep or other classical information extracting  tools.

Seb.



Re: Accessible terminal output

2024-01-28 Thread Sébastien Hinderer
Niels Thykier (2024/01/28 11:54 +0100):
> Thanks, I get what you mean now. :)
> 
> In my case, my tool is not interactive. It generates text output and either
> emits all of it on standard out or pipes it to a pager. It is closer to a
> tool like ls than mutt in spirit. As far as I know, my tool cannot control
> the caret of the output in any meaningful way in this case.

Indeed the caret thing feels irrelevant then.

One suggestion, though, is to avoid as much as possible the embellishing
characters and any unnecessary Unicode fanciness because that will
likely make the output of the tool harder to read on a braille display;
At the very least, if you want to embelish your output, it would be nice
if there is a mode where this embelishment can be disabled, either
through a command-line option, an environemnt variable or a directive in
a configuration file. Basically have at least one output that would be
easy to parse by a script.

Seb.



Re: Accessible terminal output

2024-01-28 Thread Niels Thykier

Samuel Thibault:

Niels Thykier, le sam. 27 janv. 2024 23:10:08 +0100, a ecrit:

Samuel Thibault:

One thing that is important for the screen reader to know what to render
is to put the caret on the item that matters.


I have trouble with this one. Can you provide an example that would work in
the terminal or a command that does this well?


It wholy depends on how you emit your output. In curses terms it's a
question of using move() to set the coordinates of the carte.

Samuel


Thanks, I get what you mean now. :)

In my case, my tool is not interactive. It generates text output and 
either emits all of it on standard out or pipes it to a pager. It is 
closer to a tool like ls than mutt in spirit. As far as I know, my tool 
cannot control the caret of the output in any meaningful way in this case.


Best regards,
Niels



Re: Accessible terminal output

2024-01-27 Thread Sébastien Hinderer
Hi,

To (try to) complete what Samuel has written...

Niels Thykier (2024/01/27 23:10 +0100):
> > One thing that is important for the screen reader to know what to render
> > is to put the caret on the item that matters.
> 
> I have trouble with this one. Can you provide an example that would work in
> the terminal or a command that does this well?

The shell, for one. Whenyou type, the caret is where you are editting. I
admit it's trivial.

For a less trivial one take the mutt email client which can exhibit
boththe "wrong" andthe "right" behaviours depending on whether the
"braille_friendly" variable is unset (wrong behaviour) or set (right
behaviour). In the index (list ofemails), if braille_friendlyis not set,
the currentlyselected mail will be shown eithr withattributes, or with a
"->"marker on thecorrespondinglinewhereas the caret will remain at the
bottom right of the screen. If braille_friendlyis set, on thecountrary,
the caret will always be on the selectedemail, i.e. the one that would
be displayed in thepager if you press enter, theone towhich you'd
respond by pressing r, etc.


> 
> The only two examples I can come up with are either using accented
> characters like combining ^ and a into â, which visually looks like putting
> a "caret on the item" or underling a word with ^ symbol, which is how modern
> c-compiler high lights the part of the code that is causing issue.

Ah, ifyou want to highlight this kindof thextthen I'd suggest to rather
surround it by markers, rather than underline it because that willbe
easier to detect for braille readers wich have a hard time to figure out
vertical alignments.

> However,
> I suspect both of these are visualizations and therefore not useful in
> practice. Furthermore, my web searches does not seem to find the phrase. I
> end up in HTML guides or caret browsering. None of which seem to apply to
> terminal command output.

It's true that the underlining is not that easy but still not completely
unusableeither.

Hth and thanks a lot for caring,

Seb.



Re: Accessible terminal output

2024-01-27 Thread Samuel Thibault
Niels Thykier, le sam. 27 janv. 2024 23:10:08 +0100, a ecrit:
> Samuel Thibault:
> > One thing that is important for the screen reader to know what to render
> > is to put the caret on the item that matters.
> 
> I have trouble with this one. Can you provide an example that would work in
> the terminal or a command that does this well?

It wholy depends on how you emit your output. In curses terms it's a
question of using move() to set the coordinates of the carte.

Samuel



Re: Accessible terminal output

2024-01-27 Thread Niels Thykier

Samuel Thibault:

Hello,

Giving a very small answer here.

Niels Thykier, le sam. 27 janv. 2024 22:18:23 +0100, a ecrit:

Like should the tool disable
ANSI color and boldface output to avoid creating confusing output?


Screen readers just ignore colors & bold/italic :)



Thanks. :)


One thing that is important for the screen reader to know what to render
is to put the caret on the item that matters.

Samuel


I have trouble with this one. Can you provide an example that would work 
in the terminal or a command that does this well?


The only two examples I can come up with are either using accented 
characters like combining ^ and a into â, which visually looks like 
putting a "caret on the item" or underling a word with ^ symbol, which 
is how modern c-compiler high lights the part of the code that is 
causing issue. However, I suspect both of these are visualizations and 
therefore not useful in practice. Furthermore, my web searches does not 
seem to find the phrase. I end up in HTML guides or caret browsering. 
None of which seem to apply to terminal command output.


Best regards,
Niels



Re: Accessible terminal output

2024-01-27 Thread Samuel Thibault
Hello,

Giving a very small answer here.

Niels Thykier, le sam. 27 janv. 2024 22:18:23 +0100, a ecrit:
> Like should the tool disable
> ANSI color and boldface output to avoid creating confusing output?

Screen readers just ignore colors & bold/italic :)

One thing that is important for the screen reader to know what to render
is to put the caret on the item that matters.

Samuel



Accessible terminal output

2024-01-27 Thread Niels Thykier

Hi,

(Please CC on replies as I am not subscribed)

I am looking for advice on how to make the terminal more accessible.

The context is that I have a terminal program sub-commands. For some of 
them, I currently render an ASCII table sometimes with unstructured 
notes following it as legends for users without visual impairments - 
usually piped to a pager like less.
  Though this formatting is almost certainly not accessible to screen 
readers. I imagine it would be something like "PLUS, 50 times DASH, 
PLUS" and so on for the divider lines.


I tried searching for terminal output accessibility and I cannot find 
any useful advice among the search results. So I thought I would ask 
here if you have any recommendations or guides I can follow.


So far, IRC suggested to provide an alternative formats like CSV or 
HTML5, which the user could redirect to a file and then process in a 
tool of choice that would be accessible to them. Do you have any other 
recommendations for terminal output to support visually impaired? Like 
should the tool disable ANSI color and boldface output to avoid creating 
confusing output?


Thanks for your support.

Best regards,
Niels