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

Test: aria-errormessage attribute with aria-invalid="true"

Screen Reader support level: partial (11/20)

Voice Control support level: not applicable (or no 'MUST' expectations)

On this page

About this test

Tests the aria-errormessage attribute with aria-invalid="true". The error message must be conveyed.

Run this test and and submit your results

Age of results

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

Caution

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

Test HTML

open the test page
<!DOCTYPE html>
<html lang="en">
<head>
    <title>aria-errormessage examples</title>
</head>
<body>
<h1>aria-errormessage Examples</h1>

<!-- Initial valid state -->
<label for="invalid-false">Input with aria-invalid="false"</label>
<input id="invalid-false" type="text" aria-errormessage="invalid-false-msg" value="" aria-invalid="false">
<div id="invalid-false-msg" style="visibility:hidden">example error text</div>

<!-- User has input an invalid value -->
<label for="invalid-true">Input with aria-invalid="true"</label>
<input id="invalid-true" type="text" aria-errormessage="invalid-true-msg" aria-invalid="true" value="" >
<div id="invalid-true-msg">example error text</div>

<h2>Reference input with aria-invalid="true" but no aria-errormessage</h2>
<p>It may not always be clear if aria-invalid="true" is being conveyed" or if aria-errormessage is being conveyed, or both. So the following is used as a reference.</p>
<label for="reference-input">Reference input</label>
<input id="reference-input" type="text" aria-invalid="true" value="">

</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-errormessage attribute
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-errormessage attribute: convey the error when the error message is NOT pertinent - 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-errormessage attribute feature.

Rationale:

Users should not be made aware of the error message when the input is not in an error state

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST NOT
  • Voice Control: NA

Examples:

  • when an input has an error message but also has aria-invalid="false", the error message will not be conveyed because it is not pertinent

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 Down arrow (Read next item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "blank, edit, Input with aria-invalid="false", edit, type in text"
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", edit, type in text"
JAWSIEnone
  • Result: (fail)
    • Test Case: Use Down arrow (Read next item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "edit, Input with aria-invalid="false", edit, has error, example error text, type in text"
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", edit, has error, example error text, type in text"
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "blank, edit"
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", edit"
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item (scan mode)) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: target
      6. Record results for the relevant expectations
    • Output: "Input with aria-invalid="false", edit, scan off"
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", edit"
NVDAChromeunknown-
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use down arrow (Read next item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", entry"
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", entry"
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use down arrow (Read next item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", entry"
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", entry"
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use Swipe right (Read next item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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 (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Edit box, input with aria-invalid="false""
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-errormessage]:not([aria-invalid=true])`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", text field, double tap to edit"
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use VO + Right arrow (Read next item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", edit text"
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage]:not([aria-invalid=true])`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage]:not([aria-invalid=true])
        • If multiple elements match the target, 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: "Input with aria-invalid="false", edit text"
Windows Speech RecognitionChromenot applicable-

Extended Support for: aria-errormessage attribute: convey the error when the error message is NOT pertinent

These are less common combinations

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

Expectation for the aria-errormessage attribute: convey that the referenced error message is pertinent - 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-errormessage attribute feature.

Rationale:

Users need to know that the error message exists when the input is in an aria-invalid="true" state

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • screen readers might convey the accessible name of the referenced ID
  • screen readers might announce that an error message is present and provide a shortcut to jump to the error message

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 Down arrow (Read next item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "blank, edit, Input with aria-invalid="true", invalid entry, has error, example error text, type in text"
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", edit, invalid entry, has error, example error text, type in text"
JAWSIEyes
  • Result: (pass)
    • Test Case: Use Down arrow (Read next item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "blank, edit, Input with aria-invalid="true", invalid entry, has error, example error text, type in text"
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", edit, invalid entry, has error, example error text, type in text"
JAWSFirefoxpartial
  • Result: (fail)
    • Test Case: Use Down arrow (Read next item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "edit, invalid entry"
    • Result Notes: not conveyed when either the target or its label are read
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", edit, invalid entry, has error, example error text, type in text"
NarratorEdgenone
  • Result: (fail)
    • Test Case: Use Down arrow (Read next item (scan mode)) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: target
      6. Record results for the relevant expectations
    • Output: "Input with aria-invalid="true", edit, invalid, scan off"
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", edit, invalid"
NVDAChromenone
  • Result: (fail)
    • Test Case: Use down arrow (Read next item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", edit, invalid entry"
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", edit, invalid entry, blank"
NVDAFirefoxnone
  • Result: (fail)
    • Test Case: Use down arrow (Read next item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", edit, invalid entry has auto complete"
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", edit, invalid entry has auto complete, blank"
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use down arrow (Read next item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", entry, invalid entry, example error text"
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", entry, invalid entry, example error texte"
TalkBackChromenone
  • Result: (fail)
    • Test Case: Use Swipe right (Read next item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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 (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Edit box, error: Invalid entry, input with aria-invalid="true""
    • Result Notes: the text "error: invalid entry" conveys the aria-invalid state, note the aria-errormessage property.
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-errormessage][aria-invalid=true]`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", text field, invalid data, double tap to edit"
VoiceOver (macOS)Safarinone
  • Result: (fail)
    • Test Case: Use VO + Right arrow (Read next item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", invalid data, edit text"
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `*[aria-errormessage][aria-invalid=true]`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Identify all elements that match this selector:*[aria-errormessage][aria-invalid=true]
        • If multiple elements match the target, 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: "Input with aria-invalid="true", invalid data, edit text"
Windows Speech RecognitionChromenot applicable-

Extended Support for: aria-errormessage attribute: convey that the referenced error message is pertinent

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2019.1907.42Edge 44unknown-
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.1907.42Chrome7619032019-09-02
JAWS2019.1907.42IE1119032019-09-02
JAWS2019.1907.42Firefox6619032019-09-02
Narrator1903Edge44.1776319032019-09-02
NVDA2019.0.1Chrome7619032019-09-02
NVDA2019.0.1Firefox6819032019-04-02
Orca3.31.4Firefox69Ubuntu 19.042019-09-16
TalkBack7.3.0Chrome7672019-09-02
VoiceOver (iOS)12.4.1Safari12.4.112.4.12019-09-02
VoiceOver (macOS)10.14.6Safari12.1.210.14.62019-09-02

History

  • 2019-04-09 Test created
  • 2019-08-02 Updated results
  • 2019-09-16 Add orca results