Web Build 115

Capstone builds: Accessible signup flow

Build accessible signup flow inside the persistent Field notes: Accessible signup flow starter project.

Capstone builds
7 minutes Capstone Lesson 115 of 120
htmlcssjsa11yseocheck
Lesson 115 of 120 0/120 lessons 0/18 missions Capstone builds · 7 minutes
0%
Continue View profile
Web fundamentals lab Simulated editor
New learnerrank 0XP 0%complete
Current edit

Build the capstone structure

In index.html, add the exact heading, live status, and native button.

Target
index.html · Replace the placeholder inside main.
Evidence
The project has a heading, live status, and keyboard-friendly button.
index.html html
Preview allowlisted render
Console text only
Instructions 7 minutes

Load exact snippets or type matching Web code. Run each task, compare the preview, then press Check to save the lesson.

Start with the Current task. Edit its named project file, press Run, compare the reviewed preview, then continue. Press Check only after every task is complete.

Build the capstone structure

In index.html, add the exact heading, live status, and native button.

Target index.html · Replace the placeholder inside main. Evidence The project has a heading, live status, and keyboard-friendly button. Snippet <h1>Field notes: Accessible signup flow</h1> <p data-status aria-live="polite">Ready for review.</p> <button type="button" data-action>Review project</button>
Next up
Style a stable responsive surface

Switch to styles.css and add the exact grid, spacing, width, padding, and focus rules.

Target styles.css · Replace the starter comment in styles.css. Evidence The project has bounded layout rules and visible keyboard focus. Snippet .capstone-shell, main[data-project="web-capstone-builds-003"] { display: grid; gap: 1rem; max-width: 52rem; padding: 1.5rem; } button:focus-visible { outline: 3px solid #5eead4; outline-offset: 3px; }
Next up
Review the simulated interaction

Switch to app.js and add the exact selector, listener, and textContent update, then Run and Check.

Target app.js · Replace the starter comment in app.js. Evidence The script selects existing elements and describes one reviewed click outcome. Snippet const reviewButton = document.querySelector("[data-action]"); const reviewStatus = document.querySelector("[data-status]"); reviewButton.addEventListener("click", () => { reviewStatus.textContent = "Accessible signup flow reviewed"; });
Next up
Lesson support

What to notice while you play.

Objective

Complete a project-shaped accessible signup flow build while preserving each passing edit.

Hint

Start with the Current task. Open index.html, use Show exact edit when needed, Run, then follow the highlighted next task.

Why it matters

Capstone builds becomes durable when every syntax choice is tied to a visible project outcome and a specific piece of evidence.

Common mistakes
  • Editing the wrong file instead of index.html.
  • Replacing earlier passing work instead of preserving it for the next step.
  • Pressing Check before every task has passed Run.
  • Expecting learner HTML, CSS, or JavaScript to execute; the preview uses reviewed scene states only.
Reference

Snippets in this lesson.

Run

Render a simulated preview from the current lesson snippet.

Check

Save the lesson after the required task snippets are complete.

Hint

Show the lesson hint without changing progress.

Reset

Clear local Web lab scratch state for this browser.