Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
ecd05bf
Move 'ROOT/tests/resources' folder to 'ROOT/resources'
howard-e Aug 5, 2024
aebf1cc
Fixes after rebase
howard-e Aug 27, 2024
2de939a
Update .prettierignore
howard-e Aug 27, 2024
77614c1
Move build folder's resources location and update paths
howard-e Aug 27, 2024
24b02ba
Update lint ignores
howard-e Aug 27, 2024
c46c66a
Fixes after rebase
howard-e Aug 29, 2024
dba9de7
Merge branch 'master' into move-resources
howard-e Oct 16, 2025
74da97b
Update prettierignore and reinstall deps
howard-e Oct 16, 2025
7e50bc6
Update eslint.config.mjs
howard-e Oct 16, 2025
de879d8
Move current folders in tests/ to tests/apg/
howard-e Oct 16, 2025
1a3b114
Continue running npm run create-all-tests
howard-e Nov 3, 2025
2b790db
Similar structure in build folder
howard-e Nov 3, 2025
507ebe2
Share build logic for v1
howard-e Nov 3, 2025
8bd47c7
Merge branch 'master' into tests-sub-folder-support
howard-e Nov 3, 2025
9013184
Fix review pages to use subfolder if found
howard-e Nov 3, 2025
c9744bf
Fix tests
howard-e Nov 3, 2025
eb749e6
Support allowing a '--target' flag for which tests subfolder to place…
howard-e Nov 3, 2025
dcffd84
Fix paths in built files
howard-e Nov 3, 2025
d14384a
Fix tests
howard-e Nov 3, 2025
1ff103b
Create /tests/aria/fake-alert
howard-e Nov 3, 2025
2c748fb
Update name of pattern under /tests/aria/fake-alert
howard-e Nov 3, 2025
44f4680
Force tests hash update
howard-e Nov 3, 2025
a232ce9
Rename fake-alert to aria-required
mcking65 Nov 5, 2025
c994ad1
Revise references.csv
mcking65 Nov 5, 2025
272b0a0
Generate .html source files with scripts automatically
mcking65 Nov 5, 2025
ccccb6f
Empty commit
howard-e Nov 5, 2025
1308d30
Make test case and setup script
mcking65 Nov 5, 2025
c560e3f
Merge branch 'tests-sub-folder-support-example' of https://github.com…
mcking65 Nov 5, 2025
7845eca
rename directory from aria-required to aria-required-text-input
mcking65 Nov 5, 2025
3c99df5
Empty commit after updating netlify environment versions
howard-e Nov 5, 2025
1b14885
Empty commit after updating netlify environment versions
howard-e Nov 5, 2025
52bd182
Merge branch 'tests-sub-folder-support-example' of https://github.com…
mcking65 Nov 5, 2025
f5ab0e4
first 3 setup scripts
mcking65 Nov 6, 2025
995f988
rename html file and update references.csv
mcking65 Nov 6, 2025
25ff6ec
update assertions and references
mcking65 Nov 6, 2025
a7c7533
update commands
mcking65 Nov 6, 2025
f9b96c6
Finish remaining 3 setup scripts
mcking65 Nov 6, 2025
4457e4f
Generate .html source files with scripts automatically
mcking65 Nov 6, 2025
553b7d3
Merge branch 'master' into tests-sub-folder-support-example
howard-e Nov 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions tests/aria/aria-required-text-input/data/assertions.csv
Original file line number Diff line number Diff line change
@@ -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
29 changes: 29 additions & 0 deletions tests/aria/aria-required-text-input/data/jaws-commands.csv
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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();
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// sets focus on a link after the button
testPageDocument.querySelector('#afterlink').focus();
Original file line number Diff line number Diff line change
@@ -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();
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// sets focus on a link before the button
testPageDocument.querySelector('#beforelink').focus();
Original file line number Diff line number Diff line change
@@ -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();
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// sets focus on the required input
testPageDocument.querySelector('#imaginary-word').focus();
29 changes: 29 additions & 0 deletions tests/aria/aria-required-text-input/data/nvda-commands.csv
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions tests/aria/aria-required-text-input/data/references.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
refId,type,value,linkText
author,metadata,Matt King,
authorEmail,metadata,[email protected],
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
7 changes: 7 additions & 0 deletions tests/aria/aria-required-text-input/data/scripts.csv
Original file line number Diff line number Diff line change
@@ -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
7 changes: 7 additions & 0 deletions tests/aria/aria-required-text-input/data/tests.csv
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<title>Text Input with aria-required Example</title>

<!-- js and css for this example. -->
<link href="css/aria-required.css" rel="stylesheet">
<script src="js/aria-required.js" type="text/javascript"></script>
</head>

<body>
<main>
<h1>Text Input with aria-required Example</h1>
<p>
The below example demonstrates a text input with the <code>aria-required</code> attribute.
</p>
<section>
<div class="example-header">
<h2 id="ex_label">Example</h2>
</div>
<div role="separator" id="ex_start_sep" aria-labelledby="ex_start_sep ex_label" aria-label="Start of"></div>
<div id="ex1">
<a id="beforelink" href="#beforelink">Navigate forwards from here</a>
<label for="imaginary-word">Imaginary Word</label>
<input type="text" id="imaginary-word" aria-required="true">
<a id="afterlink" href="#afterlink">Navigate backwards from here</a>
</div>
<div role="separator" id="ex_end_sep" aria-labelledby="ex_end_sep ex_label" aria-label="End of"></div>
</section>
</main>
</body>

</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<title>Text Input with aria-required Example</title>

<!-- js and css for this example. -->
<link href="css/aria-required.css" rel="stylesheet">
<script src="js/aria-required.js" type="text/javascript"></script>

<!-- Generated by process-test-directory.js -->
<script>
(function() {
function setupScript(testPageDocument) {
// setFocusAfterNotRequiredElement
// 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();

};
document.addEventListener('click', function(event) {
if (event.target.classList.contains('button-run-test-setup')) {
event.target.disabled = true;
setupScript(document);
}
});
})();
</script>
<!-- End of generated output --></head>

<body>
<main>
<h1>Text Input with aria-required Example</h1>
<p>
The below example demonstrates a text input with the <code>aria-required</code> attribute.
</p>
<section>
<div class="example-header">
<h2 id="ex_label">Example</h2>
</div>
<div role="separator" id="ex_start_sep" aria-labelledby="ex_start_sep ex_label" aria-label="Start of"></div>
<div id="ex1">
<a id="beforelink" href="#beforelink">Navigate forwards from here</a>
<label for="imaginary-word">Imaginary Word</label>
<input type="text" id="imaginary-word" aria-required="true">
<a id="afterlink" href="#afterlink">Navigate backwards from here</a>
</div>
<div role="separator" id="ex_end_sep" aria-labelledby="ex_end_sep ex_label" aria-label="End of"></div>
</section>

<!-- Generated by process-test-directory.js -->
<div style="position: relative; left: 0; right: 0; height: 2rem;">
<button class="button-run-test-setup" autofocus style="height: 100%; width: 100%;">Run Test Setup</button>
</div>
<!-- End of generated output --></main>
</body>

</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<title>Text Input with aria-required Example</title>

<!-- js and css for this example. -->
<link href="css/aria-required.css" rel="stylesheet">
<script src="js/aria-required.js" type="text/javascript"></script>

<!-- Generated by process-test-directory.js -->
<script>
(function() {
function setupScript(testPageDocument) {
// setFocusAfterRequiredElement
// sets focus on a link after the button
testPageDocument.querySelector('#afterlink').focus();

};
document.addEventListener('click', function(event) {
if (event.target.classList.contains('button-run-test-setup')) {
event.target.disabled = true;
setupScript(document);
}
});
})();
</script>
<!-- End of generated output --></head>

<body>
<main>
<h1>Text Input with aria-required Example</h1>
<p>
The below example demonstrates a text input with the <code>aria-required</code> attribute.
</p>
<section>
<div class="example-header">
<h2 id="ex_label">Example</h2>
</div>
<div role="separator" id="ex_start_sep" aria-labelledby="ex_start_sep ex_label" aria-label="Start of"></div>
<div id="ex1">
<a id="beforelink" href="#beforelink">Navigate forwards from here</a>
<label for="imaginary-word">Imaginary Word</label>
<input type="text" id="imaginary-word" aria-required="true">
<a id="afterlink" href="#afterlink">Navigate backwards from here</a>
</div>
<div role="separator" id="ex_end_sep" aria-labelledby="ex_end_sep ex_label" aria-label="End of"></div>
</section>

<!-- Generated by process-test-directory.js -->
<div style="position: relative; left: 0; right: 0; height: 2rem;">
<button class="button-run-test-setup" autofocus style="height: 100%; width: 100%;">Run Test Setup</button>
</div>
<!-- End of generated output --></main>
</body>

</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<title>Text Input with aria-required Example</title>

<!-- js and css for this example. -->
<link href="css/aria-required.css" rel="stylesheet">
<script src="js/aria-required.js" type="text/javascript"></script>

<!-- Generated by process-test-directory.js -->
<script>
(function() {
function setupScript(testPageDocument) {
// setFocusBeforeNotRequiredElement
// 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();

};
document.addEventListener('click', function(event) {
if (event.target.classList.contains('button-run-test-setup')) {
event.target.disabled = true;
setupScript(document);
}
});
})();
</script>
<!-- End of generated output --></head>

<body>
<main>
<h1>Text Input with aria-required Example</h1>
<p>
The below example demonstrates a text input with the <code>aria-required</code> attribute.
</p>
<section>
<div class="example-header">
<h2 id="ex_label">Example</h2>
</div>
<div role="separator" id="ex_start_sep" aria-labelledby="ex_start_sep ex_label" aria-label="Start of"></div>
<div id="ex1">
<a id="beforelink" href="#beforelink">Navigate forwards from here</a>
<label for="imaginary-word">Imaginary Word</label>
<input type="text" id="imaginary-word" aria-required="true">
<a id="afterlink" href="#afterlink">Navigate backwards from here</a>
</div>
<div role="separator" id="ex_end_sep" aria-labelledby="ex_end_sep ex_label" aria-label="End of"></div>
</section>

<!-- Generated by process-test-directory.js -->
<div style="position: relative; left: 0; right: 0; height: 2rem;">
<button class="button-run-test-setup" autofocus style="height: 100%; width: 100%;">Run Test Setup</button>
</div>
<!-- End of generated output --></main>
</body>

</html>
Loading
Loading