Missing Form Submit Buttons
Every form needs an explicit, discoverable way to submit it — a real <button type="submit"> or <input type="submit">. Forms built to submit only via a JavaScript handler bound to a generic, non-submitting element (a styled <div> with an onclick, for instance) can leave keyboard users with no reliable way to trigger submission at all, and leave every user without a clear, conventional signal of "this is how I finish this form."
Why a real submit control matters
Native submit buttons come with built-in behavior that's easy to lose when a form is submitted only via custom JavaScript: pressing Enter while focused in any text field in the form automatically triggers a real submit button, a behavior users have learned to expect from virtually every form they've ever filled out. A form that only submits via a specifically-clicked custom element breaks that expectation — and if that custom element isn't a real, keyboard-focusable button (see Keyboard Inaccessible Controls), keyboard users may have no way to submit at all.
The fix
<!-- Before: no real submit control, relies entirely on a script binding a click on a generic div -->
<form id="signup">
...
<div class="submit-btn" onclick="submitForm()">Sign Up</div>
</form>
<!-- After: a real submit button -->
<form id="signup">
...
<button type="submit">Sign Up</button>
</form>
A real <button type="submit"> can still be styled however the design calls for, and can still trigger custom JavaScript (via the form's submit event) — using the correct element doesn't require giving up any control over behavior or appearance.
Where this shows up
Custom-built single-page-app forms and heavily-JavaScript-driven checkout flows are the most common source — teams building form submission entirely in JavaScript sometimes skip the native submit element because the framework's event handling doesn't strictly require it to function for a mouse user, missing that it's still required for full keyboard and Enter-key support.
Official references
Common questions
- Why does a form need a real submit button?
- A real submit control can be reached and activated with the keyboard and lets users submit by pressing Enter in a field. A `<div>` with a click handler usually can do neither, blocking keyboard and screen reader users.
- Can a form submit without a submit button?
- A script can submit a form, but relying on that alone is an accessibility failure. Provide a genuine submit control so every user, keyboard included, has a discoverable way to finish.
- How do I fix a missing submit button?
- Add a real submit control inside the form (a `<button>` or `<input>` of type submit). This also restores the expected press-Enter-to-submit behaviour for free.
Related articles
Want to see how your own site scores?
Run a free accessibility scan