Important: This website does not attempt to establish a standard for how assistive technologies must behave. Read the FAQ for more information. Additionally, this is a work in progress. Please submit feedback or suggestions.

Test: aria-describedby attribute that references role="alert"

Screen Reader support level: partial (9/11)

Voice Control support level: unknown

On this page

About this test

This test ensures that the accessible description is computed correctly when aria-describedby references an element with role="alert". See related Firefox bug that suggests that aria-describedby should not include the text in role="alert". This is a common design pattern when error messages update in real time and the author wants to inform screen reader users of those updates.

Submit new test results

Age of results

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

Test HTML

Open the test case HTML file
<!DOCTYPE html>
<html lang="en">
<head>
    <title>ARIA describedby with role="alert"</title>
</head>
<body>

<h1>ARIA describedby with role="alert</h1>

<label for="target">Example label</label>
<input id="target" aria-describedby="error" type="text">
<div id="error" role="alert">
    error
</div>

</body>
</html>

Summary of Screen Reader support by expectation

aria-describedby attribute
ExpectationJAWSNarratorNVDAOrcaTalkBackVoiceOver (iOS)VoiceOver (macOS)
ChromeEdgeFirefoxEdgeChromeEdgeFirefoxFirefoxChromeSafariSafari
MUST contribute to the description applied to: input[type="text"] elementsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportednonenone

* means that some support is hidden behind settings

Summary of Voice Control support by expectation

aria-describedby attribute
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech RecognitionWindows Voice Access
ChromeChromeSafariSafariEdgeChromeEdgeChrome
Not applicable

* means that some support is hidden behind settings

Detailed support results by expectation

Expectation for the aria-describedby attribute: contribute to the description - applied to the input[type="text"] element

This expectation is applied to the input[type="text"] element. Expectations and results might differ when the the feature is applied to different roles.

This expectation is from the aria-describedby attribute feature.

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Grading method:

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

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Example label, edit, error"
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      1. Launch JAWS 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-describedby]
        • 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: "Example label, edit, error"
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Example label, edit, error"
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Example label, edit, error"
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Example label edit error, blank"
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      1. Launch NVDA 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-describedby]
        • 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: "Example label edit error, blank"
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Example label edit has auto complete, error, blank"
OrcaFirefoxyes
  • Result: (fail)
    • Test Case: Use down arrow (Read next item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: target
      6. Record results for the relevant expectations
    • Output: "Example label, entry"
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Example label, entry, error, focus mode"
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Edit box, example label, error"
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) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Example label, text field"
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue.
VoiceOver (macOS)Safarinone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Example label, edit text"
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
  • Result: (fail)
    • Test Case: Use VO + Right arrow (Read next item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: target
      6. Record results for the relevant expectations
    • Output: "Example label, edit text"
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue.
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: aria-describedby attribute: contribute to the description

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2018.1811.2IE 11yes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-describedby]`
      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-describedby]
        • 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: "Example label, edit, error"
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Dates and Versions of tested combinations

ATAT VersionBrowserBrowser versionOS versionDate tested
JAWS2021.2107.12Chrome92Windows 10 version 21h12021-07-23
JAWS2021.2107.12Edge92Windows 10 version 21h12021-07-23
JAWS2018.1811.2Firefox60Windows 10 version 18092019-03-08
NarratorWindows 10 version 20h2Edge88Windows 10 version 20h22021-03-02
NVDA2021.1Chrome92Windows 10 version 21h12021-07-23
NVDA2021.1Edge92Windows 10 version 21h12021-07-23
NVDA2020.4Firefox86Windows 10 version 20h22021-03-02
Orca3.38.0Firefox86Ubuntu 20.102021-03-02
TalkBack7.3.0Chrome757.02019-07-27
VoiceOver (iOS)14.4Safari14.414.42021-03-02
VoiceOver (macOS)11.2.2Safari14.0.311.2.22019-03-08

History

  • 2019-02-08 Test created
  • 2019-07-27 Talkback results added
  • 2019-09-16 Add orca results
  • 2020-02-15 retest NVDA with crome and firefox
  • 2021-03-02 retest Narrator+Edge, NVDA+FF, Orca+FF, VO+Safari (iOS and macOS)
  • 2021-07-23 Added Narrator results for NVDA and JAWS, updated NVDA+Chrome results.