>> Alice: Hi, I'm Alice Merrick. I'm a user experience researcher at Google.
My co-author, Harini Sampath, will be presenting with me.
With the popularization of graphical interfaces in the 1980s, you might be
wondering, why in the 2020s, are we still talking about command-line interfaces?
While they might have fallen out of favor among end users,
they are still an important tool for developers and system administrators.
When we talk about screen reader accessibility, typically we’re talking about the accessibility
of graphic user interfaces, where the intent is to make sure that all
non-text elements have text descriptions and everything is keyboard accessible.
CLIs are text based interfaces. So they inherently have
these two properties. But does it mean they are accessible?
In trying to find an answer, we realized that there is no existing research around accessibility
of command line interfaces. So we conducted two studies to better understand CLI accessibility.
The first study was a set of semi-structured remote interviews with six developers
who use CLIs and screen readers. We asked participants about assistive technology usage,
code development practices, and the issues they faced with using CLIs.
In the second study, six developers used a CLI for two weeks and completed four
tasks. After each task, they recorded their experiences,
and then we had a final interview reflecting on the accessibility of working with CLIs.
Now I'm going to hand it over to Harini to talk about our findings.
>> Harini: Thanks, Alice. So what did we find from these two studies? CLIs have
their own set of accessibility issues. We will go through a couple of examples of them here.
The most important accessibility issue is even though CLIs are text based-interfaces,
they are unstructured text-based interfaces. A great example of this is tables in a CLI output.
The output of many commands would visually look like a table with headers, rows and columns.
However, this is unstructured text and one cannot parse this as a table.
You cannot go to a particular row or column and get the data there. Instead you would
have to scan this character by character to get to the information you are looking for.
Sometimes it can take multiple passes to learn the structure of the table and then get a particular
piece of information within that structure. Let us look at what this experience is like:
>> Screen reader: These components will be updated Component version size Big Query
command line tool two point zero point thirty-six less than one megabyte Cloud SDK core libraries
two thousand eighteen point ten point twenty-six eight point seven megabytes
Cloud Storage command line tool four point three four three point five megabytes.
>> Harini: Even though this is a very small table compared to
what people usually see in a CLI output, there are a lot of things to remember here.
Let's look at another example. Another typical accessibility issue that
participants reported in our study is the lack of proper status indication.
Some CLIs have the convention that a silent return is success,
some do not provide status indication at all, and even when available the status indicator might
not be very screen reader-friendly. Let us hear what such a status indicator would sound like:
>> Screen reader: [synthetic speech] Updating service default working Braille pattern dots
working Braille pattern dots working Braille pattern dots working Braille pattern dots working.
>> Harini: Now, that's not a useful screen reader indicator
in a way of letting you know what is happening. In our paper, we provide recommendations
to address some of the common CLI accessibility issues. For instance, a flattened table where
the table is rendered as a set of key-value pairs instead of rows and columns, is easier to consume.
Users don't have to spend so much time learning the structure of the table.
Another example is a screen reader-friendly status indicator,
which can make it easier to comprehend what is happening. Let's see what it sounds like:
>> Screen reader: [synthetic speech] Uploading file zero percent ten percent twenty percent
thirty percent forty percent
>> Harini: This is easier than hearing, "dots dots dots and dots."
You can find more examples of CLI accessibility
issues and recommendations on building accessible CLIs in our paper. Thanks for your time.