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

Jaws does not capture hand movement properly if moved into by tabbing backwards #348

Closed
KatieWoe opened this issue Feb 7, 2021 · 9 comments
Labels
type:bug Something isn't working

Comments

@KatieWoe
Copy link
Contributor

KatieWoe commented Feb 7, 2021

For phetsims/qa#601. Win 10 Chrome Jaws.

This was a bit difficult to track down, but I noticed that, sometimes, Jaws would not read out any alerts when moved using the two hands setting, and would only read how close they were to each other, but not position in range, when only one was moved. This seemed to be persistent once it showed up.

As best I can tell, this is how to reproduce this.

  1. Using Jaws, tab into the hands on a page, but not past it, move them and observe proper alerts.
  2. Tab past the hands to the tick mark selection boxes
  3. Tab back and attempt to listen to alerts when both moving one hand, and when moving both.
Image.from.iOS.4.MOV
Image.from.iOS.3.MOV
@zepumph
Copy link
Member

zepumph commented Feb 9, 2021

Hmmm. I will need to get JAWS to experiment with this more. I won't get to it tonight.

@zepumph
Copy link
Member

zepumph commented Feb 12, 2021

@jessegreenberg and I can consistently get aria-live alerts to be broken when using JAWS. The easiest to reproduce is whe the reset all button, which almost always successfully alerts on startup, but quickly stops and just says "enter" on reset all button press.

I tried adding the alert role to our paragraphs, and it worked to speak every alert very well (fixing the current problem), but I don't think this will be acceptable, because it causes all alerts to interrupt, event interrupting the aria-valuetext. It also prefaces every alert with "Alert: . . . ", actually saying "alert" at the beginning of each alert.

I'll keep appending things I try here.

@zepumph
Copy link
Member

zepumph commented Feb 12, 2021

I was unfortunately able to reproduce this issue in https://phet.colorado.edu/sims/html/gravity-force-lab-basics/latest/gravity-force-lab-basics_en.html. I wonder what has happened with JAWS.

This patch didn't fix anything:

Index: js/AriaHerald.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/js/AriaHerald.js b/js/AriaHerald.js
--- a/js/AriaHerald.js	(revision a146f5ba46cf4974ffb98b0e3cb175b416b52d34)
+++ b/js/AriaHerald.js	(date 1613088387908)
@@ -167,7 +167,7 @@
         // see https://github.com/phetsims/scenery-phet/issues/490
         liveElement.hidden = true;
       }, 200 );
-    }, 0 );
+    }, 10 );
   }
 }
 

@zepumph
Copy link
Member

zepumph commented Feb 12, 2021

@jessegreenberg I'm pretty stumped. Do you have more ideas for me to pursue?

@zepumph
Copy link
Member

zepumph commented Feb 12, 2021

Wow! This pretty much fixed the problem for me on JAWS, though it looks like it was added for iOS. . . So I'm not sure how to proceed here.

Index: js/AriaHerald.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/js/AriaHerald.js b/js/AriaHerald.js
--- a/js/AriaHerald.js	(revision a146f5ba46cf4974ffb98b0e3cb175b416b52d34)
+++ b/js/AriaHerald.js	(date 1613093166416)
@@ -151,7 +151,7 @@
     liveElement.textContent = '';
 
     // element must be visible for alerts to be spoken
-    liveElement.hidden = false;
+    // liveElement.hidden = false;
 
     // must be done asynchronously from setting hidden above or else the screen reader
     // will fail to read the content
@@ -165,7 +165,7 @@
 
         // Using `hidden` rather than clearing textContent works better on mobile VO,
         // see https://github.com/phetsims/scenery-phet/issues/490
-        liveElement.hidden = true;
+        // liveElement.hidden = true;
       }, 200 );
     }, 0 );
   }

@zepumph
Copy link
Member

zepumph commented Feb 12, 2021

I found and reopened phetsims/scenery-phet#490. I'll try to pick things up over there.

@zepumph
Copy link
Member

zepumph commented Feb 12, 2021

After a bit more testing, I should just need to cherry-pick phetsims/utterance-queue@8104d51.

@zepumph
Copy link
Member

zepumph commented Feb 13, 2021

After some more testing on NVDA and JAWS on firefox and chrome, I feel ready to do this. I'll cherry pick.

@zepumph zepumph mentioned this issue Feb 13, 2021
11 tasks
@zepumph zepumph removed their assignment Feb 13, 2021
@KatieWoe
Copy link
Contributor Author

This seems fixed after a quick check during rc.2. Will reopen if something comes up during full Jaws testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants