Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for comment: screen reader settings #16

Open
jugglinmike opened this issue Nov 16, 2021 · 15 comments
Open

Request for comment: screen reader settings #16

jugglinmike opened this issue Nov 16, 2021 · 15 comments

Comments

@jugglinmike
Copy link
Contributor

jugglinmike commented Nov 16, 2021

Although all of the project's tests are currently written for screen readers operating with their default settings, we are interested in one day writing tests for behavior with alternate settings. This will require extensions to the test design, to the automated test running software, and possibly even to the screen readers themselves. Before all of that, it would be helpful to identify the settings which the future ARIA-AT tests will need to control.

In this issue, I'd like to gather input on which screen reader settings are potentially of interest. We can use that information to prioritize this work among the other goals of the project, organize prospective settings according to their relevance/impact, and finally tackle the more technical tasks I mentioned above.

If you know of a setting which may be of interest, please add a comment below. ARIA-AT is currently targeting NVDA, JAWS, and VoiceOver; if you happen to know which of those supports the setting you're suggesting, that would be helpful, too.

I'll keep the following table updated with the input we receive.

setting application* NVDA JAWS VoiceOver
text-to-speech voice uniform yes yes yes
disable automatic updates uniform yes yes yes (system-wide)
disable telemetry uniform yes yes yes (system-wide)
enunciate capital letters conditional yes yes yes
enunciate punctuation conditional yes yes yes
enunciate mode changes conditional yes yes no
quick Navigation on/off conditional no no yes
single-Key Quick Navigation on/off conditional no no yes
keyboard layout uniform yes yes no
disable say all on page load uniform yes yes yes
disable mouse tracking uniform yes yes yes
enable visual focus indicators uniform yes yes yes
disable popup: welcome uniform yes no no
disable popup: first-run uniform no yes no
disable popup: "fsCasts" uniform no yes no
disable popup: update availability uniform yes yes no
configure Tab key to move focus between all controls uniform no no yes (system-wide)
set audio output device uniform yes yes yes
* note on "application"

Some settings directly impact screen reader behavior (e.g. the vocalization of punctuation), and those might be required by some tests but not for others. Other settings concern operational details beyond the presentation of content (e.g. automatic update functionality), but the project might nonetheless recommend their use in general. I'll try to capture that distinction with the column titled "application," where "conditional" describes the former type of setting, and "uniform" describes the latter.

@jscholes
Copy link

@jugglinmike A couple to add to the list:

  • enunciate mode changes (conditional), JAWS/NVDA. Required to be able to assert mode changes or the lack thereof; both JAWS and NVDA use sounds to convey mode changes by default without accompanying speech. Could be combined with an additional, programmatic check of the current mode after the test has run, e.g. to confirm whether there were interim mode changes that would confuse users.
  • Quick Navigation on/off (conditional), macOS VoiceOver. Currently, all tests are carried out with Quick Nav disabled, but it's feasible that the state of this setting causes behaviour to differ, and therefore I think desirable to test it.
  • Single-Key Quick Navigation on/off (conditional), macOS VoiceOver. This is related to the previous command. With Quick Navigation enabled, users are able to toggle "single-key navigation", which allows commands like H to jump to next heading, numbers on the number row to jump by heading level, etc. These types of commands are available by default on Windows for reading mode tests, but are not tested on the Mac.

@jugglinmike
Copy link
Contributor Author

Awesome, @jscholes! Those are all included in the table, now.

@WestonThayer
Copy link

  • For NVDA/JAWS, maybe choosing between desktop/laptop keyboard shortcut layouts?
  • The "say all on page load" feature is often handy to turn off
  • If running locally, turning off "mouse tracking" could help reduce noise
  • Nice to have: turn on visual focus indicators — could be super handy for debugging a failing test by watching a screen recording
  • For VoiceOver, usually Safari and System Preferences are configured as https://www.scottohara.me/blog/2014/10/03/link-tabbing-firefox-osx.html

@WestonThayer
Copy link

Oh and JAWS-specific: It can pop several dialogs. There's the activation dialog of course, then there's a "first run" wizard modal, and finally "fsCasts" popups, which notify you about new podcasts. We'll need to suppress all of those.

@jscholes
Copy link

Another one that comes to mind, and applies to all screen readers: audio output, or ensuring that a screen reader is okay without having access to one.

@jscholes
Copy link

Pop-up dialogs are also not JAWS-specific. For example, NVDA has the startup/welcome UI, automatic updates, and data privacy.

@jugglinmike
Copy link
Contributor Author

@WestonThayer Thanks! I've added most of your suggestions to the list. I'm waiting to add just this one until I understand it better:

Is this a general tip about where we should expect to find settings that influence VoiceOver? Or is it a suggestion to extend the above table with a specific setting for VoiceOver, "Tab to move focus between all controls"? Or something else?

@jugglinmike
Copy link
Contributor Author

@jscholes thanks for even more ideas :)

Another one that comes to mind, and applies to all screen readers: audio output, or ensuring that a screen reader is okay without having access to one.

To fit this into the table, would it be accurate to call the setting, "Audio output device"? And does that imply that we would need some "null" device? Or is the setting more like "Disable audio output"?

Pop-up dialogs are also not JAWS-specific. For example, NVDA has the startup/welcome UI, automatic updates, and data privacy.

Good point. I think I'd like to track the disabling of each pop-up separately rather than describing the general need with a catch-all entry. That granularity will give us a clearer picture of the development effort.

@WestonThayer
Copy link

@jugglinmike it's in the same category as disabling popups and keyboard layout — initial configuration that we want in place before running a test, but likely not settings we need to change within a test. It should probably be noted in Configuring Screen Readers for Testing as well, since tests like 'Navigate forwards to a collapsed disclosure button' will fail without those settings enabled (TAB will not focus buttons).

@jugglinmike
Copy link
Contributor Author

Got it--added that to the table

@jscholes
Copy link

@jugglinmike

To fit this into the table, would it be accurate to call the setting, "Audio output device"? And does that imply that we would need some "null" device?

Yes and yes.

@jugglinmike
Copy link
Contributor Author

Thanks, @jscholes. That's in the table, now, too.

@zcorpan zcorpan mentioned this issue Apr 7, 2022
7 tasks
@zcorpan zcorpan transferred this issue from w3c/aria-at Apr 11, 2022
@zcorpan
Copy link
Member

zcorpan commented May 23, 2022

From today's AT Automation Working Session, @jscholes and @mcking65 think we should first specify:

For each AT:

  • Enumerate all available settings
  • Get one setting's value
  • Set one setting's value
  • Set one setting to the default value

Later we can revisit convenience for shared settings between ATs.

@lolaodelola
Copy link

@jugglinmike is this still relevant?

@jugglinmike
Copy link
Contributor Author

Yup!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants