Direct answer
Multilingual accessibility is the interaction between language choice, rendered interface, assistive technology, and user-visible task status. It is not established by translating resource strings or by testing one right-to-left screen. A usable test needs to distinguish the app interface locale from the source and target languages of the current task. It also needs to verify that language names are spoken in a way the user can recognize, that selection controls expose their current value and state, and that changing a locale does not strand keyboard or screen-reader focus. The result is an interface test record, not proof that a model supports the selected language pair. Start by keeping language dimensions separate. The app locale selects interface resources and formatting; a translation task has a source and target language; generated text may have a script and direction that differ from the surrounding controls; and an offline status describes asset or network readiness. One selection must not silently change another. A screen reader should be able to identify which control changes the app language and which changes the translation direction. After a choice, the selected value should remain discoverable, and the next action should still have an understandable label. The interface should not announce a selected language as model capability unless the application has separate evidence for that exact artifact and task. Direction has more than one layer. A locale may cause a screen layout to use right-to-left order, while a particular text field can contain mixed Hebrew or Arabic, Latin product names, URLs, phone numbers, or digits. Test both the arrangement of controls and the logical order of each text run. Check cursor movement, selection handles, punctuation, numbers, and copy behavior in mixed-direction examples. Do not mirror every icon indiscriminately: back navigation may be directional, while a brand mark or play symbol may not be. A screenshot that looks mirrored does not show whether text is read or selected in the right order. Assistive-technology traversal should be checked after each language change. Verify that the language picker has a useful name, role, current value, and expanded or selected state; that options are reachable in a predictable order; and that dismissal returns focus to a meaningful control. Test with TalkBack and at least one non-touch interaction path such as keyboard or switch navigation when those paths are supported. Announce a completed locale change once, rather than repeatedly announcing every re-rendered string. If changing locale causes an error or reload, explain the outcome and restore focus instead of leaving the user at the top of a new screen without context. Text scaling and translation expansion can expose failures that are invisible at default settings. Increase system font size and display size, then test long language names, paired source and target selectors, helper text, validation messages, dialogs, buttons, and offline banners. Content should wrap without hiding a selected value or pushing a critical action off-screen. Check a long translated string and a mixed-script sample; do not shrink text until it fits or rely on color alone to show which direction is active. Accessibility text and visual text should describe the same selected state. Offline and unsupported states also need accessible language. A translator may have an interface locale available while a model, asset, or complete task path is not. Name the actual state, such as language pack unavailable, download required, task direction not verified, or request failed, and expose the next safe action. Do not use a vague network icon without text or announce that a language is supported because its UI strings are translated. If inference is local, that fact describes where inference runs; it does not prove that every other application path is offline or that the language result is correct. Make the test repeatable with a matrix of app locale, source language, target language, writing direction, font scale, assistive technology, and network or asset state. Use reviewed synthetic labels and strings rather than personal content. Record the app build, Android version, locale settings, control traversal, focus destination, announcement, clipping or overlap, and the observed recovery. Android accessibility checks can find missing semantics and common issues, but they do not replace manual traversal or a native-language review. Do not publish a universal accessibility or language-support claim from one device or one locale.
A user switches the interface to Arabic before translating
A traveler uses TalkBack and changes an offline translator interface from English to Arabic. The source language remains English and the target language remains Arabic. The screen relayouts right-to-left, but a language selector, a mixed Latin place name, and an offline asset warning all appear on the same page. The team needs to check whether the user can still tell which language is selected and what is ready.
Decision
Test app locale, translation direction, text-run direction, focus order, font scaling, and offline status as separate but interacting dimensions. Keep the task languages unchanged during the locale change and announce only the new interface state.
Expected outcome
The test record shows whether the user can select, verify, and act on the target language with assistive technology. It does not claim that a particular translation model supports Arabic or that its output is accurate.
Evidence to collect
The claim becomes reviewable only when the following evidence is attached to the same artifact and test run:
- Locale and script matrix
- Screen-reader and focus tests
- Error and offline-state review
Task quality needs a versioned corpus and acceptance rules. Fluent sample output is not an accuracy result.
Implementation workflow
- Define the language and state matrix. List interface locale, source language, target language, writing direction, task mode, asset state, font scale, and assistive technology separately. Include combinations where the interface and task languages differ so accidental coupling is visible.
- Inspect language controls and spoken names. Check the accessible name, role, current value, selected state, and option order for app-locale and source/target controls. Use language names that native reviewers can recognize and ensure the spoken label identifies which control it belongs to.
- Change locale and verify focus continuity. Switch the interface language during a normal user flow, then verify the task direction did not silently change. Confirm that focus returns to a meaningful control, the new selection is announced once, and help or error text uses the selected locale.
- Test layout direction and mixed text. Use RTL and LTR screens containing mixed-script names, URLs, phone numbers, punctuation, and digits. Check layout order separately from text-run reading order, cursor movement, selection, copy, and directional icons.
- Exercise text scaling and constrained layouts. Increase font and display scale with long language names and translated error messages. Confirm labels wrap, selected values remain visible, controls do not overlap, and the primary next action stays reachable without clipping.
- Verify offline announcements and recovery. Test missing assets, network unavailable, unsupported or unverified direction, loading, and failure states. Check that each state has a concise text announcement and a usable next action, without implying model support from translated UI resources.
Keep each transition observable. A failure should identify the stage, artifact, runtime, and recovery action without logging private user content.
Acceptance criteria
- The app locale and task source/target languages are independently selectable and their accessible labels identify each purpose and current value.
- Locale changes preserve meaningful focus and task direction; RTL layout and mixed-direction text remain readable, selectable, and copyable at the tested scale.
- Offline, missing-asset, and unsupported states are exposed as text with a next action, and no test result is generalized to untested locales or model capability.
Decision table
| Dimension | Choice or evidence | How to interpret it |
|---|---|---|
| Translated resource strings | Verify that labels exist in each app locale | Confirms localization coverage but not accessible names, focus order, text direction, or task-language behavior. |
| Single RTL screenshot | Inspect one screen after layout mirroring | Can reveal visual alignment issues but does not test spoken order, focus continuity, mixed scripts, selection, or offline status. |
| Multilingual accessibility workflow | Traverse language selection, locale change, task state, and recovery with assistive technology | Tests the user-visible interaction across locale, direction, scaling, and status; it still does not certify translation quality or every platform. |
Failure patterns to prevent
- Relying on flags alone
- Using color as the only state signal
Also prevent silent fallback, unpinned artifacts, missing cancellation, and conclusions that combine unlike configurations. Store unsuccessful runs alongside successful ones.
Minimum reproducibility record
| Layer | Record |
|---|---|
| Device | Manufacturer, model, chipset, RAM class, operating-system build |
| Software | Application version and git commit |
| Model | Family, variant, revision, format, file length, hash, quantization |
| Runtime | Name, revision, requested backend, observed backend evidence |
| Workload | Fixture revision, input hash, prompt hash, output policy |
| Outcome | Completed, failed, cancelled, fallback, and privacy-safe diagnostics |
Release checklist
- ☐ The primary query is answered without an unsupported number.
- ☐ Every artifact and runtime is pinned.
- ☐ The representative task and failure policy are explicit.
- ☐ Lifecycle, cancellation, cleanup, and fallback are tested.
- ☐ User-content and network boundaries are documented.
- ☐ Result wording applies only to the recorded configuration.
- ☐ The page links to raw method or evidence when results are added.
Sources and related evidence
- On-device AI architecture overview
- Cove benchmark method
- Android Developers: Accessibility in Jetpack Compose
- Android Developers: Localize your app
- Android Developers: Test your app accessibility
Chinese deployment and troubleshooting content is organized in the .奇连 AI 端侧专题.
Frequently asked questions
Does translating the app interface prove that the model supports that language?
No. Interface resources and model capability are separate. Verify the exact model artifact, language direction, input mode, and complete task with suitable evidence before making a support statement.
Is an RTL screenshot enough to validate Arabic or Hebrew usability?
No. A screenshot cannot verify spoken order, keyboard or switch navigation, focus restoration, cursor movement, selection, mixed-direction numbers, or the announcement of an offline state.
Should every string be announced again after changing the app locale?
No. Announce the completed locale change and preserve focus, then let users navigate the updated controls. Re-announcing every re-rendered label can interrupt navigation and make the new state harder to understand.