Automated Workflows
Automate your post-form tasks with workflows that instantly trigger unlimited actions.
New FeatureEnable forms to be filled out by voice!
Accessible Forms aren’t a nice-to-have. They’re how you make a real product out of a public input point. Over 1 billion people worldwide live with some form of disability; many of them use assistive tech to interact with web forms. If your contact form blocks those users, it’s not an edge case — it’s a broken feature.
WCAG 2.1 at level AA is the baseline most organizations aim for. For forms that means a few non-negotiables: semantic markup, keyboard operability, clear labels and instructions, meaningful error handling, color contrast of at least 4.5:1 for normal text, and predictable focus behavior. Hit those and you solve most immediate problems. Miss them and you introduce barriers.
But forms today are no longer static. AI-driven conditional logic, conversational follow-ups, and voice input change how a user experiences a form — and they change what accessibility requires.
Here’s what matters, the practical stuff developers and product teams need to do when they build modern, smart forms.
Use semantic HTML first. Inputs belong in labels. Fieldsets and legends group related controls. Use native controls where possible rather than building custom widgets from divs. Screen readers understand semantics; bespoke replacements usually don’t.
Make every control reachable by keyboard. Tab order should follow visual order. All interactive elements must be operable without a mouse — including any AI-driven suggestions, conversational reply buttons, and file uploads. If something needs keyboard shortcuts, document them.
Manage focus whenever content changes. If your form reveals fields, steps, or messages based on input, move focus to the new content in a predictable way. Don’t force focus unexpectedly; do announce changes via assistive channels too.
Announce dynamic updates with ARIA live regions. When an AI response appears — a follow-up question generated after submission, a validation summary, or a progress update — expose that text in an aria-live region (aria-live="polite" for non-critical updates; aria-live="assertive" only for things requiring immediate attention). That lets screen readers read the update automatically.
Make error messages meaningful and linked. Validation errors should describe the problem and how to fix it. Associate them with the input using aria-describedby (or inline
Give clear labels and instructions. A placeholder is not a label. Labels must persist. If an input has additional instructions, expose those instructions via aria-describedby so assistive tech can find them.
Design accessible file uploads. File inputs often break accessibility. Provide a clear label, allowed file-type hints, and a text-only fallback for drag-and-drop. Ensure the upload progress and final success/failure messages are announced.
Handle timing, captchas, and voice thoughtfully. Time limits must be adjustable. Traditional CAPTCHAs are inaccessible — prefer invisible spam detection, honeypots, or accessible alternatives. If you offer voice input (as some smart form platforms do), keep keyboard and manual alternatives; expose controls so screen reader users can enable or disable voice features.
Test with real assistive tech and people. Automated scanners (axe, Lighthouse, WAVE) find many issues, but they miss context: Does the conversational flow make sense when read aloud? Is the tab order logical? Test with NVDA, VoiceOver, or TalkBack and run sessions with users who rely on assistive tech. Accessibility is a usability problem solved with human feedback.
"Accessibility isn’t a checklist you finish once. It’s a product practice you iterate on."
Below is a short checklist you can run through during development and before launch.
One practical gotcha: AI-driven conditional logic can hide fields until they’re relevant. That’s great for usability but bad for some assistive workflows if those fields aren’t properly announced or if the visual change isn’t paired with focus and ARIA updates. The fix is straightforward — announce, set focus, and keep the DOM order logical — but teams forget it under delivery pressure.
Another: conversational-style responses. If your form answers the user or asks follow-ups, expose the conversation transcript to assistive tech, and don’t rely solely on visual cues like avatars, colors, or animations. Use readable timestamps or labels where sequence matters.
Finally, bake accessibility into your process. Train designers and engineers. Include accessibility tests in CI pipelines (axe-core integration), and run periodic manual audits. Accessibility isn’t a post-launch checkbox — it’s the difference between a form that works for everyone and one that only appears to work.
Make the form’s intelligence inclusive. When AI creates a follow-up question, that question must be as discoverable, operable, and understandable as the original form fields. Do that and your forms stop being friction points and start being reliable entryways for real people.
Sign up now to experience the next generation of contact forms with Formyra!