hterm: Improve accessibility command output

This improves accessibility command output in several ways:
1) Rather than using multiple elements for rendering the output to a
live region, instead we use a single <p> element which we manipulate the
aria-label attribute of. This is far more performant than the existing
solution. Because of this, it's no longer necessary to limit the amount
of output that we add per iteration which also simplifies logic.
2) As a result of the above change, it's necessary to introduce the
additional step of clearing the previous value of the aria-label prior
to setting its new value. This is necessary so that if the same string
is repeated multiple times, the screen reader will actually register it
as an attribute change. This adds an additional delay between iterations
however this can be optimized later if necessary.
3) Rather than inserting newlines between all strings passed to
announce() we instead only do this when there is actually a newline in
the terminal output. This avoids unwanted interruptions in text that
should appear together in the terminal.

Bug: 822490, 646690
Change-Id: I024d13d24f126d31dae3fe0b2a0d8f818740354a
Reviewed-on: https://chromium-review.googlesource.com/1060716
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Raymes Khoury <raymes@chromium.org>
3 files changed
tree: a473da590e5c816dbdba33e1540acf0fd8b4ad94
  1. hterm/
  2. libdot/
  3. nassh/
  4. saltpig/
  5. ssh_client/
  6. wam/
  7. wash/
  8. .clang-format
  9. .eslintrc.js
  10. .gitignore
  11. HACK.md
  12. LICENSE
  13. navbar.md
  14. package.json
  15. README.md
README.md

Hello

This repository contains the libdot JavaScript library and some web applications that make use of it.

The official copy of this repository is hosted at https://chromium.googlesource.com/apps/libapps.

There is also a mirror on github at https://github.com/libapps/libapps-mirror. A few subprojects are also extracted out into their own git repo and mirrored. Keep in mind that these mirrors may occasionally be behind the official repository.

All changes must go through the Gerrit code review server on https://chromium-review.googlesource.com. Github pull requests cannot be accepted. Please see the HACK.md document in this directory for the details.

Top level directories

  • libdot/ is a small set of JS libraries initially developed as part of hterm, now available as shared code.

  • hterm/ is a JS library that provides a terminal emulator. It is reasonably fast, reasonably correct, and reasonably portable across browsers.

  • nassh/ is the Secure Shell Chrome App (currently a "v1.5" app, soon to become a "v2" or platform app) that combines hterm with a NaCl build of OpenSSH to provide a PuTTY-like app for Chrome users.

  • ssh_client/ is the NaCl port of OpenSSH. It is used by nassh to create the Secure Shell App.

  • wash/ is a library for cross-origin virtual filesystems, similar to the Plan 9 filesystem. This directory also contains a simple bash-like shell environment for exploring these filesystems. The code in this directory is a work-in-progress.