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

Update rule to address assistive technology inconsistencies #1384

Closed
wants to merge 12 commits into from

Conversation

jeeyyy
Copy link
Collaborator

@jeeyyy jeeyyy commented Jul 9, 2020

Addressed issues identified, detailed in below issue.

Closes issue(s):

Need for Final Call:

  • 2 weeks

_rules/iframe-non-empty-accessible-name-cae760.md Outdated Show resolved Hide resolved
_rules/iframe-non-empty-accessible-name-cae760.md Outdated Show resolved Hide resolved
_rules/iframe-non-empty-accessible-name-cae760.md Outdated Show resolved Hide resolved
jeeyyy and others added 3 commits July 14, 2020 10:57
Co-authored-by: Wilco Fiers <WilcoFiers@users.noreply.github.com>
@jeeyyy jeeyyy requested a review from ShadowBB July 21, 2020 00:57
Copy link
Collaborator

@dd8 dd8 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good - it addresses everything I reported in in #1367

@@ -21,7 +21,7 @@ acknowledgments:

## Applicability

The rule applies to `iframe` elements that are [included in the accessibility tree][] and that can be accessed by [sequential focus navigation][].
The rule applies to `iframe` elements that are [included in the accessibility tree][].
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not convinced that "included in the accessibility tree" covers it here. In trying this out, the following iframe still shows up in the accessibility tree for Chrome and Firefox:

<iframe role="none" tabindex="-1"></iframe>

Even if I put aria-hidden="true" on it, Chrome still puts it in the accessibility tree (Firefox does not). Common ways of taking things out of the accessibility tree don't seem to work for iframes. I think that's something the rule should account for.

The other thing I noticed is that despite that iframes with role="none" are included in the accessibility tree, Voiceover treats them completely differently. They're not treated as regions to enter into, but instead treated as part of the regular content. That makes a lot of sense, but does away with this idea that whether or not it is included in the accessibility tree matters.

That example above... despite the fact that very unintuitively it is included in the accessibility tree, doesn't seem like it actually needs an accessible name. VO skips it because of role=none, NVDA skips it because of tabindex="-1". I'm not sure what JAWS does with it. Definitely something worth testing.

Either way I think we should explore doing this rule without "included in the accessibility tree". Accessibility trees seem to have unique rules for iframes, which as far as I can tell aren't spec'ed out. Instead of hoping someone does enough testing to figure it out, we should probably define what we found in this rule so that everyone can do this consistently.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To add to above findings, for above example:

NVDA/Firefox - has iframe, can get to it and reads "about:blank".
JAWS/IE11 - does not see the iframe

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This argument is very valid, given the disparity in how iframe is interpreted by various AT's.

Given this context, I have updated this rule to not use included in accessibility tree, which is the step in the right direction.

Added a generic accessibility note, but open to expanding on that if necessary.

@@ -21,7 +21,7 @@ acknowledgments:

## Applicability

The rule applies to `iframe` elements that are [included in the accessibility tree][] and that can be accessed by [sequential focus navigation][].
The rule applies to `iframe` elements.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why would display:none need to be tested for this?

jeeyyy and others added 2 commits September 6, 2020 19:31
Co-authored-by: daniel-montalvo <49305434+daniel-montalvo@users.noreply.github.com>
@jeeyyy
Copy link
Collaborator Author

jeeyyy commented Sep 6, 2020

@WilcoFiers as discussed are you taking over this one?

@jeeyyy
Copy link
Collaborator Author

jeeyyy commented Sep 20, 2020

Closing this as @WilcoFiers is taking it over.

@jeeyyy jeeyyy closed this Sep 20, 2020
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

Successfully merging this pull request may close these issues.

iframe has non-empty name - problems with examples and applicability [cae760]
4 participants