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, IE11] JAWS is reading the hidden elements in the Check For Updates modal #226

Closed
phet-steele opened this issue Apr 12, 2017 · 16 comments
Assignees
Labels

Comments

@phet-steele
Copy link
Contributor

In the "check for updates" dialogue accessed via the PhET Menu, JAWS reads all possible strings, not just the one presented. This includes the hidden strings, so if the dialogue says "Simulation is up to date", JAWS will read that but continue by saying the other possibilities for the dialogue like "Unable to check for updates" and "Get Update..", etc..

This was tested with JAWS and WIN 10 + IE11.

For phetsims/tasks/issues/813.
URL: http://www.colorado.edu/physics/phet/dev/html/john-travoltage/1.3.0-dev.20/john-travoltage_en.html
Version: 1.3.0-dev.20 2017-04-05 17:45:45 UTC
Features missing: touch, fullscreen
Flags: pointerEnabled, msPointerEnabled, pixelRatioScaling
User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0; rv:11.0) like Gecko
Language: en-US
Window: 1536x774
Pixel Ratio: 2.5/1
WebGL: WebGL 0.94
GLSL: WebGL GLSL ES 0.94
Vendor: Microsoft (Internet Explorer)
Vertex: attribs: 16 varying: 15 uniform: 512
Texture: size: 16384 imageUnits: 16 (vertex: 16, combined: 32)
Max viewport: 16384x16384
OES_texture_float: true
Dependencies JSON: {"assert":{"sha":"a707328c","branch":"master"},"axon":{"sha":"f7beced2","branch":"master"},"babel":{"sha":"349f2b73","branch":"master"},"brand":{"sha":"054ca5c3","branch":"master"},"chipper":{"sha":"7c6e001f","branch":"master"},"dot":{"sha":"569939e1","branch":"master"},"john-travoltage":{"sha":"d3c5efa2","branch":"master"},"joist":{"sha":"d11d93da","branch":"master"},"kite":{"sha":"81166ce9","branch":"master"},"phet-core":{"sha":"c5c6c2a8","branch":"master"},"phetcommon":{"sha":"85801e7b","branch":"master"},"query-string-machine":{"sha":"d8a4ff18","branch":"master"},"scenery":{"sha":"e5fadaaf","branch":"master"},"scenery-phet":{"sha":"2cc12884","branch":"master"},"sherpa":{"sha":"ad343771","branch":"master"},"sun":{"sha":"cf75fc6d","branch":"master"},"tandem":{"sha":"cc7876d0","branch":"master"},"vibe":{"sha":"549baf54","branch":"master"}}

@jessegreenberg
Copy link
Contributor

The content cant be found with the virtual cursor, but it is being read when the Dialog is first opened.

@jessegreenberg
Copy link
Contributor

My guess is that JAWS is reading the 'aria-describedby' content in the Dialog, even though that content is hidden. I wonder if it will do that for ALL 'aria-describedby' content, or just the content that is in a dialog?

JSFiddle incoming...

@jessegreenberg
Copy link
Contributor

Test: https://jsfiddle.net/8q933y29/1/

NVDA doesn't read the hidden 'aria-describedby'.

@jessegreenberg
Copy link
Contributor

Neither does JAWS in IE11.

@jessegreenberg
Copy link
Contributor

jessegreenberg commented Apr 14, 2017

Here is a JSFiddle with an example 'dialog' with hidden content that is created dynamically.
https://jsfiddle.net/8q933y29/6/

@jessegreenberg
Copy link
Contributor

In the above example, JAWS will read the hidden content in IE11 when the dialog is open.

@jessegreenberg
Copy link
Contributor

jessegreenberg commented Apr 14, 2017

This definitely seems like a JAWS + IE bug. The only workaround I can think of right now is to totally remove the HTML content associated with the updates from the DOM instead of using hidden.

This doesn't happen in JAWS + Chrome or JAWS + Firefox.

@jessegreenberg
Copy link
Contributor

Maybe we can try display:none?

@jessegreenberg
Copy link
Contributor

Doesn't seem to work, in https://jsfiddle.net/8q933y29/8/,

JAWS is reading this element:

<p aria-hidden="true" style="display: none;" hidden>This is a hidden description.  Will AT find me?</p>

@emily-phet
Copy link

@jessegreenberg If this is a JAWS + IE bug, and it seems to only impact this dialog, I think we should make note of this going forward (in case other situations like this arise), let JAWS know, and not try to find a workaround for now.

@jessegreenberg
Copy link
Contributor

The impact of this bug is that in the About Dialog and the Updates dialog, the user will hear

"Checking for updates"
"Simulation is up to date"
"Update available, your version is..."
"Get updates, button"
"No thanks, button"
"Unable to check for updates."
"Close button"

Event though the only thing that is visible is "Simulation is up to date." and "Close button".

@emily-phet I just want to make sure that is OK, can you verify?

@emily-phet
Copy link

@jessegreenberg If this will likely take more than an hour or so to find a workaround, I think we need ask JAWS to address this, and continue with publishing John Travoltage with this issue. Once we hear back from JAWS about their interest/timeline for addressing this issue, we can discuss again.

@jessegreenberg
Copy link
Contributor

Ok, thanks @emily-phet!

@jobara
Copy link
Contributor

jobara commented Apr 25, 2017

@jessegreenberg it seems that aria-describedby and aria-labelledby will still use the content of a hidden element. https://www.paciellogroup.com/blog/2015/05/short-note-on-aria-labelledby-and-aria-describedby/

@jessegreenberg
Copy link
Contributor

That is really good to know, thanks @jobara! In that case this is a feature, not a bug, and JAWS is the one that follows specification. NVDA and VO are buggy for dynamic aria-describedby content with the hidden attribute. I think that means the current implementation is wrong and needs to be fixed to follow specification.

http://rawgit.com/w3c/aria/master/accname-aam/accname-aam.html#details-id-0

By default, assistive technologies do not relay hidden information, but an author can explicitly override that and include hidden text as part of the accessible name or accessible description by using aria-labelledby or aria-describedby.

@jessegreenberg
Copy link
Contributor

This is fixed with the above commits, Scenery now supports removing subtrees of accessible content under a display object from the DOM.

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

No branches or pull requests

4 participants