Nixpkgs: Accessibility: blind user unable to install nixos

Created on 24 Oct 2017  路  10Comments  路  Source: NixOS/nixpkgs

Background

We recently had a user on the IRC channel who couldn't get nixos working in qemu because syslinux and later on systemd-vconsole-setup insisted on setting graphical modes, which cannot be used with qemu's -display curses. (log at https://botbot.me/freenode/nixos/msg/92631760/ )

I eventually worked out that using -nographic for qemu gets grub to run in text mode, which allows editing the command line to add console=ttyS0 and using the installer in text mode. I wasn't able to help the user with this because they had already left, however.

Suggestions

It would be good to consider accessibility more overall. Some changes I think would be sensible:

  • Make sure the bootloaders for the installer run in text mode

    • I think systemd-boot uses text mode? I don't know enough about EFI to know if there is even a text mode for EFI.

    • The graphics displayed by syslinux aren't even very pretty! We could really disable that IMHO.

  • Allow disabling systemd-vconsole-setup, and disable it by default in the installer. Document the option in the generated config, and suggest systemctl start systemd-vconsole-setup in the installation instructions in the manual for sighted people.
  • Enable a console on the serial port by default? I don't see any downside to this, but I don't know much about it either.

These steps are pretty simple and should make installing nixos a lot easier on vision-impaired users as far as I understand. Any thoughts?

enhancement user experience

Most helpful comment

Cross-referencing issues

  • #42255 will help with regard to the console
  • #33686 adds the concept of "accessibility and quirks" submenu for EFI installer; with proper knowledge of the requirements for such users, it may be possible to add the required options.

All 10 comments

I don't think we should disable systemd-vconsole-setup by default -- it's needed to display non-English glyphs. Rather, we definitely want to open a console on a serial port -- if I understand the user's story correctly, they could use it instead without problems. Also, making bootloader text-only sounds good to me.

EDIT: that being said, I don't think we have much of accessibility support in NixOS which would be a nice thing to have (not even sure where to start and how accessibility is done on Linux in general)...

IIRC if you add console=ttyS0 console=tty0 to the bootargs it would work both ways (i.e. serial AND the screen) by default, with the stage-1 output going to the screen (tty0).

Using the console parameter works. Note that on Hypervisor consoles (hvc0) our systemd automatically starts a getty. This behaviour is a little inconsistent.

Since most of our bootloaders (grub2 & syslinux/isolinux tested, systemd-boot probably not?) are also opening a serial console by default it would make sense that we do so too.

Cross-referencing issues

  • #42255 will help with regard to the console
  • #33686 adds the concept of "accessibility and quirks" submenu for EFI installer; with proper knowledge of the requirements for such users, it may be possible to add the required options.

hi there,
not sure if this is still open?
but heres to what is required to get things in regard to accessibility going,
if the iso has a live session that is boots in to a desktop, then having the folowing packages installed would assist greatly.
orca, the screen reader
speech-dispatcher required
espeak
required for the next piece of software
espeakup
enables speech on the consol
e.g tty1.
note, you would have to enable espeakup.service via systemd.
another note, i'm blind myself.
there is espeak-ng but it is not compatable with espeakup for some reason,
pulseaudio also required.
the best desktop for accessibility is the mate-desktop currently,
maybe spinning an iso with these changes to see if it would function?
what is the installer gtk, qt?
I hope this is enough information?
how does the text based installer work?
is it a menu driven installer?
e.g
choose desktop enviroment,
1, mate, 2, gnome, 3, lxqt etc?
I hope this is of help?
Majid

hi again,
also to inhance mate's accessibility settings a file must be created named what ever you wish,
access.sh, accessibility.sh who cares,
but it must have the folowing content in it,
i'm currently on debian so ajust to nixos,

if [ "x$DESKTOP_SESSION" = "xmate" ] || [ "x$XDG_SESSION_DESKTOP" = "xmate" ]; then
# Ensure GTK accessibility modules are active.
if [ -z "$GTK_MODULES" ] ; then
GTK_MODULES=gail:atk-bridge
else
GTK_MODULES="$GTK_MODULES:gail:atk-bridge"
fi
export GTK_MODULES
fi

that file needs to be made executable,
I hope this also helps,
Majid

Hi Majid, thanks for your input! We don't have a menu-driven installer, it's mostly a matter of:

  1. Setting up partitions and mounting them manually
  2. generating a hardware-configuration.nix file (this is done by running nixos-generate-config)
  3. Adjusting the template configuration file (written in the nix language) to your liking
  4. Running nixos-install

It's all still a relatively manual procedure and will go at least partly through the terminal, regardless of whether the minimal or graphical iso is used. The main difference I can think of is that the graphical one allows using a graphical partition editor like gparted and graphical text editor like gedit. I think in that respect console-based installation might work better? Of course, we'd need to go beyond just getting the installation working and make sure the installed OS is usable without vision as well. I don't really have any experience with accessibility in general unfortunately, but maybe getting a screenreader on the consoles (and the option in the example configuration for installation) would be a good first step?

arr,
indeed!
installing espeakup along with it's friend espeak would work i think,
speech-dispatcher encluded.

On 16/04/2020, Linus Heckemann notifications@github.com wrote:

Hi Majid, thanks for your input! We don't have a menu-driven installer, it's
mostly a matter of:

  1. Setting up partitions and mounting them manually
  2. generating a hardware-configuration.nix file (this is done by running
    nixos-generate-config)
  3. Adjusting the template configuration file (written in the nix language)
    to your liking
  4. Running nixos-install

It's all still a relatively manual procedure and will go at least partly
through the terminal, regardless of whether the minimal or graphical iso is
used. The main difference I can think of is that the graphical one allows
using a graphical partition editor like gparted and graphical text editor
like gedit. I think in that respect console-based installation might work
better? Of course, we'd need to go beyond just getting the installation
working and make sure the installed OS is usable without vision as well. I
don't really have any experience with accessibility in general
unfortunately, but maybe getting a screenreader on the consoles (and the
option in the example configuration for installation) would be a good first
step?

--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/NixOS/nixpkgs/issues/30760#issuecomment-614725423

--
kind regards,
Majid Hussain

Hello, I'm a bot and I thank you in the name of the community for opening this issue.

To help our human contributors focus on the most-relevant reports, I check up on old issues to see if they're still relevant. This issue has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.

The community would appreciate your effort in checking if the issue is still valid. If it isn't, please close it.

If the issue persists, and you'd like to remove the stale label, you simply need to leave a comment. Your comment can be as simple as "still important to me". If you'd like it to get more attention, you can ask for help by searching for maintainers and people that previously touched related code and @ mention them in a comment. You can use Git blame or GitHub's web interface on the relevant files to find them.

Lastly, you can always ask for help at our Discourse Forum or at #nixos' IRC channel.

Still valid

Was this page helpful?
0 / 5 - 0 ratings