Text Input with aria-required Example
+
+ The below example demonstrates a text input with the aria-required attribute.
+
diff --git a/tests/aria/aria-required-text-input/data/assertions.csv b/tests/aria/aria-required-text-input/data/assertions.csv new file mode 100644 index 000000000..f6946946a --- /dev/null +++ b/tests/aria/aria-required-text-input/data/assertions.csv @@ -0,0 +1,4 @@ +assertionId,priority,assertionStatement,assertionPhrase,refIds +nameOfInput,1,"Name of the text input, 'Imaginary Word', is conveyed","convey name of the text input, 'Imaginary Word'",inputTypeText +roleTextbox,1,Role 'textbox' is conveyed,convey role 'textbox',inputTypeText +stateRequired,1,"State of the input, 'required', is conveyed","convey state of the input, 'required'",aria-required diff --git a/tests/aria/aria-required-text-input/data/jaws-commands.csv b/tests/aria/aria-required-text-input/data/jaws-commands.csv new file mode 100644 index 000000000..b15ebff62 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/jaws-commands.csv @@ -0,0 +1,29 @@ +testId,command,settings,assertionExceptions,presentationNumber +navForwardsToRequiredElement,down,virtualCursor,,1 +navForwardsToRequiredElement,e,virtualCursor,,1.1 +navForwardsToRequiredElement,f,virtualCursor,,1.2 +navForwardsToRequiredElement,tab,virtualCursor,,1.3 +navForwardsToRequiredElement,tab,pcCursor,,1.4 +navBackToRequiredElement,up,virtualCursor,,2 +navBackToRequiredElement,shift+e,virtualCursor,,2.1 +navBackToRequiredElement,shift+f,virtualCursor,,2.2 +navBackToRequiredElement,shift+tab,virtualCursor,,2.3 +navBackToRequiredElement,shift+tab,pcCursor,,2.4 +navForwardsToNotRequiredElement,down,virtualCursor,,5 +navForwardsToNotRequiredElement,e,virtualCursor,,5.1 +navForwardsToNotRequiredElement,f,virtualCursor,,5.2 +navForwardsToNotRequiredElement,tab,virtualCursor,,5.3 +navForwardsToNotRequiredElement,tab,pcCursor,,5.4 +navBackToNotRequiredElement,up,virtualCursor,,6 +navBackToNotRequiredElement,shift+e,virtualCursor,,6.1 +navBackToNotRequiredElement,shift+f,virtualCursor,,6.2 +navBackToNotRequiredElement,shift+tab,virtualCursor,,6.3 +navBackToNotRequiredElement,shift+tab,pcCursor,,6.4 +reqInfoAboutRequiredElement,ins+tab,virtualCursor,,10 +reqInfoAboutRequiredElement,ins+up,virtualCursor,,10.1 +reqInfoAboutRequiredElement,ins+tab,pcCursor,,10.2 +reqInfoAboutRequiredElement,ins+up,pcCursor,,10.3 +reqInfoAboutNotRequiredElement,ins+tab,virtualCursor,,11 +reqInfoAboutNotRequiredElement,ins+up,virtualCursor,,11.1 +reqInfoAboutNotRequiredElement,ins+tab,pcCursor,,11.2 +reqInfoAboutNotRequiredElement,ins+up,pcCursor,,11.3 diff --git a/tests/aria/aria-required-text-input/data/js/setFocusAfterNotRequiredElement.js b/tests/aria/aria-required-text-input/data/js/setFocusAfterNotRequiredElement.js new file mode 100644 index 000000000..ecffd7579 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/js/setFocusAfterNotRequiredElement.js @@ -0,0 +1,7 @@ +// Set aria-required attribute on the text input to "false" +var input = testPageDocument.getElementById('imaginary-word'); +if (input) { + input.setAttribute('aria-required', 'false'); +} +// set focus on a link after the text input +testPageDocument.querySelector('#afterlink').focus(); diff --git a/tests/aria/aria-required-text-input/data/js/setFocusAfterRequiredElement.js b/tests/aria/aria-required-text-input/data/js/setFocusAfterRequiredElement.js new file mode 100644 index 000000000..6c9caf566 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/js/setFocusAfterRequiredElement.js @@ -0,0 +1,2 @@ +// sets focus on a link after the button +testPageDocument.querySelector('#afterlink').focus(); diff --git a/tests/aria/aria-required-text-input/data/js/setFocusBeforeNotRequiredElement.js b/tests/aria/aria-required-text-input/data/js/setFocusBeforeNotRequiredElement.js new file mode 100644 index 000000000..095a5a2ca --- /dev/null +++ b/tests/aria/aria-required-text-input/data/js/setFocusBeforeNotRequiredElement.js @@ -0,0 +1,7 @@ +// Set aria-required attribute on the text input to "false" +var input = testPageDocument.getElementById('imaginary-word'); +if (input) { + input.setAttribute('aria-required', 'false'); +} +// set focus on a link before the text input +testPageDocument.querySelector('#beforelink').focus(); diff --git a/tests/aria/aria-required-text-input/data/js/setFocusBeforeRequiredElement.js b/tests/aria/aria-required-text-input/data/js/setFocusBeforeRequiredElement.js new file mode 100644 index 000000000..a453f504b --- /dev/null +++ b/tests/aria/aria-required-text-input/data/js/setFocusBeforeRequiredElement.js @@ -0,0 +1,2 @@ +// sets focus on a link before the button +testPageDocument.querySelector('#beforelink').focus(); diff --git a/tests/aria/aria-required-text-input/data/js/setFocusOnNotRequiredElement.js b/tests/aria/aria-required-text-input/data/js/setFocusOnNotRequiredElement.js new file mode 100644 index 000000000..27e18b2a4 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/js/setFocusOnNotRequiredElement.js @@ -0,0 +1,7 @@ +// Set aria-required attribute on the text input to "false" +var input = testPageDocument.getElementById('imaginary-word'); +if (input) { + input.setAttribute('aria-required', 'false'); +} +// set focus on the not required text input +testPageDocument.querySelector('#imaginary-word').focus(); diff --git a/tests/aria/aria-required-text-input/data/js/setFocusOnRequiredElement.js b/tests/aria/aria-required-text-input/data/js/setFocusOnRequiredElement.js new file mode 100644 index 000000000..78c5f3b86 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/js/setFocusOnRequiredElement.js @@ -0,0 +1,2 @@ +// sets focus on the required input +testPageDocument.querySelector('#imaginary-word').focus(); diff --git a/tests/aria/aria-required-text-input/data/nvda-commands.csv b/tests/aria/aria-required-text-input/data/nvda-commands.csv new file mode 100644 index 000000000..11cdd8054 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/nvda-commands.csv @@ -0,0 +1,29 @@ +testId,command,settings,assertionExceptions,presentationNumber +navForwardsToRequiredElement,down,browseMode,,1 +navForwardsToRequiredElement,e,browseMode,,1.1 +navForwardsToRequiredElement,f,browseMode,,1.2 +navForwardsToRequiredElement,tab,browseMode,,1.3 +navForwardsToRequiredElement,tab,focusMode,,1.4 +navBackToRequiredElement,up,browseMode,,2 +navBackToRequiredElement,shift+e,browseMode,,2.1 +navBackToRequiredElement,shift+f,browseMode,,2.2 +navBackToRequiredElement,shift+tab,browseMode,,2.3 +navBackToRequiredElement,shift+tab,focusMode,,2.4 +navForwardsToNotRequiredElement,down,browseMode,,5 +navForwardsToNotRequiredElement,e,browseMode,,5.1 +navForwardsToNotRequiredElement,f,browseMode,,5.2 +navForwardsToNotRequiredElement,tab,browseMode,,5.3 +navForwardsToNotRequiredElement,tab,focusMode,,5.4 +navBackToNotRequiredElement,up,browseMode,,6 +navBackToNotRequiredElement,shift+e,browseMode,,6.1 +navBackToNotRequiredElement,shift+f,browseMode,,6.2 +navBackToNotRequiredElement,shift+tab,browseMode,,6.3 +navBackToNotRequiredElement,shift+tab,focusMode,,6.4 +reqInfoAboutRequiredElement,ins+tab,browseMode,,10 +reqInfoAboutRequiredElement,ins+up,browseMode,,10.1 +reqInfoAboutRequiredElement,ins+tab,focusMode,,10.2 +reqInfoAboutRequiredElement,ins+up,focusMode,,10.3 +reqInfoAboutNotRequiredElement,ins+tab,browseMode,,11 +reqInfoAboutNotRequiredElement,ins+up,browseMode,,11.1 +reqInfoAboutNotRequiredElement,ins+tab,focusMode,,11.2 +reqInfoAboutNotRequiredElement,ins+up,focusMode,,11.3 diff --git a/tests/aria/aria-required-text-input/data/references.csv b/tests/aria/aria-required-text-input/data/references.csv new file mode 100644 index 000000000..b65129c88 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/references.csv @@ -0,0 +1,9 @@ +refId,type,value,linkText +author,metadata,Matt King, +authorEmail,metadata,a11ythinker@gmail.com, +title,metadata,aria-required on a Text Input, +reference,metadata,reference/2025-11-5/aria-required-text-input.html,Test Case Page for aria-required on text input Example +designPattern,metadata,, +example,metadata,, +aria-required,aria,aria-required,aria-required +inputTypeText,htmlAam,inputTypeText,inputTypeText diff --git a/tests/aria/aria-required-text-input/data/scripts.csv b/tests/aria/aria-required-text-input/data/scripts.csv new file mode 100644 index 000000000..4361d0169 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/scripts.csv @@ -0,0 +1,7 @@ +setupScript,setupScriptDescription +setFocusAfterRequiredElement,sets focus on a link after the required text input +setFocusAfterNotRequiredElement,sets aria-required to false and then focuses a link after the required text input +setFocusBeforeRequiredElement,sets focus on a link before the required text input +setFocusBeforeNotRequiredElement,sets aria-required to false and then focuses a link before the required text input +setFocusOnRequiredElement,sets focus on the required text input +setFocusOnNotRequiredElement,sets aria-required to false and then focuses the text input diff --git a/tests/aria/aria-required-text-input/data/tests.csv b/tests/aria/aria-required-text-input/data/tests.csv new file mode 100644 index 000000000..3182e8387 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/tests.csv @@ -0,0 +1,7 @@ +testId,title,presentationNumber,setupScript,instructions,assertions +navForwardsToRequiredElement,Navigate forwards to a required text input,5,setFocusBeforeRequiredElement,"Starting at the 'Navigate forwards from here' link, navigate to the 'Imaginary Word' text input.",nameOfInput roleTextbox stateRequired +navBackToRequiredElement,Navigate backwards to a required text input,6,setFocusAfterRequiredElement,"Starting at the 'Navigate backwards from here' link, navigate to the 'Imaginary Word' text input.",nameOfInput roleTextbox stateRequired +navForwardsToNotRequiredElement,Navigate forwards to a text input with required set to false,10,setFocusBeforeNotRequiredElement,"Starting at the 'Navigate forwards from here' link, navigate to the 'Imaginary Word' text input.",nameOfInput roleTextbox +navBackToNotRequiredElement,Navigate backwards to a text input with required set to false,11,setFocusAfterNotRequiredElement,"Starting at the 'Navigate backwards from here' link, navigate to the 'Imaginary Word' text input.",nameOfInput roleTextbox +reqInfoAboutRequiredElement,Request information about a required text input,15,setFocusOnRequiredElement,"Starting at the 'Imaginary Word' text input, read information about the text input.",nameOfInput roleTextbox stateRequired +reqInfoAboutNotRequiredElement,Request information about a text input with required set to false,16,setFocusOnNotRequiredElement,"Starting at the 'Imaginary Word' text input, read information about the text input.",nameOfInput roleTextbox diff --git a/tests/aria/aria-required-text-input/data/voiceover_macos-commands.csv b/tests/aria/aria-required-text-input/data/voiceover_macos-commands.csv new file mode 100644 index 000000000..3e0f725b1 --- /dev/null +++ b/tests/aria/aria-required-text-input/data/voiceover_macos-commands.csv @@ -0,0 +1,21 @@ +testId,command,settings,assertionExceptions,presentationNumber +navForwardsToRequiredElement,ctrl+opt+right,,,1 +navForwardsToRequiredElement,f,singleQuickKeyNavOn,,1.1 +navForwardsToRequiredElement,j,singleQuickKeyNavOn,,1.2 +navForwardsToRequiredElement,tab,,,1.3 +navBackToRequiredElement,ctrl+opt+left,,,2 +navBackToRequiredElement,shift+f,singleQuickKeyNavOn,,2.1 +navBackToRequiredElement,shift+j,singleQuickKeyNavOn,,2.2 +navBackToRequiredElement,shift+tab,,,2.3 +navForwardsToNotRequiredElement,ctrl+opt+right,,,5 +navForwardsToNotRequiredElement,f,singleQuickKeyNavOn,,5.1 +navForwardsToNotRequiredElement,j,singleQuickKeyNavOn,,5.2 +navForwardsToNotRequiredElement,tab,,,5.3 +navBackToNotRequiredElement,ctrl+opt+left,,,6 +navBackToNotRequiredElement,shift+f,singleQuickKeyNavOn,,6.1 +navBackToNotRequiredElement,shift+j,singleQuickKeyNavOn,,6.2 +navBackToNotRequiredElement,shift+tab,,,6.3 +reqInfoAboutRequiredElement,ctrl+opt+f3,,,10 +reqInfoAboutRequiredElement,ctrl+opt+f4,,,10.1 +reqInfoAboutNotRequiredElement,ctrl+opt+f3,,,11 +reqInfoAboutNotRequiredElement,ctrl+opt+f4,,,11.1 diff --git a/tests/aria/aria-required-text-input/reference/2025-11-5/aria-required-text-input.html b/tests/aria/aria-required-text-input/reference/2025-11-5/aria-required-text-input.html new file mode 100644 index 000000000..a26c75ece --- /dev/null +++ b/tests/aria/aria-required-text-input/reference/2025-11-5/aria-required-text-input.html @@ -0,0 +1,35 @@ + + + +
+ +
+ The below example demonstrates a text input with the aria-required attribute.
+
+ The below example demonstrates a text input with the aria-required attribute.
+
+ The below example demonstrates a text input with the aria-required attribute.
+
+ The below example demonstrates a text input with the aria-required attribute.
+
+ The below example demonstrates a text input with the aria-required attribute.
+
+ The below example demonstrates a text input with the aria-required attribute.
+
+ The below example demonstrates a text input with the aria-required attribute.
+