Creating Accessible HTML Forms
A well-structured form begins with the <form>
element. Use <label>
tags linked via the for
attribute to improve usability and screen-reader support. Group
related controls inside <fieldset>
with a <legend>
. Native
validation (e.g., required
, type="email"
) provides immediate feedback without
JavaScript.
<form action="/submit" method="post">
<fieldset>
<legend>Contact Us</legend>
<label for="name">Name:</label>
<input type="text" id="name" name="name" required />
<label for="email">Email:</label>
<input type="email" id="email" name="email" required />
<label for="message">Message:</label>
<textarea id="message" name="message" rows="4" required></textarea>
</fieldset>
<button type="submit">Send</button>
</form>
Key Points
- <label> linked to inputs via
for
improves form usability. - <fieldset> + <legend> groups controls and provides context.
- Use native validation attributes like
required
,type="email"
for instant feedback. - ARIA attributes (e.g.,
aria-required="true"
) enhance accessibility for assistive tech.