Settings
Last updated on 2026-04-14
The settings page demonstrates accessible form patterns including tabbed navigation, fieldset/legend grouping, toggle switches, and radio button groups.
Page URL
/settings
Key Features
- Tabbed interface with proper ARIA tab pattern
- Form fields grouped with
<fieldset>and<legend> - Toggle switches with accessible labels
- Radio button groups with keyboard navigation
- Form validation with error announcements
Accessibility Patterns
Tabbed Interface
The settings tabs follow the WAI-ARIA Tabs pattern:
<div role="tablist" aria-label="Settings sections">
<button role="tab" aria-selected="true" aria-controls="profile-panel">
Profile
</button>
<button role="tab" aria-selected="false" aria-controls="notifications-panel">
Notifications
</button>
</div>
<div role="tabpanel" id="profile-panel" aria-labelledby="profile-tab">
<!-- Panel content -->
</div>
- Arrow keys move between tabs
- Tab key moves focus into the active panel
- Only the active tab is in the tab order
Form Groups
Related fields are grouped with <fieldset> and <legend>:
<fieldset>
<legend>Privacy Settings</legend>
<!-- Toggle switches and checkboxes -->
</fieldset>
This provides context for screen readers -- users hear "Privacy Settings group" before the individual controls.
Toggle Switches
Toggle switches use the switch role with aria-checked:
- Clear on/off labels visible to all users
- State changes announced to screen readers
- Keyboard-operable with Space key
Radio Groups
Radio buttons use role="radiogroup" with:
- Arrow keys to navigate between options
- Only the selected radio is in the tab order
- Group label provided via
aria-labelledby
Customization
- Add or remove settings tabs as needed
- Modify form fields to match your app's settings
- Connect form submissions to your API
- Add validation rules using the existing error pattern