Lab 07: Forms & Accessibility
Overview
Step 1: Modern Input Types
<form novalidate> <!-- disable native validation UI, use custom -->
<!-- Text types -->
<input type="text" autocomplete="name">
<input type="email" autocomplete="email">
<input type="password" autocomplete="current-password">
<input type="search" role="searchbox">
<input type="tel" autocomplete="tel" inputmode="tel">
<input type="url" autocomplete="url">
<!-- Number/Range -->
<input type="number" min="0" max="100" step="5">
<input type="range" min="0" max="100" value="50" aria-label="Volume">
<!-- Date/Time -->
<input type="date" min="2024-01-01" max="2024-12-31">
<input type="time" step="900"> <!-- 15 min steps -->
<input type="datetime-local">
<input type="month">
<input type="week">
<!-- Pickers -->
<input type="color" value="#3b82f6">
<input type="file" accept="image/*" multiple>
<!-- Hidden (no label needed) -->
<input type="hidden" name="csrf_token" value="abc123">
</form>Step 2: Constraint Validation API
Step 3: ARIA for Forms
Step 4: CSS States — :valid, :invalid, :focus-visible
Step 5: WCAG 2.2 Success Criteria for Forms
Step 6: Complete Accessible Form Component
Step 7: Error Handling Pattern
Step 8: Capstone — Accessibility Audit
Summary
Feature
Implementation
WCAG
Last updated
