Notice: This is a work in progress. Please submit feedback or suggestions.

Test: APG 1.1 modal dialog example

Screen Reader support level: partial (25/40)

Voice Control support level: not applicable

On this page

About this test

This example implements a modal dialog.

Run this test and and submit your results

Age of results

Results in this test range from 10 months ago to a year ago. See detailed information about test dates and versions for more information.

Caution

Failing or partial results may be out of date. The oldest result is from a year ago. Consider running this test and contributing results.

Test HTML

view the external test

Summary of Screen Reader support by expectation

* means that some support is hidden behind settings

Summary of Voice Control support by expectation

aria-modal attribute
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech Recognition
ChromeChromeSafariSafariChrome
Not applicable
dialog role
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech Recognition
ChromeChromeSafariSafariChrome
Not applicable

* means that some support is hidden behind settings

Detailed support results by expectation

Expectation for the aria-modal attribute: convey the presence of aria-modal=true - applied to the dialog role

This expectation is applied to the dialog role. Expectations and results might differ when the the feature is applied to different roles.

Rationale: Users need to be aware that other content is obscured by the modal.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples of assistive technologies support this expectation:

  • Screen readers might convey the modal state when entering the modal
  • Screen readers might imply the modal state by restricting reading and navigation to the modal content

Grading method: Just one of the listed commands must pass for the expectation to pass.

This expectation is from the aria-modal attribute feature.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, modal dialog..."
    • Result Notes: The modal state was explicitly conveyed.
JAWSIEyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, modal dialog..."
    • Result Notes: The modal state was explicitly conveyed.
JAWSFirefoxyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, modal dialog..."
    • Result Notes: The modal state was explicitly conveyed.
NarratorEdgenone
  • Result: (fail)
    • command: Enter or Space Bar (Activate Item (primary action))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Add delivery address, dialog..."
    • Result Notes: Modal state was not conveyed and non-modal content was not obscured. See other expectations for details.
NVDAChromeyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Add delivery address, dialog..."
    • Result Notes: Modal state was not conveyed but non-modal content was obscured which implies the modal state. See other expectations for details.
NVDAFirefoxyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Add delivery address, dialog..."
    • Result Notes: Modal state was not conveyed but non-modal content was obscured which implies the modal state. See other expectations for details.
OrcaFirefoxpartial
  • Result: (partial)
    • command: up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: start of target
    • Output: link before the modal was announced, and then "add delivery address dialog, street, entry".
    • Result Notes: boundaries partially implied by the fact that the rest of the document is not navigable. Partial because the link before the modal was announced.
TalkBackChromenone
  • Result: (fail)
    • command: double tap (Activate button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "edit box, street"
    • Result Notes: Modal state was not conveyed but non-modal content was not obscured. See other expectations for details.
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safaripartial
  • Result: (partial)
    • command: Double tap (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: start of target
      • virtual cursor location: start of target
    • location after command: within target
    • Output: "add delivery address, web dialog..."
    • Result Notes: Modal state was not conveyed but non-modal content was partially obscured which partially implies the modal state. See other expectations for details.
VoiceOver (macOS)Safaripartial
  • Result: (partial)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: target
    • Output: "street, edit text"
    • Result Notes: Modal state was not conveyed but non-modal content was partially obscured which partially implies the modal state. See other expectations for details.
Windows Speech RecognitionChromenot applicable-

Extended Support for: aria-modal attribute: convey the presence of aria-modal=true

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWSEdgeunknown-
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDAEdgeunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxnot applicable-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromenot applicable-
Voice Control (MacOS)Firefoxnot applicable-
Windows Speech RecognitionEdgenot applicable-
Back to top

Expectation for the aria-modal attribute: limit reading to children of aria-modal=true - applied to the dialog role

This expectation is applied to the dialog role. Expectations and results might differ when the the feature is applied to different roles.

Rationale: Users should not be able to access content outside of the modal. However, AT are not required to implement this functionality per the ARIA spec, and authors may implement this on their own.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: SHOULD
  • Voice Control: NA

Grading method: All of the listed commands must pass for the expectation to pass.

This expectation is from the aria-modal attribute feature.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: unable to reach outside content
    • Result Notes: The title of the window was announced
JAWSIEyes
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: unable to reach outside content
    • Result Notes: The title of the window was announced
JAWSFirefoxyes
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: unable to reach outside content
    • Result Notes: The title of the window was announced
NarratorEdgenone
  • Result: (fail)
    • command: Up arrow (Read previous item (scan mode))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: content outside of the modal was announced
NVDAChromeyes
  • Result: (pass)
    • command: up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: unable to reach outside content
NVDAFirefoxyes
  • Result: (pass)
    • command: up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: unable to reach outside content
OrcaFirefoxpartial
  • Result: (partial)
    • command: up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: start of target
    • Output: link before the modal was announced, and then "add delivery address dialog, street, entry".
    • Result Notes: Partial because the link before the modal was announced (but nothing else outside of the modal).
TalkBackChromenone
  • Result: (fail)
    • command: Swipe left (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: content outside of the modal was announced
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safaripartial
  • Result: (partial)
    • command: Swipe Left (Previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: "opening double quotation mark" and "closing double quotation mark"
    • Result Notes: quotation marks were found and announced but no other content was conveyed
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • command: VO + Left Arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: target
      • virtual cursor location: target
    • location after command: before target
    • Output: unable to navigate to outside content
    • Result Notes: unable to navigate to outside content even after navigating out of the dialog via VO+shift+up arrow
Windows Speech RecognitionChromenot applicable-

Extended Support for: aria-modal attribute: limit reading to children of aria-modal=true

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWSEdgeunknown-
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDAEdgeunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxnot applicable-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromenot applicable-
Voice Control (MacOS)Firefoxnot applicable-
Windows Speech RecognitionEdgenot applicable-
Back to top

Expectation for the aria-modal attribute: remove outside content from navigational shortcuts when aria-modal=true - applied to the dialog role

This expectation is applied to the dialog role. Expectations and results might differ when the the feature is applied to different roles.

Rationale: Users should not be able to access content outside of the modal. However, AT are not required to implement this functionality per the ARIA spec, and authors may implement this on their own.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: SHOULD
  • Voice Control: NA

Examples of assistive technologies support this expectation:

  • Screen readers must not allow allow users to jump to the next element type if that element is outside of the modal
  • Screen readers must not include outside content in the list of elements

Grading method: All of the listed commands must pass for the expectation to pass.

This expectation is from the aria-modal attribute feature.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromepartial
  • Result: (fail)
    • command: Insert + F3 (Open element list)
    • before the command was executed
      • mode: auto (mode not explicitly)
    • Output: outside content was displayed in content lists, such as the of links, etc.
  • Result: (pass)
    • command: u (Next unvisited link)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: target
    • Output: no links were found
    • Result Notes: This is sort of fragile. If you use the mouse to click outside of the modal content, the modal stays open but shortcuts can be used to jump to outside content. It appears to work fine if keyboard was used exclusively.
JAWSIEpartial
  • Result: (fail)
    • command: Insert + F3 (Open element list)
    • before the command was executed
      • mode: auto (mode not explicitly)
    • Output: outside content was displayed in content lists, such as the of links, etc.
  • Result: (pass)
    • command: u (Next unvisited link)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: target
    • Output: no links were found
    • Result Notes: This is sort of fragile. If you use the mouse to click outside of the modal content, the modal stays open but shortcuts can be used to jump to outside content. It appears to work fine if keyboard was used exclusively.
JAWSFirefoxpartial
  • Result: (fail)
    • command: Insert + F3 (Open element list)
    • before the command was executed
      • mode: auto (mode not explicitly)
    • Output: outside content was displayed in content lists, such as the of links, etc.
  • Result: (pass)
    • command: u (Next unvisited link)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: target
    • Output: no links were found
    • Result Notes: This is sort of fragile. If you use the mouse to click outside of the modal content, the modal stays open but shortcuts can be used to jump to outside content. It appears to work fine if keyboard was used exclusively.
NarratorEdgenone
  • Result: (fail)
    • command: shift + k (Previous link)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: links were found outside of the modal
NVDAChromeyes
  • Result: (pass)
    • command: shift + f (previous form field)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: no outside form fields were found
  • Result: (pass)
    • command: shift+ k (Previous link)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: no outside links were found
  • Result: (pass)
    • command: NVDA + F7 (Open Elements List)
    • before the command was executed
      • mode: auto (mode not explicitly)
    • Output: only content within the modal was included in the lists
NVDAFirefoxyes
  • Result: (pass)
    • command: shift + f (previous form field)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: no outside form fields were found
  • Result: (pass)
    • command: shift+ k (Previous link)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: no outside links were found
  • Result: (pass)
    • command: NVDA + F7 (Open Elements List)
    • before the command was executed
      • mode: auto (mode not explicitly)
    • Output: only content within the modal was included in the lists
OrcaFirefoxpartial
  • Result: (pass)
    • command: shift + tab (previous form field)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: no outside form fields were found
  • Result: (partial)
    • command: shift+ k (Previous link)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: The link just before the dialog example was announced, but the reading cursor was immediately sent back to the open dialog. Not possible to find other links outside of the dialog.
  • Result: (partial)
    • command: alt + shift+ k (Open a list of links)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: target
    • Output: outside links are listed. When jumping to those links, focus is redirected back to the open dialog.
    • Result Notes: partial because outside links are listed but its not possible to jump to them.
TalkBackChromenone
  • Result: (fail)
    • command: Swipe left (previous link (correct item type must be selected))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: content outside of the modal was announced
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safariyes
  • Result: (pass)
    • command: Swipe up (previous link (correct item type must be selected))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: not found
  • Result: (pass)
    • command: Swipe up (previous form control (correct item type must be selected))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: not found
VoiceOver (macOS)Safarinone
  • Result: (fail)
    • command: VO + Shift + Command + H (Previous Heading)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: previous headings in outside content were found
  • Result: (fail)
    • command: VO + U (Open Rotor)
    • before the command was executed
      • mode: auto (mode not explicitly)
    • Output: headings, links, and other content was listed and could be navigated to
Windows Speech RecognitionChromenot applicable-

Extended Support for: aria-modal attribute: remove outside content from navigational shortcuts when aria-modal=true

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWSEdgeunknown-
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDAEdgeunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxnot applicable-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromenot applicable-
Voice Control (MacOS)Firefoxnot applicable-
Windows Speech RecognitionEdgenot applicable-
Back to top

Expectation for the dialog role: convey the name of the dialog

Rationale: Users need to know the purpose of the dialog.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Grading method: Just one of the listed commands must pass for the expectation to pass.

This expectation is from the dialog role feature.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, modal dialog..."
    • Result Notes: The name, role, and aria-modal were conveyed when entering the dialog for the first time.
JAWSIEyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, modal dialog..."
    • Result Notes: The name and role were conveyed when entering the dialog for the first time. The modal state was not
JAWSFirefoxyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, modal dialog..."
    • Result Notes: The name, role, and modal state were conveyed when entering the dialog for the first time.
NarratorEdgeyes
  • Result: (pass)
    • command: Enter or Space Bar (Activate Item (primary action))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Add delivery address, dialog..."
NVDAChromeyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Add delivery address, dialog..."
NVDAFirefoxyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Add delivery address, dialog..."
OrcaFirefoxpartial
  • Result: (fail)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: target
    • Output: contents of modal was announced, but not the dialog name, role, or state (modal)
  • Result: (pass)
    • command: up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: start of target
    • Output: link before the modal was announced, and then "add delivery address dialog, street, entry"
TalkBackChromenone
  • Result: (fail)
    • command: double tap (Activate button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "edit box, street"
    • Result Notes: not conveyed when first entering the dialog
  • Result: (fail)
    • command: Swipe left (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: start of target
      • virtual cursor location: start of target
    • location after command: within target
    • Output: "edit box, street"
    • Result Notes: not conveyed when navigating to the boundary of the dialog
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safariyes
  • Result: (pass)
    • command: Swipe Left (Previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: start of target
      • virtual cursor location: start of target
    • location after command: within target
    • Output: "add delivery address, web dialog..."
VoiceOver (macOS)Safaripartial
  • Result: (fail)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: target
    • Output: "street, edit text"
  • Result: (pass)
    • command: VO + Shift + Up Arrow (Exit an object (such as an iframe))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: target
    • Output: "Out of add delivery address, web dialog..."
Windows Speech RecognitionChromenot applicable-

Extended Support for: dialog role: convey the name of the dialog

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWSEdgeunknown-
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDAEdgeunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxnot applicable-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromenot applicable-
Voice Control (MacOS)Firefoxnot applicable-
Windows Speech RecognitionEdgenot applicable-
Back to top

Expectation for the dialog role: convey its role

Rationale: Users must be made aware of the dialog context.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples of assistive technologies support this expectation:

  • A screen reader might announce an element as something like "<name>, <role>"
  • A screen reader might imply the role by the presence of certain context roles
  • Voice Control software might let the user say something like "click, <role>".
  • Voice Control software might let the user say something like "show numbers", and interactive roles will be flagged with numbers.

Grading method: Just one of the listed commands must pass for the expectation to pass.

This expectation is from the dialog role feature.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, modal dialog..."
    • Result Notes: The name, role, and aria-modal were conveyed when entering the dialog for the first time.
JAWSIEyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, modal dialog..."
    • Result Notes: The name and role were conveyed when entering the dialog for the first time. The modal state was not
JAWSFirefoxyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, modal dialog..."
    • Result Notes: The name, role, and modal state were conveyed when entering the dialog for the first time.
NarratorEdgeyes
  • Result: (pass)
    • command: Enter or Space Bar (Activate Item (primary action))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Add delivery address, dialog..."
NVDAChromeyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Add delivery address, dialog..."
NVDAFirefoxyes
  • Result: (pass)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Add delivery address, dialog..."
OrcaFirefoxpartial
  • Result: (fail)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: target
    • Output: contents of modal was announced, but not the dialog name, role, or state (modal)
  • Result: (pass)
    • command: up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: start of target
    • Output: link before the modal was announced, and then "add delivery address dialog, street, entry"
TalkBackChromenone
  • Result: (fail)
    • command: double tap (Activate button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "edit box, street"
    • Result Notes: not conveyed when first entering the dialog
  • Result: (fail)
    • command: Swipe left (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: start of target
      • virtual cursor location: start of target
    • location after command: within target
    • Output: "edit box, street"
    • Result Notes: not conveyed when navigating to the boundary of the dialog
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safariyes
  • Result: (pass)
    • command: Double tap (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: start of target
      • virtual cursor location: start of target
    • location after command: within target
    • Output: "add delivery address, web dialog..."
VoiceOver (macOS)Safaripartial
  • Result: (fail)
    • command: Enter or Space (Activate Button)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: target
    • Output: "street, edit text"
  • Result: (pass)
    • command: VO + Shift + Up Arrow (Exit an object (such as an iframe))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: target
    • Output: "Out of add delivery address, web dialog..."
Windows Speech RecognitionChromenot applicable-

Extended Support for: dialog role: convey its role

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWSEdgeunknown-
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDAEdgeunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxnot applicable-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromenot applicable-
Voice Control (MacOS)Firefoxnot applicable-
Windows Speech RecognitionEdgenot applicable-
Back to top

Expectation for the dialog role: convey the boundaries of the dialog

Rationale: Users need to know when they enter and exit a dialog.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples of assistive technologies support this expectation:

  • Screen readers might announce something like "entering dialog" or "leaving dialog".
  • Screen readers might imply the boundary by obscuring outside content when aria-modal=true is also present.

Grading method: All of the listed commands must pass for the expectation to pass.

This expectation is from the dialog role feature.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: not able to move outside of the modal
JAWSIEyes
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: not able to move outside of the modal
JAWSFirefoxyes
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: not able to move outside of the modal
NarratorEdgepartial
  • Result: (pass)
    • command: Down arrow (Read next item (scan mode))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "Dialog, heading level 2, add delivery address"
  • Result: (fail)
    • command: Up arrow (Read previous item (scan mode))
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: "Link, modal dialog design pattern in aria authoring practices 1.1"
NVDAChromeyes
  • Result: (pass)
    • command: up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: not able to move outside of the modal
NVDAFirefoxyes
  • Result: (pass)
    • command: up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: not able to move outside of the modal
OrcaFirefoxpartial
  • Result: (partial)
    • command: up arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: start of target
    • Output: link before the modal was announced, and then "add delivery address dialog, street, entry"
    • Result Notes: boundaries partially implied by the fact that the rest of the document is not navigable. Partial because the link before the modal was announced.
TalkBackChromenone
  • Result: (fail)
    • command: Swipe left (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: "modal dialog design pattern in aria authoring practices 1.1, link"
  • Result: (fail)
    • command: Swipe right (Read next item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: dialog boundary not conveyed
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safaripartial
  • Result: (fail)
    • command: Swipe Left (Previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: start of target
      • virtual cursor location: start of target
    • location after command: before target
    • Output: "modal dialog design pattern in aria authoring practices 1.1, link"
  • Result: (pass)
    • command: Swipe Right (Next item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: before target
      • virtual cursor location: before target
    • location after command: within target
    • Output: "add delivery address, web dialog..."
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • command: VO + Left Arrow (Read previous item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: within target
      • virtual cursor location: within target
    • location after command: before target
    • Output: Unable to navigate out of the dialog object and the dialog role is conveyed when entering the container is focused by VO
  • Result: (pass)
    • command: VO + Right arrow (Read next item)
    • before the command was executed
      • mode: auto (mode not explicitly)
      • keyboard focus location: target
      • virtual cursor location: target
    • location after command: before target
    • Output: Unable to navigate out of the dialog object and the dialog role is conveyed when entering the container is focused by VO
Windows Speech RecognitionChromenot applicable-

Extended Support for: dialog role: convey the boundaries of the dialog

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWSEdgeunknown-
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDAEdgeunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxnot applicable-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromenot applicable-
Voice Control (MacOS)Firefoxnot applicable-
Windows Speech RecognitionEdgenot applicable-
Back to top

Dates and Versions of tested combinations

ATAT VersionBrowserBrowser versionOS versionDate tested
Dragon Naturally Speaking15.30Chrome7619032019-08-13
JAWS2019.1906.10Chrome7619032019-08-13
JAWS2019.1906.10IE1119032019-08-13
JAWS2019.1906.10Firefox6819032019-08-13
Narrator1903Edge4419032019-08-13
NVDA2019.1.1Chrome7619032019-08-13
NVDA2019.1.1Firefox6819032019-08-13
Orca3.31.4Firefox69Ubuntu 19.042019-09-13
TalkBack7.3.0Chrome7672019-08-13
VoiceOver (iOS)12.3.1Safari12.3.112.3.12019-08-13
VoiceOver (macOS)10.14.6Safari12.1.210.14.52019-08-13

History

  • 2019-08-13 Test created