The previous demo added tools without parsing typed text. Here the itinerary from the first exercise is already working; extend it with a form. Each lesson opens in its own preview, so changes you made in the earlier editor are not carried over.
A different form might reject an empty shelf label like this:
const shelf = document.querySelector("#shelf-name");
if (!shelf.value.trim()) {
document.querySelector("#shelf-error").textContent = "Name the shelf.";
shelf.focus();
}
Your workshop also needs a time and must add the new object to sessions, then call renderSessions(). The starter has labelled controls; wire their submission in script.js and update the accessibility attributes in index.html.
#session-status with aria-describedby and give the paragraph role="status".sessions and render the new row with literal text, never parsed markup.#session-status.Try an invalid time, then enter a session with angle brackets in its title. The preview should show those brackets literally.