Return key label is contextually appropriate
Why it matters
The generic return key on a password field gives no signal that pressing it will submit the form — users tap the submit button anyway, making the return key dead weight. On a search field, the wrong label leaves users guessing whether return submits or inserts a newline. Contextual return keys (done, go, search, send) are a zero-cost signal that matches the platform convention and reduces form completion time.
Severity rationale
Low because the wrong return key slows users but does not block form completion.
Remediation
Set returnKeyType per field and wire onSubmitEditing so pressing the key actually advances or submits. Use refs to chain focus between fields in multi-input forms:
<TextInput placeholder="First" returnKeyType="next" onSubmitEditing={() => lastRef.current?.focus()} />
<TextInput ref={lastRef} placeholder="Last" returnKeyType="done" onSubmitEditing={submit} />
<TextInput placeholder="Search" returnKeyType="search" onSubmitEditing={search} />
Detection
-
ID:
return-key-label -
Severity:
low -
What to look for: Enumerate all TextInput fields. For each, classify its purpose (form submission, search, multi-field navigation) and check the
returnKeyTypeprop. Verify the return key matches:doneorgofor final fields,nextfor multi-field forms,searchfor search inputs. -
Pass criteria: All TextInput fields have a
returnKeyTypethat matches their purpose. At least 100% of final form fields usedoneorgo, intermediate fields usenext, search fields usesearch. No inputs use the defaultreturnkey when a more specific option applies. -
Fail criteria: Any TextInput uses the generic
returnkey type when a contextual option (done,go,send,search,next) would be more appropriate, or the return key is mismatched with the input purpose. -
Skip (N/A) when: App has no text input fields.
-
Detail on fail: Quote the actual returnKeyType.
"Login form password field uses default return key instead of 'done' or 'go' — unclear that it submits the form."or"Search input uses 'return' instead of 'search' return key." -
Remediation: Set contextually appropriate returnKeyType:
// Form submission <TextInput placeholder="Password" returnKeyType="done" onSubmitEditing={handleSubmit} /> // Search <TextInput placeholder="Search" returnKeyType="search" onSubmitEditing={handleSearch} /> // Multi-field form <TextInput placeholder="First Name" returnKeyType="next" onSubmitEditing={() => lastNameRef.focus()} /> <TextInput ref={lastNameRef} placeholder="Last Name" returnKeyType="done" onSubmitEditing={handleSubmit} />
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mobile-ux-patterns·automated