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

Test: aria-required attribute on role=radiogroup

Screen Reader support level: partial (23/40)

Voice Control support level: unknown

On this page

About this test

Tests the aria-required attribute against a suite of examples. Notes:

  • Currently, the most robust solution to mark a group of radio buttons as required is to place the text 'required' in the group label.
Run this test and submit your results

Age of results

Results in this test range from 2 years ago to 2 years 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 2 years ago. Consider running this test and contributing results.

Test HTML

open the test page
<!DOCTYPE html>
<html lang="en">
<head>
    <title>aria-required examples</title>
</head>
<body>
<h1>aria-required examples</h1>
<p>This page contains an aria radio group with aria-requried set</p>

<h2>aria-required="true" on role="radiogroup"</h2>
<div role="radiogroup" aria-labelledby="animal-legend" aria-required="true">
    <h3 id="animal-legend">Animal</h3>
    <input type="radio" name="animal" value="cat" id="cat"><label for="cat">Cat</label>
    <input type="radio" name="animal" value="dog" id="dog"><label for="dog">Dog</label>
    <input type="radio" name="animal" value="catdog" id="catdog"><label for="catdog">CatDog</label>
</div>

<button>submit</button>

</body>
</html>

Summary of Screen Reader support by expectation

* means that some support is hidden behind settings

Summary of Voice Control support by expectation

aria-required attribute
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech Recognition
ChromeChromeSafariSafariChrome
Not applicable
radiogroup 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-required attribute: convey the "true" value - applied to the radiogroup role

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

This expectation is from the aria-required attribute feature.

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • If applied to a single control, a screen reader might announce that control as required
  • If applied to a group of controls, such as a radio group, the screen reader might announce the required state on the group, and the required state will be implied for the controls.
  • If applied to a group of controls, such as a radio group, the screen reader might announce the first control as required, and the required state will be implied for the rest.
  • If applied to a group of controls, such as a radio group, the screen reader might announce the each control as required.

Grading method:

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

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-required="true"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
JAWSIEyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-required="true"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked"
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-required="true"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
NarratorEdgenone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-required="true"]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Animal. Cat. Radio button. Non selected. 1 of 3."
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-required="true"]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Animal grouping required. Cat radio button. Checked, 1 of 3."
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-required="true"]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Animal grouping required. Cat radio button. Checked, 1 of 3."
OrcaFirefoxnone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-required="true"]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "animal panel, cat, not selected, radio button"
TalkBackChromenone
  • Result: (fail)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[aria-required="true"]`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe right (or alt+right arrow) (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "No checked, cat, radio button. Double tap to toggle."
    • Result Notes: Not conveyed when any of the radio buttons are focused
  • Result: (fail)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[aria-required="true"]`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe right (or alt+right arrow) (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "No checked, cat, radio button. Double tap to toggle."
    • Result Notes: Group semantics were not conveyed
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use Swipe Right (Next item) to navigate forward to `*[aria-required="true"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Right (Next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "cat, radio button, unchecked, 1 of 3, required."
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-required="true"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[aria-required="true"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "cat, radio button, 1 of 3, Animal, required, radio group."
Windows Speech RecognitionChromenot applicable-

Extended Support for: aria-required attribute: convey the "true" value

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 radiogroup role: convey the group name if it has a group name

This expectation is from the radiogroup role feature.

Rationale:

A screen reader user needs to be aware of the name of group

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • The accessible name of the group is announced when entering the group.

Grading method:

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

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromepartial
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "group start, animal"
  • Result: (fail)
    • Test Case: Use Up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "group end"
JAWSIEpartial
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "group start, animal"
  • Result: (fail)
    • Test Case: Use Up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "group end"
JAWSFirefoxpartial
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "group start, animal"
  • Result: (fail)
    • Test Case: Use Up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "group end"
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Animal. Cat. Radio button. Non selected. 1 of 3."
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Animal grouping required. Cat radio button. Checked, 1 of 3."
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Animal grouping required. Cat radio button. Checked, 1 of 3."
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal panel, cat, not selected, radio button"
TalkBackChromenone
  • Result: (fail)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="radiogroup"]`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe right (or alt+right arrow) (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "No checked, cat, radio button. Double tap to toggle."
    • Result Notes: Not conveyed when any of the radio buttons are focused
  • Result: (fail)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="radiogroup"]`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe right (or alt+right arrow) (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "No checked, cat, radio button. Double tap to toggle."
    • Result Notes: Group semantics were not conveyed
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safarinone
  • Result: (fail)
    • Test Case: Use Swipe Right (Next item) while within `*[role="radiogroup"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: within target
        • Keyboard focus is: within target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Right (Next item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Cat, radio button, unchecked, 1 of 3, required"
  • Result: (fail)
    • Test Case: Use Swipe Right (Next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Right (Next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Animal, Heading level 3, required"
  • Result: (fail)
    • Test Case: Use Swipe Left (Previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Left (Previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "CatDog. Radio button, unchecked, 3 of 3, required"
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Cat, radio button, 1 of 3, Animal, radio group."
  • Result: (pass)
    • Test Case: Use VO + Right arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: VO + Right arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Animal. Required. Radio group."
  • Result: (pass)
    • Test Case: Use VO + Left Arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: VO + Left Arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "End of Animal. Required. Radio group."
Windows Speech RecognitionChromenot applicable-

Extended Support for: radiogroup role: convey the group name if it has a group name

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 radiogroup role: convey its role

This expectation is from the radiogroup role feature.

Rationale:

A screen reader user needs to be aware that elements are within a group

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • The role name is announced when entering the group.
  • If focus is outside of the group, then the accessible name of the group is announced when focus jumps to a control within the group.

Grading method:

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

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "group start, animal"
  • Result: (pass)
    • Test Case: Use Up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "group end"
JAWSIEyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "group start, animal"
  • Result: (pass)
    • Test Case: Use Up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "group end"
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "group start, animal"
  • Result: (pass)
    • Test Case: Use Up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "group end"
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Animal. Cat. Radio button. Non selected. 1 of 3."
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item (scan mode)) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item (scan mode))
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Selected. Requires selection. Contains 2 items. Required. Heading level 3. Animal."
  • Result: (pass)
    • Test Case: Use Up arrow (Read previous item (scan mode)) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item (scan mode))
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "Selected. Requires selection. Contains 2 items. Required. Heading level 3. CatDog."
Notes: Reading mode passed because "Contains 2 items" implies a grouping
NVDAChromepartial
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Animal grouping required. Cat radio button. Checked, 1 of 3."
  • Result: (fail)
    • Test Case: Use down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Heading level 3 Animal"
  • Result: (pass)
    • Test Case: Use up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "radio button not checked. clickable Cat. radio button not checked. clickable. CatDog."
NVDAFirefoxpartial
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Animal grouping required. Cat radio button. Checked, 1 of 3."
  • Result: (fail)
    • Test Case: Use down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Heading level 3 Animal"
  • Result: (pass)
    • Test Case: Use up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "radio button not checked. clickable Cat. radio button not checked. clickable. CatDog."
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal panel, cat, not selected, radio button"
  • Result: (pass)
    • Test Case: Use down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "animal panel"
  • Result: (pass)
    • Test Case: Use up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "animal panel. cat, not selected, radio button. dog, not selected, radio button. catdog, not selected, radio button"
TalkBackChromenone
  • Result: (fail)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="radiogroup"]`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe right (or alt+right arrow) (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "No checked, cat, radio button. Double tap to toggle."
    • Result Notes: Not conveyed when any of the radio buttons are focused
  • Result: (fail)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="radiogroup"]`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe right (or alt+right arrow) (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "No checked, cat, radio button. Double tap to toggle."
    • Result Notes: Group semantics were not conveyed
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safarinone
  • Result: (fail)
    • Test Case: Use Swipe Right (Next item) while within `*[role="radiogroup"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: within target
        • Keyboard focus is: within target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Right (Next item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Cat, radio button, unchecked, 1 of 3, required"
  • Result: (fail)
    • Test Case: Use Swipe Right (Next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Right (Next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Animal, Heading level 3, required"
  • Result: (fail)
    • Test Case: Use Swipe Left (Previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Left (Previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "CatDog. Radio button, unchecked, 3 of 3, required"
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Cat, radio button, 1 of 3, Animal, radio group."
  • Result: (pass)
    • Test Case: Use VO + Right arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: VO + Right arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Animal. Required. Radio group."
  • Result: (pass)
    • Test Case: Use VO + Left Arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: VO + Left Arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "End of Animal. Required. Radio group."
Windows Speech RecognitionChromenot applicable-

Extended Support for: radiogroup 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 radiogroup role: convey the boundaries of the group

This expectation is from the radiogroup role feature.

Rationale:

A screen reader user needs to be aware when they enter and exit a group

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • In reading mode, there might be a stop for both the start end end of the group. When entering the group, something like "group name, group" might be announced. When leaving the group, something like "end of group" might be announced.
  • In reading mode, there might not be a stop for the start and end of the group. In this case, the screen reader might announce the group name when the user navigates to the first child and announce that the user is leaving the group when the user navigates out of the group.
  • In interaction mode, there will not be a stop for the start and end of the group. In this case, the screen reader might announce the group name when the user jumps to an interactive child and announce that the user is leaving the group when the user jumps out of the group.

Grading method:

All of the listed commands must pass for the expectation to pass.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "group start, animal"
  • Result: (pass)
    • Test Case: Use Up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "group end"
JAWSIEyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "group start, animal"
  • Result: (pass)
    • Test Case: Use Up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "group end"
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal, required, cat radio button, not checked, 1 of 3"
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "group start, animal"
  • Result: (pass)
    • Test Case: Use Up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "group end"
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Animal. Cat. Radio button. Non selected. 1 of 3."
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item (scan mode)) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Down arrow (Read next item (scan mode))
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Selected. Requires selection. Contains 2 items. Required. Heading level 3. Animal."
  • Result: (pass)
    • Test Case: Use Up arrow (Read previous item (scan mode)) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Up arrow (Read previous item (scan mode))
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "Selected. Requires selection. Contains 2 items. Required. Heading level 3. CatDog."
Notes: Reading mode passed because "Contains 2 items" implies a grouping
NVDAChromepartial
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Animal grouping required. Cat radio button. Checked, 1 of 3."
  • Result: (fail)
    • Test Case: Use down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Heading level 3 Animal"
  • Result: (fail)
    • Test Case: Use up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "radio button not checked. clickable Cat. radio button not checked. clickable. CatDog."
  • Result: (fail)
    • Test Case: Use down arrow (Read next item) to navigate forwards out of `*[role="radiogroup"]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: within target
        • Keyboard focus is: within target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: down arrow (Read next item)
        • After issuing the command, virtual focus should be: after target
      6. Record results for the relevant expectations
    • Output: "Button. Submit."
NVDAFirefoxpartial
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Animal grouping required. Cat radio button. Checked, 1 of 3."
  • Result: (fail)
    • Test Case: Use down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Heading level 3 Animal"
  • Result: (fail)
    • Test Case: Use up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "radio button not checked. clickable Cat. radio button not checked. clickable. CatDog."
  • Result: (fail)
    • Test Case: Use down arrow (Read next item) to navigate forwards out of `*[role="radiogroup"]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: within target
        • Keyboard focus is: within target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: down arrow (Read next item)
        • After issuing the command, virtual focus should be: after target
      6. Record results for the relevant expectations
    • Output: "Button. Submit."
OrcaFirefoxpartial
  • Result: (unknown)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "animal panel, cat, not selected, radio button"
  • Result: (pass)
    • Test Case: Use down arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: down arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "animal panel"
  • Result: (pass)
    • Test Case: Use up arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: up arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "animal panel. cat, not selected, radio button. dog, not selected, radio button. catdog, not selected, radio button"
  • Result: (pass)
    • Test Case: Use down arrow (Read next item) to navigate forwards out of `*[role="radiogroup"]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: within target
        • Keyboard focus is: within target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: down arrow (Read next item)
        • After issuing the command, virtual focus should be: after target
      6. Record results for the relevant expectations
    • Output: "leaving panel"
TalkBackChromenone
  • Result: (fail)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="radiogroup"]`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe right (or alt+right arrow) (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "No checked, cat, radio button. Double tap to toggle."
    • Result Notes: Not conveyed when any of the radio buttons are focused
  • Result: (fail)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="radiogroup"]`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe right (or alt+right arrow) (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "No checked, cat, radio button. Double tap to toggle."
    • Result Notes: Group semantics were not conveyed
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safarinone
  • Result: (fail)
    • Test Case: Use Swipe Right (Next item) while within `*[role="radiogroup"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: within target
        • Keyboard focus is: within target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Right (Next item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Cat, radio button, unchecked, 1 of 3, required"
  • Result: (fail)
    • Test Case: Use Swipe Right (Next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Right (Next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Animal, Heading level 3, required"
  • Result: (fail)
    • Test Case: Use Swipe Left (Previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Left (Previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "CatDog. Radio button, unchecked, 3 of 3, required"
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward into `*[role="radiogroup"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: within target
      6. Record results for the relevant expectations
    • Output: "Cat, radio button, 1 of 3, Animal, radio group."
  • Result: (pass)
    • Test Case: Use VO + Right arrow (Read next item) to navigate forward to the start of `*[role="radiogroup"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: VO + Right arrow (Read next item)
        • After issuing the command, virtual focus should be: start of target
      6. Record results for the relevant expectations
    • Output: "Animal. Required. Radio group."
  • Result: (pass)
    • Test Case: Use VO + Left Arrow (Read previous item) to navigate backwards to the end of `*[role="radiogroup"]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:*[role="radiogroup"]
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: after target
        • Keyboard focus is: after target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: VO + Left Arrow (Read previous item)
        • After issuing the command, virtual focus should be: end of target
      6. Record results for the relevant expectations
    • Output: "End of Animal. Required. Radio group."
Windows Speech RecognitionChromenot applicable-

Extended Support for: radiogroup role: convey the boundaries of the group

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
JAWS2019.1906.10Chrome7519032019-07-01
JAWS2019.1906.10IE1119032019-07-01
JAWS2019.1906.10Firefox6719032019-07-01
Narrator1903Edge44.1776319032019-07-01
NVDA2019.1.1Chrome7519032019-07-01
NVDA2019.1.1Firefox6719032019-07-01
Orca3.31.4Firefox69Ubuntu 19.042019-09-15
TalkBack7.3.0Chrome7672019-07-27
VoiceOver (iOS)12.3.1Safari12.3.112.3.12019-07-01
VoiceOver (macOS)10.14.5Safari12.1.110.14.52019-07-01

History

  • 2019-07-01 Test created
  • 2019-08-16 Chrome results added.
  • 2019-09-15 orca added