Rullst AcademyRullst Academy/Lesson
Applications with Rullst I · Lesson 05 / 14

A form that guides

Saving should make sense with a keyboard and without relying only on color.

Learning paths16 min

Let's discover together

  1. 1

    Open web/index.html: label for="title" links to input id="title". Clicking the label moves focus. The button is type="submit" inside a form. Use native elements before inventing buttons from divs and click events.

  2. 2

    Navigate with Tab, Shift+Tab, Enter and Space. Focus should be visible; checkbox text includes title and state. The list is recreated after an update, so JavaScript returns focus to the checkbox for the same mission.

  3. 3

    The role="status" and aria-live="polite" region reports loading and results without interrupting all reading. These attributes alone do not prove accessibility: check keyboard, contrast, zoom and, where possible, assistive technology with someone who uses it.

  4. 4

    The kit uses JavaScript to send JSON; without it, noscript gives guidance, not a working alternate form. required helps prevent empty input, but spaces can pass. Actual title and priority validation is on the server, explored next.

Your application workbench

The kit includes a complete app to investigate and modify. The excerpt below explains this step; the editor contains the indicated file. Rullst Academy does not compile or run this server in your browser.

File to study and modify

web/index.html

<label for="title">Mission title</label>
<input id="title" name="title" required>
<p role="status" aria-live="polite"></p>

Extract the kit to a new folder and open a terminal beside Cargo.toml. Use Rust 1.96+; the first build may download dependencies and take time. Then open http://127.0.0.1:3010. Stop with Ctrl+C and run again after editing.

cargo test --locked
cargo run --locked
My files and GitHub

Download your draft and replace the indicated file in your extracted copy. The editor saves one file in this browser; your account saves assessments and XP. The ZIP excludes your edits. GitHub sends only the confirmed file; use Git manually for the whole app, excluding databases, backups and secrets.

Official links and next step

✦
YOUR MISSION

Connect labels, focus and feedback with the action sent to the server.

Now it's your turn

Discovery workshop

Decide before running

Connect labels, focus and feedback with the action sent to the server.
Build your answers and check when you are ready.
A moment to understand

What does required guarantee in this example?

I need a hint

Interface controls can be bypassed. The server must validate its own input.

Loading your journey…

Take it with you

Use the page at 320 px and 200% zoom. Create a mission using only the keyboard. Record a real obstacle and an improvement; do not mark a checklist passed without performing the check.

At your own pace

My files and GitHub

Every lesson can become your own record: code, notes or a practice plan. Saving a file to GitHub is optional and does not change your XP.

Student guide

The editor and downloads open when this lesson is available to your account. Check access below or return to the track map.

Checking your access to this lesson…

Rullstpetbot

AI can make mistakes. Check the lesson material.