From 852348e97459b76602c7917b8e675c8354bc3f86 Mon Sep 17 00:00:00 2001
From: Jessica Wilkins <67210629+jdwilkin4@users.noreply.github.com>
Date: Tue, 17 Jun 2025 03:14:51 -0700
Subject: [PATCH] chore(curriculum): add JS a11y module (#60579)
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
Co-authored-by: Huyen Nguyen <25715018+huyenltnguyen@users.noreply.github.com>
Co-authored-by: Ilenia <26656284+ilenia-magoni@users.noreply.github.com>
---
client/i18n/locales/english/intro.json | 14 +
.../quiz-js-a11y/index.md | 9 +
.../review-js-a11y/index.md | 9 +
.../challenges/_meta/quiz-js-a11y/meta.json | 10 +
.../challenges/_meta/review-js-a11y/meta.json | 10 +
.../quiz-js-a11y/68376949899fcbad3c9cac23.md | 454 ++++++++++++++++++
.../683766860f71d4a96e429f3a.md | 23 +
.../superblock-structure/full-stack.json | 12 +
8 files changed, 541 insertions(+)
create mode 100644 client/src/pages/learn/full-stack-developer/quiz-js-a11y/index.md
create mode 100644 client/src/pages/learn/full-stack-developer/review-js-a11y/index.md
create mode 100644 curriculum/challenges/_meta/quiz-js-a11y/meta.json
create mode 100644 curriculum/challenges/_meta/review-js-a11y/meta.json
create mode 100644 curriculum/challenges/english/25-front-end-development/quiz-js-a11y/68376949899fcbad3c9cac23.md
create mode 100644 curriculum/challenges/english/25-front-end-development/review-js-a11y/683766860f71d4a96e429f3a.md
diff --git a/client/i18n/locales/english/intro.json b/client/i18n/locales/english/intro.json
index cd08a2abc37..8b6b865f059 100644
--- a/client/i18n/locales/english/intro.json
+++ b/client/i18n/locales/english/intro.json
@@ -1799,6 +1799,7 @@
"review-javascript-fundamentals": "JavaScript Fundamentals Review",
"higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
"dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
"debugging-javascript": "Debugging",
"basic-regex": "Basic Regex",
"form-validation": "Form Validation",
@@ -3370,6 +3371,19 @@
"Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
]
},
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ },
"lecture-debugging-techniques": {
"title": "Debugging Techniques",
"intro": [
diff --git a/client/src/pages/learn/full-stack-developer/quiz-js-a11y/index.md b/client/src/pages/learn/full-stack-developer/quiz-js-a11y/index.md
new file mode 100644
index 00000000000..83c0cff6012
--- /dev/null
+++ b/client/src/pages/learn/full-stack-developer/quiz-js-a11y/index.md
@@ -0,0 +1,9 @@
+---
+title: Introduction to the JavaScript and Accessibility Quiz
+block: quiz-js-a11y
+superBlock: full-stack-developer
+---
+
+## Introduction to the JavaScript and Accessibility Quiz
+
+Test your knowledge of JavaScript and accessibility best practices with this quiz.
diff --git a/client/src/pages/learn/full-stack-developer/review-js-a11y/index.md b/client/src/pages/learn/full-stack-developer/review-js-a11y/index.md
new file mode 100644
index 00000000000..c277d4dd3fd
--- /dev/null
+++ b/client/src/pages/learn/full-stack-developer/review-js-a11y/index.md
@@ -0,0 +1,9 @@
+---
+title: Introduction to the JavaScript and Accessibility Review
+block: review-js-a11y
+superBlock: full-stack-developer
+---
+
+## Introduction to the JavaScript and Accessibility review
+
+This is review page for concepts including how to work with the `aria-expanded`, `aria-live`, and `aria-controls` attributes.
diff --git a/curriculum/challenges/_meta/quiz-js-a11y/meta.json b/curriculum/challenges/_meta/quiz-js-a11y/meta.json
new file mode 100644
index 00000000000..6dea9d38934
--- /dev/null
+++ b/curriculum/challenges/_meta/quiz-js-a11y/meta.json
@@ -0,0 +1,10 @@
+{
+ "name": "JavaScript and Accessibility Quiz",
+ "isUpcomingChange": true,
+ "blockType": "quiz",
+ "blockLayout": "link",
+ "dashedName": "quiz-js-a11y",
+ "superBlock": "full-stack-developer",
+ "challengeOrder": [{ "id": "68376949899fcbad3c9cac23", "title": "JavaScript and Accessibility Quiz" }],
+ "helpCategory": "JavaScript"
+}
diff --git a/curriculum/challenges/_meta/review-js-a11y/meta.json b/curriculum/challenges/_meta/review-js-a11y/meta.json
new file mode 100644
index 00000000000..0fd9816cf75
--- /dev/null
+++ b/curriculum/challenges/_meta/review-js-a11y/meta.json
@@ -0,0 +1,10 @@
+{
+ "name": "JavaScript and Accessibility Review",
+ "isUpcomingChange": true,
+ "blockType": "review",
+ "blockLayout": "link",
+ "dashedName": "review-js-a11y",
+ "superBlock": "full-stack-developer",
+ "challengeOrder": [{ "id": "683766860f71d4a96e429f3a", "title": "JavaScript and Accessibility Review" }],
+ "helpCategory": "JavaScript"
+}
diff --git a/curriculum/challenges/english/25-front-end-development/quiz-js-a11y/68376949899fcbad3c9cac23.md b/curriculum/challenges/english/25-front-end-development/quiz-js-a11y/68376949899fcbad3c9cac23.md
new file mode 100644
index 00000000000..267b1a3872b
--- /dev/null
+++ b/curriculum/challenges/english/25-front-end-development/quiz-js-a11y/68376949899fcbad3c9cac23.md
@@ -0,0 +1,454 @@
+---
+id: 68376949899fcbad3c9cac23
+title: JavaScript and Accessibility Quiz
+challengeType: 8
+dashedName: quiz-js-a11y
+---
+
+# --description--
+
+To pass the quiz, you must correctly answer at least 18 of the 20 questions below.
+
+# --quizzes--
+
+## --quiz--
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
+
+### --question--
+
+#### --text--
+
+Placeholder question
+
+#### --distractors--
+
+Placeholder distractor 1
+
+---
+
+Placeholder distractor 2
+
+---
+
+Placeholder distractor 3
+
+#### --answer--
+
+Placeholder answer
diff --git a/curriculum/challenges/english/25-front-end-development/review-js-a11y/683766860f71d4a96e429f3a.md b/curriculum/challenges/english/25-front-end-development/review-js-a11y/683766860f71d4a96e429f3a.md
new file mode 100644
index 00000000000..f91118d2fcf
--- /dev/null
+++ b/curriculum/challenges/english/25-front-end-development/review-js-a11y/683766860f71d4a96e429f3a.md
@@ -0,0 +1,23 @@
+---
+id: 683766860f71d4a96e429f3a
+title: JavaScript and Accessibility Review
+challengeType: 24
+dashedName: review-js-a11y
+---
+
+# --description--
+
+Review the concepts below to prepare for the upcoming quiz.
+
+## Topic 1
+
+- **Concept**: Explanation goes here
+
+## Topic 2
+
+- **Concept**: Explanation goes here
+
+# --assignment--
+
+Review the JavaScript and Accessibility topics and concepts.
+
diff --git a/curriculum/superblock-structure/full-stack.json b/curriculum/superblock-structure/full-stack.json
index f7609e495aa..6f9e617f91d 100644
--- a/curriculum/superblock-structure/full-stack.json
+++ b/curriculum/superblock-structure/full-stack.json
@@ -784,6 +784,18 @@
}
]
},
+ {
+ "dashedName": "js-a11y",
+ "comingSoon": true,
+ "blocks": [
+ {
+ "dashedName": "review-js-a11y"
+ },
+ {
+ "dashedName": "quiz-js-a11y"
+ }
+ ]
+ },
{
"dashedName": "debugging-javascript",
"blocks": [