act-rules.github.io icon indicating copy to clipboard operation
act-rules.github.io copied to clipboard

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

Open dd8 opened this issue 5 years ago • 4 comments

Each browser / AT combination presents a slightly different user interface for navigating iframes:

  • VoiceOver/Safari 13 - exposes iframe as container in normal reading order named by title, but iframe contents not in until user presses Control-Option-Shift-Down Arrow to enter iframe, first item inside iframe focused by tab key
  • JAWS/IE11 - includes iframe contents in normal reading order, first item inside iframe focused by tab key and frame title not read
  • JAWS/FF68 - includes iframe contents in normal reading order, first item inside iframe focused by tab key and frame title is read
  • JAWS/Chrome - includes iframe contents in normal reading order, first item inside iframe focused by tab key and frame title is read
  • NVDA/IE11 - includes iframe contents in normal reading order, first item inside iframe focused by tab key
  • NVDA/FF68 - includes iframe contents in normal reading order, iframe is focusable but always silent (not named by title/acc-name)
  • NVDA/Chrome - unable to test due to focus trap in browser address bar

On Windows iframe title is read when tabbing, but not in normal screen reader reading order On Mac iframe title is read in normal screen reader reading order, but not when tabbing

Test results for the examples are

Example VO/Safari 13 JAWS/IE11 JAWS/FF68 JAWS/Chrome NVDA/FF68 NVDA/Chrome NVDA/IE11
Passed 1 OK OK OK OK Fail Untested OK
Passed 2 Fail OK OK OK Fail Untested OK
Passed 3 Fail OK OK OK Fail Untested OK
Failed 1 OK OK Fail OK Fail Untested OK
Failed 2 Fail OK Fail OK Fail Untested OK
Failed 3 Fail OK Fail OK Fail Untested OK
Failed 4 Fail OK Fail OK Fail Untested OK
Inapplicable 1 OK OK OK OK OK Untested OK
Inapplicable 2 OK OK OK OK OK Untested OK
Inapplicable 3 Fail OK OK Fail OK Untested OK

On Safari untitled iframes are hard to use because there's no indication of frame contents, and users often assume they contain adverts. This is bad if the iframe contains something important - I've seen a Safari user unable to find a login form in an iframe for exactly this reason.

Inapplicable Example 3 fails in VoiceOver with Safari The Safari issue on Inapplicable Example 3 is a consequence of the UI design (frames exposed as nested containers) but excluded from the applicability. The problem happens in normal reading order, not when tabbing between focusable items. I think the applicability needs extended to cover problems with VoiceOver/Safari by removing the following:

and that can be accessed by sequential focus navigation

https://act-rules.github.io/rules/cae760#applicability

Passed examples 1,2,3 always fail on NVDA/FF68 because tabbing to the frame always produces silence - even if a title or ARIA label is provided. This looks like a bug so I don't think the examples or applicability should change for this.

Passed examples 2,3 always fail on VoiceOver with Safari because it doesn't use acc-name calculation for iframes (but does use the iframe name which is not supposed to be human readable). Again this looks like a bug so I don't think the examples of applicability should change for this.

NVDA with Chrome is untested because there's a focus trap in address bar so you can't tab to the page to test.

tl/dr; remove "and that can be accessed by sequential focus navigation" from applicability and make Inapplicable Example 3 a fail.

dd8 avatar Jul 04 '20 13:07 dd8

Thanks for the thorough research. I totally agree with your conclusions. That applicability looked odd, against my better judgement I approved that... oops!

The passed example 2 / 3 Safari issue is known and was noted in accessibility support. The NVDA one is not and definitely should be.

WilcoFiers avatar Jul 07 '20 12:07 WilcoFiers

Thanks for the extensive research @dd8. Sequential focus navigation has been part of this rule for a long time.

I dug up through the history, and found these discussions:

jeeyyy avatar Jul 08 '20 23:07 jeeyyy

Need a volunteer to work on this rule.

WilcoFiers avatar Sep 21 '21 09:09 WilcoFiers

@WilcoFiers assigning this to you since you are already handling https://github.com/w3c/wcag-act/issues/473

carlosapaduarte avatar Feb 08 '22 10:02 carlosapaduarte