+
+
+
+
+
+
+--fcc-editable-region--
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-002.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-002.md
new file mode 100644
index 0000000000..635da6c348
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-002.md
@@ -0,0 +1,57 @@
+---
+id: 613297a923965e0703b64796
+title: Part 2
+challengeType: 0
+dashedName: part-2
+---
+
+# --description--
+
+You may be familiar with the `meta` tag already; it is used to specify information about the page, such as the title, description, keywords, and author.
+
+Give your page a `meta` tag with an appropriate `charset` value.
+
+The `charset` attribute specifies the character encoding of the page, and, nowadays, `UTF-8` is the only encoding supported by most browsers.
+
+# --hints--
+
+You should create a `meta` element within the `head` element.
+
+```js
+// TODO: Once builder is fixed so head info is not in body
+assert.exists(document.querySelector('body > meta'));
+```
+
+You should give the `meta` tag a `charset` of `UTF-8`.
+
+```js
+assert.equal(document.querySelector('body > meta')?.getAttribute('charset'), 'UTF-8');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+--fcc-editable-region--
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-003.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-003.md
new file mode 100644
index 0000000000..06597be9d8
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-003.md
@@ -0,0 +1,62 @@
+---
+id: 61329b210dac0b08047fd6ab
+title: Part 3
+challengeType: 0
+dashedName: part-3
+---
+
+# --description--
+
+Continuing with the `meta` tags, a `viewport` definition tells the browser how to render the page. Including one betters visual accessibility on mobile, and improves _SEO_ (search engine optimisation).
+
+Add a `viewport` definition with a `content` attribute detailing the `width` and `initial-scale` of the page.
+
+# --hints--
+
+You should create another `meta` element in the `head`.
+
+```js
+assert.equal(document.querySelectorAll('body > meta')?.length, 2);
+```
+
+You should give the `meta` a `name` attribute of `viewport`.
+
+```js
+assert.equal(document.querySelectorAll('body > meta[name="viewport"]')?.length, 1);
+```
+
+You should give the `meta` a `content` attribute of `width=device-width, initial-scale=1`.
+
+```js
+// TODO: Double-check this is the only correct answer
+assert.equal(document.querySelectorAll('body > meta[content="width=device-width, initial-scale=1"]')?.length, 1);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+--fcc-editable-region--
+
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-004.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-004.md
new file mode 100644
index 0000000000..1aab92070d
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-004.md
@@ -0,0 +1,68 @@
+---
+id: 61329d52e5010e08d9b9d66b
+title: Part 4
+challengeType: 0
+dashedName: part-4
+---
+
+# --description--
+
+Another important `meta` tag for accessibility and SEO is the `description` definition. The value of the `content` attribute is used by search engines to provide a description of your page.
+
+Add a `meta` tag with the `name` attribute set to `description`, and give it a useful `content` attribute.
+
+# --hints--
+
+You should add a new `meta` tag to the `head`.
+
+```js
+assert.equal(document.querySelectorAll('meta').length, 3);
+```
+
+You should give the `meta` a `name` attribute of `description`.
+
+```js
+assert.exists(document.querySelector('meta[name="description"]'));
+```
+
+You should give the `meta` a `content` attribute.
+
+```js
+assert.notEmpty(document.querySelector('meta[name="description"]')?.content);
+```
+
+The `content` attribute value should not be more than 165 characters. _This is Google's maximum description length._
+
+```js
+assert.isAtMost(document.querySelector('meta[name="description"]')?.content?.length, 165);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+--fcc-editable-region--
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-005.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-005.md
new file mode 100644
index 0000000000..146ace83c0
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-005.md
@@ -0,0 +1,64 @@
+---
+id: 6133acc353338c0bba9cb553
+title: Part 5
+challengeType: 0
+dashedName: part-5
+---
+
+# --description--
+
+Lastly in the `head`, the `title` element is useful for screen readers to understand the content of a page. Furthermore, it is an important part of _SEO_.
+
+Give your page a `title` that is descriptive and concise.
+
+# --hints--
+
+You should add a `title` element to the `head`.
+
+```js
+// TODO: Fix once builder puts head in the right place
+assert.exists(document.querySelector('body > title'));
+```
+
+You should not make the `title` longer than 60 characters.
+
+```js
+assert.isAtMost(document.querySelector('body > title')?.textContent?.length, 60);
+```
+
+Try being more descriptive with your `title` element. _Hint: At least 20 characters_
+
+```js
+assert.isAtLeast(document.querySelector('body > title')?.textContent?.length, 20);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+--fcc-editable-region--
+
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-006.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-006.md
new file mode 100644
index 0000000000..d16ba4605a
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-006.md
@@ -0,0 +1,68 @@
+---
+id: 6133d11ef548f51f876149e3
+title: Part 6
+challengeType: 0
+dashedName: part-6
+---
+
+# --description--
+
+Navigation is a core part of accessibility, and screen readers rely on you to provide the structure of your page. This is accomplished with semantic HTML elements.
+
+Add a `header` and a `main` element to your page.
+
+The `header` element will be used to introduce the page, as well as provide a navigation menu.
+
+The `main` element will contain the core content of your page.
+
+# --hints--
+
+You should add a `header` element to the `body`.
+
+```js
+assert.exists(document.querySelector('body > header'));
+```
+
+You should add a `main` element to the `body`.
+
+```js
+assert.exists(document.querySelector('body > main'));
+```
+
+The `header` element should come before the `main` element.
+
+```js
+assert.exists(document.querySelector('header + main'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+--fcc-editable-region--
+
+
+
+--fcc-editable-region--
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-007.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-007.md
new file mode 100644
index 0000000000..8f36e70275
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-007.md
@@ -0,0 +1,93 @@
+---
+id: 613e2546d0594208229ada50
+title: Part 7
+challengeType: 0
+dashedName: part-7
+---
+
+# --description--
+
+Within the `header`, provide context about the page by nesting one `img`, `h1`, and `nav` element.
+
+The `img` should point to `https://cdn.freecodecamp.org/platform/universal/fcc_primary.svg`, and have an `id` of `logo`.
+
+The `h1` should contain the text `HTML/CSS Quiz`.
+
+# --hints--
+
+You should add an `img` element to the `header` element.
+
+```js
+assert.exists(document.querySelector('header > img'));
+```
+
+You should add an `h1` element to the `header` element.
+
+```js
+assert.exists(document.querySelector('header > h1'));
+```
+
+You should add a `nav` element to the `header` element.
+
+```js
+assert.exists(document.querySelector('header > nav'));
+```
+
+You should place the `img`, `h1`, and `nav` elements in that order.
+
+```js
+assert.exists(document.querySelector('img + h1 + nav'));
+```
+
+You should give the `img` element a `src` attribute of `https://cdn.freecodecamp.org/platform/universal/fcc_primary.svg`.
+
+```js
+assert.equal(document.querySelector('img')?.src, 'https://cdn.freecodecamp.org/platform/universal/fcc_primary.svg');
+```
+
+You should give the `img` element an `id` attribute of `logo`.
+
+```js
+assert.equal(document.querySelector('img')?.id, 'logo');
+```
+
+You should give the `h1` element the text `HTML/CSS Quiz`.
+
+```js
+assert.include(document.querySelector('h1')?.innerText?.toLowerCase(), 'html/css quiz');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+--fcc-editable-region--
+
+
+
+--fcc-editable-region--
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-008.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-008.md
new file mode 100644
index 0000000000..00a8d0936b
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-008.md
@@ -0,0 +1,66 @@
+---
+id: 613e275749ebd008e74bb62e
+title: Part 8
+challengeType: 0
+dashedName: part-8
+---
+
+# --description--
+
+A useful property of an _SVG_ (scalable vector graphics) is that is contains a `path` attribute which allows the image to be scaled without affecting the resolution of the resultant image.
+
+Currently, the `img` is assuming it's default size, which is too large. Correctly, scale the image using it's `id` as a selector, and setting the `width` to `max(100px, 18vw)`.
+
+# --hints--
+
+You should use the `#logo` selector to target the `img` element.
+
+```js
+assert.exists(new __helpers.CSSHelp(document).getStyle('#logo'));
+```
+
+You should give the `img` a `width` of `max(100px, 18vw)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('#logo')?.width, 'max(100px, 18vw)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-009.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-009.md
new file mode 100644
index 0000000000..e738cbc983
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-009.md
@@ -0,0 +1,93 @@
+---
+id: 6140827cff96e906bd38fc2b
+title: Part 9
+challengeType: 0
+dashedName: part-9
+---
+
+# --description--
+
+As described in the [freeCodeCamp Style Guide](https://design-style-guide.freecodecamp.org/), the logo should retain an aspect ratio of `35:4`, and have padding around the text.
+
+First, change the `background-color` to `#0a0a23` so you can see the logo. Then, use the `aspect-ratio` property to set the desired aspect ratio. Finally, add a `padding` of `0.4rem` all around.
+
+# --hints--
+
+You should give `#logo` a `background-color` of `#0a0a23`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('#logo')?.backgroundColor, 'rgb(10, 10, 35)');
+```
+
+You should use the `aspect-ratio` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('#logo')?.aspectRatio);
+```
+
+You should not use the `height` property.
+
+```js
+assert.isEmpty(new __helpers.CSSHelp(document).getStyle('#logo')?.height);
+```
+
+You should not change the `width` property.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('#logo')?.width, 'max(100px, 18vw)');
+```
+
+You should give the `img` an `aspect-ratio` of `35 / 4`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('#logo')?.aspectRatio, '35 / 4');
+```
+
+You should give the `img` a `padding` of `0.4rem`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('#logo')?.padding, '0.4rem');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+--fcc-editable-region--
+#logo {
+ width: max(100px, 18vw);
+
+}
+--fcc-editable-region--
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-010.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-010.md
new file mode 100644
index 0000000000..b2a926fae2
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-010.md
@@ -0,0 +1,89 @@
+---
+id: 6140883f74224508174794c0
+title: Part 10
+challengeType: 0
+dashedName: part-10
+---
+
+# --description--
+
+Make the `header` take up the full width of its parent container, set it's `height` to `50px`, and set the `background-color` to `#1b1b32`. Then, set the `display` to use _Flexbox_.
+
+# --hints--
+
+You should use the `header` element selector.
+
+```js
+assert.exists(new __helpers.CSSHelp(document).getStyle('header'));
+```
+
+You should give the `header` a `width` of `100%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('header')?.width, '100%');
+```
+
+You should give the `header` a `height` of `50px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('header')?.height, '50px');
+```
+
+You should give the `header` a `background-color` of `#1b1b32`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('header')?.backgroundColor, 'rgb(27, 27, 50)');
+```
+
+You should give the `header` a `display` of `flex`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('header')?.display, 'flex');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-011.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-011.md
new file mode 100644
index 0000000000..e813eab6f4
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-011.md
@@ -0,0 +1,83 @@
+---
+id: 61408e4ae3e35d08feb260eb
+title: Part 11
+challengeType: 0
+dashedName: part-11
+---
+
+# --description--
+
+Change the `h1` font color to `#f1be32`, and set the font size to `min(5vw, 1.2em)`.
+
+# --hints--
+
+You should use the `h1` element selector.
+
+```js
+assert.exists(new __helpers.CSSHelp(document).getStyle('h1'));
+```
+
+You should give the `h1` a `color` of `#f1be32`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('h1')?.color, 'rgb(241, 190, 50)');
+```
+
+You should give the `h1` a `font-size` of `min(5vw, 1.2em)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('h1')?.fontSize, 'min(5vw, 1.2em)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-012.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-012.md
new file mode 100644
index 0000000000..6c3d80c755
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-012.md
@@ -0,0 +1,112 @@
+---
+id: 61408f155e798909b6908712
+title: Part 12
+challengeType: 0
+dashedName: part-12
+---
+
+# --description--
+
+To enable navigation on the page, add an unordered list with the following three list items:
+
+- `INFO`
+- `HTML`
+- `CSS`
+
+The list items text should be wrapped in anchor tags.
+
+# --hints--
+
+You should nest one `ul` element inside the `nav`.
+
+```js
+assert.equal(document.querySelectorAll('nav > ul')?.length, 1);
+```
+
+You should nest three `li` elements inside the `ul` element.
+
+```js
+assert.equal(document.querySelectorAll('nav > ul > li')?.length, 3);
+```
+
+You should nest one `a` element inside each `li` element.
+
+```js
+assert.equal(document.querySelectorAll('nav > ul > li > a')?.length, 3);
+```
+
+You should give the first `a` element the text `INFO`.
+
+```js
+assert.equal(document.querySelectorAll('nav > ul > li > a')?.[0]?.textContent, 'INFO');
+```
+
+You should give the second `a` element the text `HTML`.
+
+```js
+assert.equal(document.querySelectorAll('nav > ul > li > a')?.[1]?.textContent, 'HTML');
+```
+
+You should give the third `a` element the text `CSS`.
+
+```js
+assert.equal(document.querySelectorAll('nav > ul > li > a')?.[2]?.textContent, 'CSS');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-013.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-013.md
new file mode 100644
index 0000000000..6d502a23c7
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-013.md
@@ -0,0 +1,102 @@
+---
+id: 614090d5a22b6f0a5a6b464c
+title: Part 13
+challengeType: 0
+dashedName: part-13
+---
+
+
+
+# --description--
+
+Target unordered list elements within `nav` elements, and use _Flexbox_ to evenly space the children.
+
+# --hints--
+
+You should use the `nav > ul` selector.
+
+```js
+assert.exists(new __helpers.CSSHelp(document).getStyle('nav > ul'));
+```
+
+You should give the `nav > ul` elements a `display` of `flex`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('nav > ul')?.display, 'flex');
+```
+
+You should give the `nav > ul` elements a `justify-content` of `space-evenly`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('nav > ul')?.justifyContent, 'space-evenly');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-014.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-014.md
new file mode 100644
index 0000000000..ced84934e6
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-014.md
@@ -0,0 +1,125 @@
+---
+id: 6141fabd6f75610664e908fd
+title: Part 14
+challengeType: 0
+dashedName: part-14
+---
+
+# --description--
+
+As this is a quiz, you will need a form for users to submit answers. You can semantically separate the content within the form using `section` elements.
+
+Within the `main` element, create a form with three nested `section` elements. Then, make the form submit to `https://freecodecamp.org/practice-project/accessibility-quiz`, using the correct method.
+
+# --hints--
+
+You should nest a `form` element within your `main` element.
+
+```js
+assert.exists(document.querySelector('main > form'));
+```
+
+You should nest three `section` elements within your `form` element.
+
+```js
+assert.equal(document.querySelectorAll('main > form > section')?.length, 3);
+```
+
+You should give the `form` element an `action` attribute.
+
+```js
+assert.notEmpty(document.querySelector('main > form')?.action);
+```
+
+You should give the `action` attribute a value of `https://freecodecamp.org/practice-project/accessibility-quiz`.
+
+```js
+assert.equal(document.querySelector('main > form')?.action, 'https://freecodecamp.org/practice-project/accessibility-quiz');
+```
+
+You should give the `form` element a `method` attribute.
+
+```js
+assert.notEmpty(document.querySelector('main > form')?.method);
+```
+
+You should give the `form` element a `method` attribute with a value of `post`.
+
+```js
+assert.equal(document.querySelector('main > form')?.method?.toLowerCase(), 'post');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+--fcc-editable-region--
+
+
+
+--fcc-editable-region--
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-015.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-015.md
new file mode 100644
index 0000000000..f2623e5490
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-015.md
@@ -0,0 +1,111 @@
+---
+id: 6141fed65b61320743da5894
+title: Part 15
+challengeType: 0
+dashedName: part-15
+---
+
+# --description--
+
+To increase the page accessibility, the `role` attribute can be used to indicate the purpose behind an element on the page to assistive technologies. The `role` attribute is a part of the _Web Accessibility Initiative_ (WAI), and accepts preset values.
+
+Give each of the `section` elements the `region` role.
+
+# --hints--
+
+You should give the first `section` element the `region` role.
+
+```js
+assert.equal(document.querySelectorAll('section')?.[0]?.getAttribute('role'), 'region');
+```
+
+You should give the second `section` element the `region` role.
+
+```js
+assert.equal(document.querySelectorAll('section')?.[1]?.getAttribute('role'), 'region');
+```
+
+You should give the third `section` element the `region` role.
+
+```js
+assert.equal(document.querySelectorAll('section')?.[2]?.getAttribute('role'), 'region');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-016.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-016.md
new file mode 100644
index 0000000000..ff5d82a201
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-016.md
@@ -0,0 +1,171 @@
+---
+id: 614202874ca576084fca625f
+title: Part 16
+challengeType: 0
+dashedName: part-16
+---
+
+# --description--
+
+Every `region` role requires a visible label, which should be referenced by the `aria-labelledby` attribute.
+
+To the `section` elements, give the following `aria-labelledby` attributes:
+
+- `student-info`
+- `html-questions`
+- `css-questions`
+
+Then, within each `section` element, nest one `h2` element with an `id` matching the corresponding `aria-labelledby` attribute. Give each `h2` suitable text content.
+
+# --hints--
+
+You should give the first `section` element an `aria-labelledby` attribute of `student-info`.
+
+```js
+assert.equal(document.querySelectorAll('section')?.[0]?.getAttribute('aria-labelledby'), 'student-info');
+```
+
+You should give the second `section` element an `aria-labelledby` attribute of `html-questions`.
+
+```js
+assert.equal(document.querySelectorAll('section')?.[1]?.getAttribute('aria-labelledby'), 'html-questions');
+```
+
+You should give the third `section` element an `aria-labelledby` attribute of `css-questions`.
+
+```js
+assert.equal(document.querySelectorAll('section')?.[2]?.getAttribute('aria-labelledby'), 'css-questions');
+```
+
+You should nest one `h2` element within the first `section` element.
+
+```js
+assert.equal(document.querySelectorAll('section')?.[0]?.querySelectorAll('h2')?.length, 1);
+```
+
+You should nest one `h2` element within the second `section` element.
+
+```js
+assert.equal(document.querySelectorAll('section')?.[1]?.querySelectorAll('h2')?.length, 1);
+```
+
+You should nest one `h2` element within the third `section` element.
+
+```js
+assert.equal(document.querySelectorAll('section')?.[2]?.querySelectorAll('h2')?.length, 1);
+```
+
+You should give the first `h2` element an `id` attribute of `student-info`.
+
+```js
+assert.equal(document.querySelectorAll('h2')?.[0]?.id, 'student-info');
+```
+
+You should give the second `h2` element an `id` attribute of `html-questions`.
+
+```js
+assert.equal(document.querySelectorAll('h2')?.[1]?.id, 'html-questions');
+```
+
+You should give the third `h2` element an `id` attribute of `css-questions`.
+
+```js
+assert.equal(document.querySelectorAll('h2')?.[2]?.id, 'css-questions');
+```
+
+You should give the first `h2` element suitable text content. _Hint: I would have chosen `Student Info`_
+
+```js
+assert.isAtLeast(document.querySelectorAll('h2')?.[0]?.textContent?.length, 1);
+```
+
+You should give the second `h2` element suitable text content. _Hint: I would have chosen `HTML`_
+
+```js
+assert.isAtLeast(document.querySelectorAll('h2')?.[1]?.textContent?.length, 1);
+```
+
+You should give the third `h2` element suitable text content. _Hint: I would have chosen `CSS`_
+
+```js
+assert.isAtLeast(document.querySelectorAll('h2')?.[2]?.textContent?.length, 1);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-017.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-017.md
new file mode 100644
index 0000000000..0d445c0a1b
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-017.md
@@ -0,0 +1,140 @@
+---
+id: 614206033d366c090ca7dd42
+title: Part 17
+challengeType: 0
+dashedName: part-17
+---
+
+# --description--
+
+Typeface plays an important role in the accessibility of a page. Some fonts are easier to read than others, and this is especially true on low-resolution screens.
+
+Change the font for both the `h1` and `h2` elements to `Verdana`, and use another sans-serif _web safe_ font as a fallback.
+
+Also, add a `border-bottom` of `4px solid #dfdfe2` to `h2` elements, to make the sections distinct.
+
+# --hints--
+
+You should use a multiple element selector to target the `h1` and `h2` elements.
+
+```js
+const gs = (s) => new __helpers.CSSHelp(document).getStyle(s);
+assert.exists(gs('h1, h2') || gs('h2, h1'));
+```
+
+You should set the first value of the `font-family` property to `Verdana`.
+
+```js
+const gs = (s) => new __helpers.CSSHelp(document).getStyle(s);
+const style = gs('h1, h2') || gs('h2, h1');
+assert.include(style?.fontFamily, 'Verdana');
+```
+
+You should set the second value of the `font-family` property to another sans-serif, web safe font. _Hint: I would choose Tahoma_.
+
+```js
+// Acceptable fonts: Arial, sans-serif, Helvetica, Tahoma, Trebuchet MS.
+const gs = (s) => new __helpers.CSSHelp(document).getStyle(s);
+const style = gs('h1, h2') || gs('h2, h1');
+assert.match(style?.fontFamily, /(Tahoma)|(Arial)|(sans-serif)|(Helvetica)|(Trebuchet MS)/);
+```
+
+You should use an `h2` element selector to target the `h2` elements.
+
+```js
+assert.exists(new __helpers.CSSHelp(document).getStyle('h2'));
+```
+
+You should give `h2` a `border-bottom` property of `4px solid #dfdfe2`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('h2')?.borderBottom, '4px solid rgb(223, 223, 226)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-018.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-018.md
new file mode 100644
index 0000000000..eca9868f7b
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-018.md
@@ -0,0 +1,125 @@
+---
+id: 61435e3c0679a306c20f1acc
+title: Part 18
+challengeType: 0
+dashedName: part-18
+---
+
+# --description--
+
+To be able to navigate within the page, give each anchor element an `href` corresponding to the `id` of the `h2` elements.
+
+# --hints--
+
+You should give the first `a` element an `href` of `#student-info`.
+
+```js
+assert.equal(document.querySelectorAll('a')?.[0]?.getAttribute('href'), '#student-info');
+```
+
+You should give the second `a` element an `href` of `#html-questions`.
+
+```js
+assert.equal(document.querySelectorAll('a')?.[1]?.getAttribute('href'), '#html-questions');
+```
+
+You should give the third `a` element an `href` of `#css-questions`.
+
+```js
+assert.equal(document.querySelectorAll('a')?.[2]?.getAttribute('href'), '#css-questions');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-019.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-019.md
new file mode 100644
index 0000000000..c97729643a
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-019.md
@@ -0,0 +1,173 @@
+---
+id: 6143610161323a081b249c19
+title: Part 19
+challengeType: 0
+dashedName: part-19
+---
+
+# --description--
+
+Filling out the content of the quiz, below the `#student-info`, add three `div` elements with a `class` of `info`.
+
+Then, within each `div` nest one `label` element, and one `input` element.
+
+# --hints--
+
+You should nest three `div` elements below the `h2#student-info` element.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.length, 3);
+```
+
+You should give the first `div` a `class` of `info`.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.[0]?.className, 'info');
+```
+
+You should give the second `div` a `class` of `info`.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.[1]?.className, 'info');
+```
+
+You should give the third `div` a `class` of `info`.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.[2]?.className, 'info');
+```
+
+You should nest one `label` element within the first `div`.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.[0]?.querySelectorAll('label')?.length, 1);
+```
+
+You should nest one `input` element within the first `div`, after the `label`.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.[0]?.querySelectorAll('input')?.length, 1);
+assert.exists(document.querySelectorAll('h2#student-info ~ div')?.[0]?.querySelector('label + input'));
+```
+
+You should nest one `label` element within the second `div`.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.[1]?.querySelectorAll('label')?.length, 1);
+```
+
+You should nest one `input` element within the second `div`, after the `label`.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.[1]?.querySelectorAll('input')?.length, 1);
+assert.exists(document.querySelectorAll('h2#student-info ~ div')?.[1]?.querySelector('label + input'));
+```
+
+You should nest one `label` element within the third `div`.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.[2]?.querySelectorAll('label')?.length, 1);
+```
+
+You should nest one `input` element within the third `div`, after the `label`.
+
+```js
+assert.equal(document.querySelectorAll('h2#student-info ~ div')?.[2]?.querySelectorAll('input')?.length, 1);
+assert.exists(document.querySelectorAll('h2#student-info ~ div')?.[2]?.querySelector('label + input'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-020.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-020.md
new file mode 100644
index 0000000000..d71e753976
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-020.md
@@ -0,0 +1,195 @@
+---
+id: 6143639d5eddc7094161648c
+title: Part 20
+challengeType: 0
+dashedName: part-20
+---
+
+# --description--
+
+It is important to link each `input` to the corresponding `label` element. This provides assistive technology users with a visual reference to the input.
+
+This is done, by giving the `label` a `for` attribute, which contains the `id` of the `input`.
+
+This section will take a student's name, email address, and date of birth. Give the `label` elements appropriate `for` attributes, as well as text content. Then, link the `input` elements to the corresponding `label` elements.
+
+# --hints--
+
+You should give the first `label` element an appropriate `for` attribute.
+
+```js
+assert.isAtLeast(document.querySelectorAll('label')?.[0]?.htmlFor?.length, 1);
+```
+
+You should give the second `label` element an appropriate `for` attribute.
+
+```js
+assert.isAtLeast(document.querySelectorAll('label')?.[1]?.htmlFor?.length, 1);
+```
+
+You should give the third `label` element an appropriate `for` attribute.
+
+```js
+assert.isAtLeast(document.querySelectorAll('label')?.[2]?.htmlFor?.length, 1);
+```
+
+You should give the first `label` element an appropriate text content.
+
+```js
+assert.isAtLeast(document.querySelectorAll('label')?.[0]?.textContent?.length, 1);
+```
+
+You should give the second `label` element an appropriate text content.
+
+```js
+assert.isAtLeast(document.querySelectorAll('label')?.[1]?.textContent?.length, 1);
+```
+
+You should give the third `label` element an appropriate text content.
+
+```js
+assert.isAtLeast(document.querySelectorAll('label')?.[2]?.textContent?.length, 1);
+```
+
+You should give the first `input` element an `id` attribute matching the `for` attribute of the first `label`.
+
+```js
+assert.equal(document.querySelectorAll('input')?.[0]?.id, document.querySelectorAll('label')?.[0]?.htmlFor);
+```
+
+You should give the second `input` element an `id` attribute matching the `for` attribute of the second `label`.
+
+```js
+assert.equal(document.querySelectorAll('input')?.[1]?.id, document.querySelectorAll('label')?.[1]?.htmlFor);
+```
+
+You should give the third `input` element an `id` attribute matching the `for` attribute of the third `label`.
+
+```js
+assert.equal(document.querySelectorAll('input')?.[2]?.id, document.querySelectorAll('label')?.[2]?.htmlFor);
+```
+
+You should not use the same `id` attribute for more than one `input` element.
+
+```js
+const id = (n) => document.querySelectorAll('input')?.[n]?.id;
+assert.notEqual(id(0), id(1));
+assert.notEqual(id(0), id(2));
+assert.notEqual(id(1), id(2));
+```
+
+You should not use the same `for` attribute for more than one `label` element.
+
+```js
+const htmlFor = (n) => document.querySelectorAll('label')?.[n]?.htmlFor;
+assert.notEqual(htmlFor(0), htmlFor(1));
+assert.notEqual(htmlFor(0), htmlFor(2));
+assert.notEqual(htmlFor(1), htmlFor(2));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-021.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-021.md
new file mode 100644
index 0000000000..4deb91b4ce
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-021.md
@@ -0,0 +1,161 @@
+---
+id: 6143908b6aafb00a659ca189
+title: Part 21
+challengeType: 0
+dashedName: part-21
+---
+
+# --description--
+
+Keeping in mind best-practices for form inputs, give each `input` an appropriate `type` and `name` attribute. Then, give the first `input` a `placeholder` attribute.
+
+# --hints--
+
+You should give the first `input` a `type` of `text`.
+
+```js
+assert.equal(document.querySelectorAll('input')?.[0]?.type, 'text');
+```
+
+You should give the second `input` a `type` of `email`.
+
+```js
+assert.equal(document.querySelectorAll('input')?.[1]?.type, 'email');
+```
+
+You should give the third `input` a `type` of `date`.
+
+```js
+assert.equal(document.querySelectorAll('input')?.[2]?.type, 'date');
+```
+
+You should give the first `input` an appropriate `name` attribute.
+
+```js
+assert.isAtLeast(document.querySelectorAll('input')?.[0]?.name?.length, 1);
+```
+
+You should give the second `input` an appropriate `name` attribute.
+
+```js
+assert.isAtLeast(document.querySelectorAll('input')?.[1]?.name?.length, 1);
+```
+
+You should give the third `input` an appropriate `name` attribute.
+
+```js
+assert.isAtLeast(document.querySelectorAll('input')?.[2]?.name?.length, 1);
+```
+
+You should give the first `input` a `placeholder` attribute.
+
+```js
+assert.notEmpty(document.querySelectorAll('input')?.[0]?.placeholder);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-022.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-022.md
new file mode 100644
index 0000000000..ec0a973bac
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-022.md
@@ -0,0 +1,127 @@
+---
+id: 6143920c8eafb00b735746ce
+title: Part 22
+challengeType: 0
+dashedName: part-22
+---
+
+# --description--
+
+Even though you added a `placeholder` to the first `input` element in the previous lesson, this is actually not a best-practice for accessibility; too often, users confuse the placeholder text with an actual input value - they think there is already a value in the input.
+
+Remove the placeholder text from the first `input` element, relying on the `label` being the best-practice.
+
+# --hints--
+
+You should remove the `placeholder` attribute from the first `input` element.
+
+```js
+assert.isEmpty(document.querySelectorAll('input')?.[0]?.placeholder);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-023.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-023.md
new file mode 100644
index 0000000000..c6da6b6ab2
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-023.md
@@ -0,0 +1,139 @@
+---
+id: 6143931a113bb80c45546287
+title: Part 23
+challengeType: 0
+dashedName: part-23
+---
+
+# --description--
+
+Arguably, `D.O.B.` is not descriptive enough. This is especially true for visually impaired users. One way to get around such an issue, without having to add visible text to the label, is to add text only a screen reader can read.
+
+Append a `span` element with a class of `sr-only` to the current text content of the third `label` element.
+
+# --hints--
+
+You should add a `span` element within the third `label` element.
+
+```js
+assert.exists(document.querySelector('.info:nth-of-type(3) > label > span'));
+```
+
+You should give the `span` element a class of `sr-only`.
+
+```js
+assert.equal(document.querySelector('.info:nth-of-type(3) > label > span')?.className, 'sr-only');
+```
+
+You should place the `span` after the text content `D.O.B.`.
+
+```js
+assert.match(document.querySelector('.info:nth-of-type(3) > label')?.innerHTML, /D\.O\.B\.
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-025.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-025.md
new file mode 100644
index 0000000000..9a6a127424
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-025.md
@@ -0,0 +1,197 @@
+---
+id: 6143956ed76ed60e012faa51
+title: Part 25
+challengeType: 0
+dashedName: part-25
+---
+
+# --description--
+
+The `.sr-only` text is still visible. There is a common pattern to visually hide text for only screen readers to read.
+
+This pattern is to set the following CSS properties:
+
+```css
+position: absolute;
+width: 1px;
+height: 1px;
+padding: 0;
+margin: -1px;
+overflow: hidden;
+clip: rect(0, 0, 0, 0);
+white-space: nowrap;
+border: 0;
+```
+
+Use the above to define the `sr-only` class.
+
+# --hints--
+
+You should use the `.sr-only` selector.
+
+```js
+assert.exists(new __helpers.CSSHelp(document).getStyle('.sr-only'));
+```
+
+You should give the `.sr-only` a `position` of `absolute`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sr-only')?.position, 'absolute');
+```
+
+You should give the `.sr-only` a `width` of `1px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sr-only')?.width, '1px');
+```
+
+You should give the `.sr-only` a `height` of `1px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sr-only')?.height, '1px');
+```
+
+You should give the `.sr-only` a `padding` of `0`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sr-only')?.padding, '0px');
+```
+
+You should give the `.sr-only` a `margin` of `-1px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sr-only')?.margin, '-1px');
+```
+
+You should give the `.sr-only` an `overflow` of `hidden`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sr-only')?.overflow, 'hidden');
+```
+
+You should give the `.sr-only` a `clip` of `rect(0, 0, 0, 0)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sr-only')?.clip, 'rect(0px, 0px, 0px, 0px)');
+```
+
+You should give the `.sr-only` a `white-space` of `nowrap`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sr-only')?.whiteSpace, 'nowrap');
+```
+
+You should give the `.sr-only` a `border` of `0`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sr-only')?.border, '0px');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-026.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-026.md
new file mode 100644
index 0000000000..ad340b59ff
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-026.md
@@ -0,0 +1,200 @@
+---
+id: 614396f7ae83f20ea6f9f4b3
+title: Part 26
+challengeType: 0
+dashedName: part-26
+---
+
+# --description--
+
+Within the second `section` element, add two `div` elements with a class of `question-block`.
+
+Then, within each `div.question-block` element, add one `p` element with text of incrementing numbers, starting at `1`, and one `fieldset` element with a class of `question`.
+
+# --hints--
+
+You should nest two `div` elements within the second `section` element.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(2) > div')?.length, 2);
+```
+
+You should give the first new `div` element a class of `question-block`.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(2) > div')?.[0]?.className, 'question-block');
+```
+
+You should give the second new `div` element a class of `question-block`.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(2) > div')?.[1]?.className, 'question-block');
+```
+
+You should nest one `p` element within each `div.question-block` element.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > p')?.length, 2);
+```
+
+You should give the first `p` element text of `1`.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > p')?.[0]?.textContent, '1');
+```
+
+You should give the second `p` element text of `2`.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > p')?.[1]?.textContent, '2');
+```
+
+You should nest one `fieldset` element within each `div.question-block` element.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > fieldset')?.length, 2);
+```
+
+You should place the first `fieldset` element after the first `p` element.
+
+```js
+assert.exists(document.querySelector('section:nth-of-type(2) > div.question-block > p + fieldset'));
+```
+
+You should place the second `fieldset` element after the second `p` element.
+
+```js
+assert.exists(document.querySelector('section:nth-of-type(2) > div.question-block:nth-of-type(2) > p + fieldset'));
+```
+
+You should give the first `fieldset` element a class of `question`.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > fieldset')?.[0]?.className, 'question');
+```
+
+You should give the second `fieldset` element a class of `question`.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > fieldset')?.[1]?.className, 'question');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-027.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-027.md
new file mode 100644
index 0000000000..542d1735fb
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-027.md
@@ -0,0 +1,177 @@
+---
+id: 6143cb26f7edff2dc28f7da5
+title: Part 27
+challengeType: 0
+dashedName: part-27
+---
+
+# --description--
+
+Each `fieldset` will contain a true/false question.
+
+Within each `fieldset`, nest one `legend` element, and one `ul` element with two options.
+
+# --hints--
+
+You should nest one `legend` element within the first `fieldset` element.
+
+```js
+assert.equal(document.querySelectorAll('.question-block:nth-of-type(1) > fieldset > legend')?.length, 1);
+```
+
+You should nest one `ul` element within the first `fieldset` element.
+
+```js
+assert.equal(document.querySelectorAll('.question-block:nth-of-type(1) > fieldset > ul')?.length, 1);
+```
+
+You should nest two `li` elements within the first `ul` element.
+
+```js
+assert.equal(document.querySelectorAll('fieldset > ul')?.[0]?.querySelectorAll('li')?.length, 2);
+```
+
+You should nest one `legend` element within the second `fieldset` element.
+
+```js
+assert.equal(document.querySelectorAll('.question-block:nth-of-type(2) > fieldset > legend')?.length, 1);
+```
+
+You should nest one `ul` element within the second `fieldset` element.
+
+```js
+assert.equal(document.querySelectorAll('.question-block:nth-of-type(2) > fieldset > ul')?.length, 1);
+```
+
+You should nest two `li` elements within the second `ul` element.
+
+```js
+assert.equal(document.querySelectorAll('fieldset > ul')?.[1]?.querySelectorAll('li')?.length, 2);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-028.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-028.md
new file mode 100644
index 0000000000..52bd074667
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-028.md
@@ -0,0 +1,195 @@
+---
+id: 6144e818fd5ea704fe56081d
+title: Part 28
+challengeType: 0
+dashedName: part-28
+---
+
+# --description--
+
+Give each `fieldset` an adaquate `name` attribute. Then, give both unordered lists a `class` of `answers-list`.
+
+Finally, add use the `legend` to caption the content of the `fieldset`, by placing a true/false question as the text content.
+
+# --hints--
+
+You should give the first `fieldset` an adaquate `name` attribute. _Hint: I would use `html-question-one`_
+
+```js
+assert.notEmpty(document.querySelectorAll('fieldset')?.[0]?.name);
+```
+
+You should give the second `fieldset` an adaquate `name` attribute. _Hint: I would use `html-question-two`_
+
+```js
+assert.notEmpty(document.querySelectorAll('fieldset')?.[1]?.name);
+```
+
+You should give the first `ul` element a `class` of `answers-list`.
+
+```js
+assert.equal(document.querySelectorAll('fieldset > ul')?.[0]?.className, 'answers-list');
+```
+
+You should give the second `ul` element a `class` of `answers-list`.
+
+```js
+assert.equal(document.querySelectorAll('fieldset > ul')?.[1]?.className, 'answers-list');
+```
+
+You should give the first `legend` element text content.
+
+```js
+assert.notEmpty(document.querySelectorAll('legend')?.[0]?.textContent);
+```
+
+You should give the second `legend` element text content.
+
+```js
+assert.notEmpty(document.querySelectorAll('legend')?.[1]?.textContent);
+```
+
+You should not use the same text content for both `legend` elements.
+
+```js
+assert.notEqual(document.querySelectorAll('legend')?.[0]?.textContent, document.querySelectorAll('legend')?.[1]?.textContent);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-029.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-029.md
new file mode 100644
index 0000000000..d3bec53716
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-029.md
@@ -0,0 +1,231 @@
+---
+id: 6144f8dc6849e405dd8bb829
+title: Part 29
+challengeType: 0
+dashedName: part-29
+---
+
+# --description--
+
+To provide the functionality of the true/false questions, we need a set of inputs which do not allow both to be selected at the same time.
+
+Within each list element, nest one `label` element, and within each `label` element, nest one `input` element with the appropriate `type`.
+
+# --hints--
+
+You should nest one `label` element within the first `li` element.
+
+```js
+assert.exists(document.querySelectorAll('ul.answers-list > li')?.[0]?.querySelector('label'));
+```
+
+You should nest one `label` element within the second `li` element.
+
+```js
+assert.exists(document.querySelectorAll('ul.answers-list > li')?.[1]?.querySelector('label'));
+```
+
+You should nest one `label` element within the third `li` element.
+
+```js
+assert.exists(document.querySelectorAll('ul.answers-list > li')?.[2]?.querySelector('label'));
+```
+
+You should nest one `label` element within the fourth `li` element.
+
+```js
+assert.exists(document.querySelectorAll('ul.answers-list > li')?.[3]?.querySelector('label'));
+```
+
+You should nest one `input` element within the first `label` element.
+
+```js
+assert.exists(document.querySelectorAll('ul.answers-list > li')?.[0]?.querySelector('label')?.querySelector('input'));
+```
+
+You should nest one `input` element within the second `label` element.
+
+```js
+assert.exists(document.querySelectorAll('ul.answers-list > li')?.[1]?.querySelector('label')?.querySelector('input'));
+```
+
+You should nest one `input` element within the third `label` element.
+
+```js
+assert.exists(document.querySelectorAll('ul.answers-list > li')?.[2]?.querySelector('label')?.querySelector('input'));
+```
+
+You should nest one `input` element within the fourth `label` element.
+
+```js
+assert.exists(document.querySelectorAll('ul.answers-list > li')?.[3]?.querySelector('label')?.querySelector('input'));
+```
+
+You should give the first `input` a `type` of `radio`.
+
+```js
+assert.equal(document.querySelectorAll('ul.answers-list > li > label > input')?.[0]?.type, 'radio');
+```
+
+You should give the second `input` a `type` of `radio`.
+
+```js
+assert.equal(document.querySelectorAll('ul.answers-list > li > label > input')?.[1]?.type, 'radio');
+```
+
+You should give the third `input` a `type` of `radio`.
+
+```js
+assert.equal(document.querySelectorAll('ul.answers-list > li > label > input')?.[2]?.type, 'radio');
+```
+
+You should give the fourth `input` a `type` of `radio`.
+
+```js
+assert.equal(document.querySelectorAll('ul.answers-list > li > label > input')?.[3]?.type, 'radio');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-030.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-030.md
new file mode 100644
index 0000000000..3ea3aaa804
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-030.md
@@ -0,0 +1,207 @@
+---
+id: 6145e6eeaa66c605eb087fe9
+title: Part 30
+challengeType: 0
+dashedName: part-30
+---
+
+# --description--
+
+Although not required for `label` elements with a nested `input`, it is still best-practice to explicitly link a `label` with its corresponding `input` element.
+
+Link the `label` elements with their corresponding `input` elements.
+
+# --hints--
+
+You should give the first `label` a `for` attribute matching the `id` of its `input` element.
+
+```js
+const htmlFor = document.querySelectorAll('ul.answers-list > li > label')?.[0]?.htmlFor;
+assert.notEmpty(htmlFor);
+assert.equal(htmlFor, document.querySelectorAll('ul.answers-list > li > label > input')?.[0]?.id);
+```
+
+You should give the second `label` a `for` attribute matching the `id` of its `input` element.
+
+```js
+const htmlFor = document.querySelectorAll('ul.answers-list > li > label')?.[1]?.htmlFor;
+assert.notEmpty(htmlFor);
+assert.equal(htmlFor, document.querySelectorAll('ul.answers-list > li > label > input')?.[1]?.id);
+```
+
+You should give the third `label` a `for` attribute matching the `id` of its `input` element.
+
+```js
+const htmlFor = document.querySelectorAll('ul.answers-list > li > label')?.[2]?.htmlFor;
+assert.notEmpty(htmlFor);
+assert.equal(htmlFor, document.querySelectorAll('ul.answers-list > li > label > input')?.[2]?.id);
+```
+
+You should give the fourth `label` a `for` attribute matching the `id` of its `input` element.
+
+```js
+const htmlFor = document.querySelectorAll('ul.answers-list > li > label')?.[3]?.htmlFor;
+assert.notEmpty(htmlFor);
+assert.equal(htmlFor, document.querySelectorAll('ul.answers-list > li > label > input')?.[3]?.id);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-031.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-031.md
new file mode 100644
index 0000000000..87880512a2
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-031.md
@@ -0,0 +1,287 @@
+---
+id: 6145e8b5080a5f06bb0223d0
+title: Part 31
+challengeType: 0
+dashedName: part-31
+---
+
+# --description--
+
+Give the `label` elements text such that the `input` comes before the text. Then, give the `input` elements a `value` matching the text.
+
+The text should either be `True` or `False`.
+
+# --hints--
+
+You should give the first `label` element text content.
+
+```js
+assert.notEmpty(document.querySelectorAll('ul.answers-list > li > label')?.[0]?.textContent?.trim());
+```
+
+You should give the second `label` element text content.
+
+```js
+assert.notEmpty(document.querySelectorAll('ul.answers-list > li > label')?.[1]?.textContent?.trim());
+```
+
+You should give the third `label` element text content.
+
+```js
+assert.notEmpty(document.querySelectorAll('ul.answers-list > li > label')?.[2]?.textContent?.trim());
+```
+
+You should give the fourth `label` element text content.
+
+```js
+assert.notEmpty(document.querySelectorAll('ul.answers-list > li > label')?.[3]?.textContent?.trim());
+```
+
+You should place the first `label` text content after the `input` element.
+
+```js
+assert.match(document.querySelectorAll('ul.answers-list > li > label')?.[0]?.innerHTML, />[\s\S]+[a-zA-Z]/);
+```
+
+You should place the second `label` text content after the `input` element.
+
+```js
+assert.match(document.querySelectorAll('ul.answers-list > li > label')?.[1]?.innerHTML, />[\s\S]+[a-zA-Z]/);
+```
+
+You should place the third `label` text content after the `input` element.
+
+```js
+assert.match(document.querySelectorAll('ul.answers-list > li > label')?.[2]?.innerHTML, />[\s\S]+[a-zA-Z]/);
+```
+
+You should place the fourth `label` text content after the `input` element.
+
+```js
+assert.match(document.querySelectorAll('ul.answers-list > li > label')?.[3]?.innerHTML, />[\s\S]+[a-zA-Z]/);
+```
+
+You should give the first `label` the text `True` or `False`.
+
+```js
+assert.include(['True', 'False'], document.querySelectorAll('ul.answers-list > li > label')?.[0]?.textContent?.trim());
+```
+
+You should give the second `label` the text `True`.
+
+```js
+const l = (n) => document.querySelectorAll('ul.answers-list > li > label')?.[n]?.textContent?.trim();
+assert(l(0) === 'False' ? l(1) === 'True' : true);
+```
+
+You should give the second `label` the text `False`.
+
+```js
+const l = (n) => document.querySelectorAll('ul.answers-list > li > label')?.[n]?.textContent?.trim();
+assert(l(0) === 'True' ? l(1) === 'False' : true);
+```
+
+You should give the third `label` the text `True` or `False`.
+
+```js
+assert.include(['True', 'False'], document.querySelectorAll('ul.answers-list > li > label')?.[2]?.textContent?.trim());
+```
+
+You should give the fourth `label` the text `True`.
+
+```js
+const l = (n) => document.querySelectorAll('ul.answers-list > li > label')?.[n]?.textContent?.trim();
+assert(l(2) === 'False' ? l(3) === 'True' : true);
+```
+
+You should give the fourth `label` the text `False`.
+
+```js
+const l = (n) => document.querySelectorAll('ul.answers-list > li > label')?.[n]?.textContent?.trim();
+assert(l(2) === 'True' ? l(3) === 'False' : true);
+```
+
+You should give the first `input` a `value` matching the `label` text content.
+
+```js
+assert.equal(document.querySelectorAll('ul.answers-list > li > label')?.[0]?.textContent?.trim()?.toLowerCase(), document.querySelectorAll('ul.answers-list > li > label > input')?.[0]?.value?.toLowerCase());
+```
+
+You should give the second `input` a `value` matching the `label` text content.
+
+```js
+assert.equal(document.querySelectorAll('ul.answers-list > li > label')?.[1]?.textContent?.trim()?.toLowerCase(), document.querySelectorAll('ul.answers-list > li > label > input')?.[1]?.value?.toLowerCase());
+```
+
+You should give the third `input` a `value` matching the `label` text content.
+
+```js
+assert.equal(document.querySelectorAll('ul.answers-list > li > label')?.[2]?.textContent?.trim()?.toLowerCase(), document.querySelectorAll('ul.answers-list > li > label > input')?.[2]?.value?.toLowerCase());
+```
+
+You should give the fourth `input` a `value` matching the `label` text content.
+
+```js
+assert.equal(document.querySelectorAll('ul.answers-list > li > label')?.[3]?.textContent?.trim()?.toLowerCase(), document.querySelectorAll('ul.answers-list > li > label > input')?.[3]?.value?.toLowerCase());
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-032.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-032.md
new file mode 100644
index 0000000000..732fb9ff02
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-032.md
@@ -0,0 +1,224 @@
+---
+id: 6145eb5f08a38a0786c7a80c
+title: Part 32
+challengeType: 0
+dashedName: part-32
+---
+
+# --description--
+
+If you click on the radio inputs, you might notice both inputs within the same true/false fieldset can be selected at the same time.
+
+Group the relevant inputs together such that only one input from a pair can be selected at a time.
+
+# --hints--
+
+You should give the first `input` a `name` attribute.
+
+```js
+assert.notEmpty(document.querySelectorAll('ul.answers-list > li > label > input')?.[0]?.name);
+```
+
+You should give the second `input` a `name` attribute.
+
+```js
+assert.notEmpty(document.querySelectorAll('ul.answers-list > li > label > input')?.[1]?.name);
+```
+
+You should give the third `input` a `name` attribute.
+
+```js
+assert.notEmpty(document.querySelectorAll('ul.answers-list > li > label > input')?.[2]?.name);
+```
+
+You should give the fourth `input` a `name` attribute.
+
+```js
+assert.notEmpty(document.querySelectorAll('ul.answers-list > li > label > input')?.[3]?.name);
+```
+
+You should give the second `input` a `name` attribute matching the `name` attribute of the first `input`.
+
+```js
+const i = (n) => document.querySelectorAll('ul.answers-list > li > label > input')?.[n]?.name;
+assert.equal(i(1), i(0));
+```
+
+You should give the fourth `input` a `name` attribute matching the `name` attribute of the third `input`.
+
+```js
+const i = (n) => document.querySelectorAll('ul.answers-list > li > label > input')?.[n]?.name;
+assert.equal(i(3), i(2));
+```
+
+You should give different `name` attributes to the first `input` and the third `input`.
+
+```js
+const i = (n) => document.querySelectorAll('ul.answers-list > li > label > input')?.[n]?.name;
+assert.notEqual(i(0), i(2));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-034.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-034.md
new file mode 100644
index 0000000000..7636bc2ba1
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-034.md
@@ -0,0 +1,232 @@
+---
+id: 6145ee65e2e1530938cb594d
+title: Part 34
+challengeType: 0
+dashedName: part-34
+---
+
+# --description--
+
+The final section of this quiz will contain a dropdown, and a text box.
+
+Begin by nesting a `div` with a `class` of `formrow`, and nest four `div` elements inside of it, alternating their `class` attributes with `question-block` and `answer`.
+
+# --hints--
+
+You should add one `div` element within the final `section`.
+
+```js
+assert.exists(document.querySelector('section:nth-of-type(3) > div'));
+```
+
+You should give the first `div` a `class` of `formrow`.
+
+```js
+assert.equal(document.querySelector('section:nth-of-type(3) > div')?.className, 'formrow');
+```
+
+You should place `div.formrow` after the `h2` element.
+
+```js
+assert.exists(document.querySelector('section:nth-of-type(3) > h2 + div.formrow'));
+```
+
+You should nest four `div` elements inside `div.formrow`.
+
+```js
+assert.equal(document.querySelectorAll('section:nth-of-type(3) > div.formrow > div')?.length, 4);
+```
+
+You should give the first nested `div` a `class` of `question-block`.
+
+```js
+assert.equal(document.querySelector('section:nth-of-type(3) > div.formrow > div:nth-of-type(1)')?.className, 'question-block');
+```
+
+You should give the second nested `div` a `class` of `answer`.
+
+```js
+assert.equal(document.querySelector('section:nth-of-type(3) > div.formrow > div:nth-of-type(2)')?.className, 'answer');
+```
+
+You should give the third nested `div` a `class` of `question-block`.
+
+```js
+assert.equal(document.querySelector('section:nth-of-type(3) > div.formrow > div:nth-of-type(3)')?.className, 'question-block');
+```
+
+You should give the fourth nested `div` a `class` of `answer`.
+
+```js
+assert.equal(document.querySelector('section:nth-of-type(3) > div.formrow > div:nth-of-type(4)')?.className, 'answer');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+p::before {
+ content: "Question #";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-035.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-035.md
new file mode 100644
index 0000000000..fcfdfed5b8
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-035.md
@@ -0,0 +1,215 @@
+---
+id: 6145f02240ff8f09f7ec913c
+title: Part 35
+challengeType: 0
+dashedName: part-35
+---
+
+# --description--
+
+Within the `div.question-block` elements, nest one `label` element, and give the `label` elements text content
+
+# --hints--
+
+You should nest one `label` element within the first `div.question-block` element.
+
+```js
+assert.exists(document.querySelectorAll('.formrow > .question-block')?.[0]?.querySelector('label'));
+```
+
+You should nest one `label` element within the second `div.question-block` element.
+
+```js
+assert.exists(document.querySelectorAll('.formrow > .question-block')?.[1]?.querySelector('label'));
+```
+
+You should give the first `label` element text content.
+
+```js
+assert.isAtLeast(document.querySelectorAll('.formrow > .question-block')?.[0]?.querySelector('label')?.textContent?.length, 1);
+```
+
+You should give the second `label` element text content.
+
+```js
+assert.isAtLeast(document.querySelectorAll('.formrow > .question-block')?.[1]?.querySelector('label')?.textContent?.length, 1);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+p::before {
+ content: "Question #";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-036.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-036.md
new file mode 100644
index 0000000000..452f1845c7
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-036.md
@@ -0,0 +1,250 @@
+---
+id: 6145f14f019a4b0adb94b051
+title: Part 36
+challengeType: 0
+dashedName: part-36
+---
+
+# --description--
+
+Within the first `div.answer` element, nest one required `select` element with three `option` elements.
+
+Give the first `option` element a `value` of `""`, and the text `Select an option`. Give the second `option` element a `value` of `yes`, and the text `Yes`. Give the third `option` element a `value` of `no`, and the text `No`.
+
+# --hints--
+
+You should nest one `select` element within the first `div.answer` element.
+
+```js
+assert.exists(document.querySelector('div.answer > select'));
+```
+
+You should nest three `option` elements within the `select` element.
+
+```js
+assert.equal(document.querySelectorAll('div.answer > select > option')?.length, 3);
+```
+
+You should give the first `option` element a `value` of `""`.
+
+```js
+assert.equal(document.querySelector('div.answer > select > option:nth-child(1)')?.value, '');
+```
+
+You should give the first `option` element a text content of `Select an option`.
+
+```js
+assert.equal(document.querySelector('div.answer > select > option:nth-child(1)')?.textContent, 'Select an option');
+```
+
+You should give the second `option` element a `value` of `yes`.
+
+```js
+assert.equal(document.querySelector('div.answer > select > option:nth-child(2)')?.value, 'yes');
+```
+
+You should give the second `option` element a text content of `Yes`.
+
+```js
+assert.equal(document.querySelector('div.answer > select > option:nth-child(2)')?.textContent, 'Yes');
+```
+
+You should give the third `option` element a `value` of `no`.
+
+```js
+assert.equal(document.querySelector('div.answer > select > option:nth-child(3)')?.value, 'no');
+```
+
+You should give the third `option` element a text content of `No`.
+
+```js
+assert.equal(document.querySelector('div.answer > select > option:nth-child(3)')?.textContent, 'No');
+```
+
+You should give the `select` an attribute of `required`.
+
+```js
+assert.isTrue(document.querySelector('div.answer > select')?.required);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+p::before {
+ content: "Question #";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-037.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-037.md
new file mode 100644
index 0000000000..ebbe661457
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-037.md
@@ -0,0 +1,222 @@
+---
+id: 6145f3a5cd9be60b9459cdd6
+title: Part 37
+challengeType: 0
+dashedName: part-37
+---
+
+# --description--
+
+Link the first `label` element to the `select` element, and give the `select` element a `name` attribute.
+
+# --hints--
+
+You should give the `label` element a `for` attribute.
+
+```js
+assert.notEmpty(document.querySelector('.question-block > label')?.htmlFor);
+```
+
+You should give the `select` element an `id` attribute.
+
+```js
+assert.notEmpty(document.querySelector('.answer > select')?.id);
+```
+
+You should give the `select` element an `id` matching the `for` attribute of the `label` element.
+
+```js
+assert.equal(document.querySelector('.answer > select')?.id, document.querySelector('.question-block > label')?.htmlFor);
+```
+
+You should give the `select` element a `name` attribute.
+
+```js
+assert.notEmpty(document.querySelector('.answer > select')?.name);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+p::before {
+ content: "Question #";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-038.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-038.md
new file mode 100644
index 0000000000..f837230bec
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-038.md
@@ -0,0 +1,229 @@
+---
+id: 6145f47393fbe70c4d885f9c
+title: Part 38
+challengeType: 0
+dashedName: part-38
+---
+
+# --description--
+
+Nest one `textarea` element within the second `div.answer` element, and set the number of rows and columns it has.
+
+Then, give the `textarea` placeholder text describing an example answer.
+
+# --hints--
+
+You should nest one `textarea` element within the second `div.answer` element.
+
+```js
+assert.exists(document.querySelectorAll('div.answer')?.[1]?.querySelector('textarea'));
+```
+
+You should give the `textarea` a `rows` attribute with a number.
+
+```js
+const rows = document.querySelectorAll('div.answer')?.[1]?.querySelector('textarea')?.getAttribute('rows');
+assert.notEmpty(rows);
+assert.isNotNaN(Number(rows));
+```
+
+You should give the `textarea` a `cols` attribute with a number.
+
+```js
+const cols = document.querySelectorAll('div.answer')?.[1]?.querySelector('textarea')?.getAttribute('cols');
+assert.notEmpty(cols);
+assert.isNotNaN(Number(cols));
+```
+
+You should give the `textarea` placeholder text describing an example answer.
+
+```js
+assert.notEmpty(document.querySelectorAll('div.answer')?.[1]?.querySelector('textarea')?.textContent);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+
HTML/CSS Quiz
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+
+header {
+ width: 100%;
+ height: 50px;
+ background-color: #1b1b32;
+ display: flex;
+}
+
+#logo {
+ width: max(100px, 18vw);
+ background-color: #0a0a23;
+ aspect-ratio: 35 / 4;
+ padding: 0.4rem;
+}
+
+h1 {
+ color: #f1be32;
+ font-size: min(5vw, 1.2em);
+}
+
+nav {
+ width: 50%;
+ max-width: 300px;
+ height: 50px;
+}
+
+nav > ul {
+ display: flex;
+ justify-content: space-evenly;
+}
+
+h1,
+h2 {
+ font-family: Verdana, Tahoma;
+}
+
+h2 {
+ border-bottom: 4px solid #dfdfe2;
+}
+
+p::before {
+ content: "Question #";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-039.md b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-039.md
new file mode 100644
index 0000000000..0c979b0263
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/accessibility-quiz/part-039.md
@@ -0,0 +1,219 @@
+---
+id: 6145f59029474c0d3dc1c8b8
+title: Part 39
+challengeType: 0
+dashedName: part-39
+---
+
+# --description--
+
+As with the other input elements and `labels`, link the `textarea` to its corresponding `label` element, and give it a `name` attribute.
+
+# --hints--
+
+You should give the `label` element a `for` attribute.
+
+```js
+assert.notEmpty(document.querySelectorAll('.formrow > .question-block')?.[1]?.querySelector('label')?.htmlFor);
+```
+
+You should give the `textarea` element an `id` attribute matching the `for` attribute of the `label` element.
+
+```js
+assert.equal(document.querySelectorAll('.formrow > .question-block')?.[1]?.querySelector('label')?.htmlFor, document.querySelectorAll('.answer')?.[1]?.querySelector('textarea')?.id);
+```
+
+You should give the `textarea` element a `name` attribute.
+
+```js
+assert.notEmpty(document.querySelectorAll('.answer')?.[1]?.querySelector('textarea')?.name);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ freeCodeCamp: Accessibility Quiz
+
+
+
+
+
+