A screen that looks fine before typing may fail when the keyboard, an error message or a long label appears. Test those states with larger text; record the build, device and setting. An unrun case stays “Untested”, not “Passed”.
Pick one complete journey, not a screenshot
Use a beta or dedicated test build you are allowed to test. Choose one important task and keep its starting records consistent between runs. For the fictional reading-log specification in this guide, a reader creates an entry, corrects a missing title, saves it, edits it and opens the saved result. No Moocsoft app has been tested as part of this example.
- 01CreateRead labels; enter a fictional record
- 02CorrectFind the error and its field
- 03Save & editReach actions with the keyboard open
- 04ReopenRead the saved result
Agree on the intended behavior before testing. For example: an empty title produces a readable instruction, the user can correct it, and Save stores the completed entry. If that behavior has not been decided, write it as a product decision in the first-release checklist, not as a confirmed defect.
Record the exact build, device model, operating-system version, orientation and text setting. “Looks broken on mobile” is not enough to reproduce a layout state. Use fictional data and avoid collecting account details or personal notifications in screenshots.

Change system text, then note display size separately
Apple’s text-size instructions distinguish the regular Text Size control from the larger options under Accessibility → Display & Text Size → Larger Text. Use the settings available on the test device and record the chosen position; do not assume every app supports every text-size behavior.
On Android, open the device’s font-size controls and test the largest available setting as well as the default. Menu names vary by device and system version. Android’s nonlinear font-scaling guidance explains that Android 14 introduced scaling up to 200%, with a curve rather than one multiplier for all text. A title and a small label need not grow by the same proportion.
Font size and display size or display zoom are different conditions. First change text alone, then add a separate display-size run if it is in scope. Record both settings rather than calling either one “200%”. A browser zoom demonstration on this website is not a simulation of the installed app’s system text behavior.
For a Flutter maintainer, check the current MediaQuery.textScalerOf API when reviewing custom text measurement. Do not assume that multiplying every dimension by one text-scale number reproduces a nonlinear layout. The acceptance question remains practical: can the person finish the task?
Run this six-case matrix on each target setup
This is a proposed test matrix for the fictional task, not a claim of passing results. Copy it for each device/build/text-setting combination you actually intend to cover. Run the baseline first, then the larger-text case. Keep expected behavior, observation and status separate.
| Case | Action | Expected observation to agree | Actual result |
|---|---|---|---|
| Start and navigate | Open the entry list and choose Add. | The title, navigation and Add action remain readable and reachable. | Untested |
| Read a long record title | Enter “Notes for the community reading group”. | The entered title can wrap or be inspected without hiding its meaning or another control. | Untested |
| Correct an error | Leave the required title empty and try Save. | The expected validation message is readable; the field to correct is identifiable. | Untested |
| Use the keyboard | Focus the last field, then find and activate Save. | The keyboard does not make the active field, error or required action unreachable. | Untested |
| Review a dialog | Open a non-destructive confirmation or selection dialog. | Read the complete message and reach every relevant choice, including Cancel. | Untested |
| Save, edit and reopen | Save a fictional entry, edit its title and reopen it. | The updated value can be read in the list and detail view; successful saving is verified separately from layout. | Untested |
Try the error and keyboard states deliberately; they can need more space than a filled form. Include the longest relevant label or realistic translated phrase available in the project. Do not claim multilingual coverage from a single English string.
A long screen is not automatically a failure. Scrolling can be appropriate when it is clear and the required controls remain reachable. Record specific problems—clipped meaning, overlapping controls, a missing action or lost focus—instead of rejecting all wrapping or extra height.
If a validation error prevents saving, test its layout and report that outcome. Do not label the persistence step passed without a saved record to reopen. Likewise, seeing an entry after reopening does not establish that every label was legible.
Write one observable issue and a safe retest note
Describe the state and action that expose the problem, rather than diagnosing a widget or framework. Use the mobile app bug report template for a detailed issue. The short record below is intentionally blank: replace fields with what you observed, not with the expected result.
Task / case: [Journey and matrix row]
Build: [App version, build and beta/store context]
Device / OS: [Model and system version]
Settings: [Text position, display size, orientation and language]
Starting state: [Screen and fictional record]
Steps: [Exact actions, including keyboard/error state]
Expected: [Agreed observable behavior]
Actual: Untested
Evidence: None collected
Comparison: [Default-text outcome, or not tested]
Retest: [New build and observed result, or not tested]
If Save is hidden behind a keyboard, say which field had focus and whether scrolling made it reachable. “Save is unreachable while the notes field has focus” is more actionable than “Large text breaks the app.” Attach only the evidence needed through the project’s approved private feedback route.
Retest the original steps on the changed build, then a nearby state such as the same form without an error. Keep the device and settings recorded. Do not uninstall a production app, erase its records or repeat a payment to recreate a layout problem; ask the maintainer for a safe test setup.
Know what this check does not cover
A large-text pass is one part of usability testing, not an accessibility certification. It does not prove screen-reader navigation, contrast, touch-target sizing, switch access or all device/language combinations. Flutter’s accessibility release checklist treats large text alongside other checks, including platform screen readers and actionable errors. Plan those separately.
Nor does this checklist prove that an app saves offline, handles camera refusal or syncs correctly. If those actions belong to the chosen journey, use a separate scenario such as the camera-permission test plan and identify which conditions you have actually tested.
For a handover, keep unresolved cases and coverage gaps visible: “tested on this build and device at these settings” is useful; “accessible everywhere” is not supported by this small matrix. Bring the journey, intended behavior and current evidence to your Flutter project discussion.
Common questions
What should I test after increasing mobile app text size?
Complete an important task, including navigation, long labels, validation errors, the keyboard, dialogs and the saved result. Compare the same journey at default text and record the build, device and settings.
Is display zoom the same as a larger font setting?
No. Treat text size and display size or display zoom as separate test conditions. Record both and change one condition at a time before testing a combination.
Does a larger-text test prove that an app is accessible?
No. It covers one set of layout and task observations. Screen-reader behavior, contrast, touch targets and other accessibility needs require separate checks; this guide is not a compliance audit.
Should a button stay in exactly the same position?
Not necessarily. Wrapping, reflow and scrolling can be appropriate. Check whether the information remains understandable and the action can still be found and reached in the actual task state.
Can browser zoom replace testing a Flutter app on a phone?
No. Browser zoom on an HTML page does not establish an installed Flutter app’s behavior under iOS or Android system text settings. Use the intended app build and target devices, and label any simulation separately.
References and further reading
Published by Moocsoft, an independent Flutter development studio. Examples and worksheets are illustrative. Project scope, platform requirements and release responsibilities need to be agreed for each project.