Difference between revisions of "ARIA Dialog Role with modal true"

From Level Access Web Labs
Jump to navigation Jump to search
(Example)
 
Line 35: Line 35:
 
</head>
 
</head>
 
<body>
 
<body>
<button onclick="toggle('d1');">Open dialog with focus on dialog</button>
+
<div><button onclick="toggle('d1');">Open dialog with focus on dialog</button></div>
<button onclick="toggle('p1');">Open dialog with focus on heading</button>
+
<div><button onclick="toggle('p1');">Open dialog with focus on heading</button></div>
<button onclick="toggle('i1');">Open dialog with focus on checkbox</button>
+
<div><button onclick="toggle('i1');">Open dialog with focus on checkbox</button></div>
  
 
<div id="d1" tabindex="-1" class="hide" role="dialog" aria-labelledby="p1" aria-describedby="p2" aria-modal="true">
 
<div id="d1" tabindex="-1" class="hide" role="dialog" aria-labelledby="p1" aria-describedby="p2" aria-modal="true">

Latest revision as of 00:40, 16 October 2019

Notes

This example provides a popup with a role of dialog with an aria-labelledby and aria-describedby reference. Focus is not restricted to the dialog with code in this example (although some screen reader implementations may restrict focus).

For older versions of iOS (not the latest) aria-modal="true" causes huge problems with iOS e.g. 10.x/10.2. If focus is set on the dialog -- the dialog name instructions description are not accessible in the reading order. For older iOS versions don't set focus to role dialog as screen reader virtual cursor is not working right with arrows if focus is set to role dialog. This issue appears to be fixed although it is not marked fixed in this webkit bug (https://bugs.webkit.org/show_bug.cgi?id=174667).

Example

  • JAWS 18 (Firefox) hides other content outside no matter what aria-modal is set to.
  • JAWS 2019 with Chrome announces name and description and restricts focus and virtual cursor to dialog.
  • NVDA 2017.2 (Firefox) hides other content outside no matter what aria-modal is set to. NVDA 2017.4 Browse mode is on when the dialog appears.
  • iOS 13.1.2 with Safari does announces name and description automatically when checkbox or heading is focused on dialog open. Does not restricts focus and virtual cursor to dialog. All content is visible though in browse mode.
  • iOS with VoiceOver 10+->10.3.3 attempts to block access to content outside the modal but fails by prevent access to some of the dialog as well!