Skip to main content
Back to Blog

Mobile Testing Deep Dive: Accessibility, i18n & Memory

TipsApril 9, 20256 min readQA Camp Team
MOBILE TESTING DEEP DIVE3Accessibilityi18n & MemoryPART 3 OF 33 TEST CATEGORIES - FINAL CHAPTERACCESSIBILITYi18n / L10NMEMORY

In Part 2, we explored the subtleties of animation timing, error handling, deep linking, push notifications, and data persistence. In this final installment, we turn to the details that are perhaps the most consequential of all: accessibility, localization, and memory management. These are the disciplines where overlooking small things can exclude entire user populations, break your app in international markets, or cause crashes that no functional test would predict.

Accessibility Testing: A Requirement, Not a Feature#

Accessibility testing is not optional. In many jurisdictions — including the United States under the ADA, the European Union under the European Accessibility Act, and Canada under the Accessible Canada Act — digital accessibility is a legal requirement. Beyond compliance, the World Health Organization estimates that roughly 16% of the global population experiences some form of disability. Ignoring accessibility means ignoring a significant portion of your potential users.

Screen Reader Compatibility#

The most fundamental accessibility test on mobile is screen reader compatibility. On iOS, VoiceOver is the built-in screen reader; on Android, it is TalkBack. Testing with these tools means navigating your entire application without looking at the screen, relying solely on audio descriptions.

Every interactive element — buttons, links, form fields, toggles — must have a meaningful accessible label. A button labeled "Submit your application" is useful. A button announced as "Button" or read as an internal identifier like "btn_03" is not. Focus order must match the visual layout. Modal dialogs should trap focus and return it to the triggering element when dismissed. Custom gesture-based interactions need accessible alternatives — a swipe-to-delete action should also be reachable through a standard button.

Color Contrast and Visual Design#

WCAG 2.2, the current version of the Web Content Accessibility Guidelines published in October 2023, establishes clear thresholds for color contrast. Under WCAG AA, the minimum contrast ratio is 4.5:1 for normal-sized text and 3:1 for large text (18pt or 14pt bold and above).

Test your color combinations with the built-in accessibility inspectors in Xcode and Android Studio. Pay particular attention to text over images or gradients, placeholder text in form fields (which is often too light), and disabled state styling. Beyond contrast, avoid relying on color alone to convey information. If a red border indicates a form error, pair it with an icon or text label for users with color vision deficiency.

For a deeper look at how we approach this discipline, see our accessibility testing services.

Localization Testing: More Than Translation#

Localization testing verifies that an application works correctly for users in different regions and languages. It is one of the most underestimated areas of QA because the problems it uncovers are invisible to anyone testing only in the development language.

Layout and Text Expansion#

When text is translated from English, its length often changes dramatically. German and Finnish text commonly runs 20-30% longer than its English equivalent. If your UI relies on fixed-width containers, translated strings may overflow or push adjacent elements out of position.

Test every screen with your longest supported language. Better yet, use pseudo-localization during development — a technique where English strings are artificially expanded with accented characters to expose layout issues before real translations arrive.

Right-to-Left Languages and Regional Formats#

Arabic, Hebrew, Farsi, and Urdu read right-to-left. Supporting RTL requires mirroring the entire layout: navigation drawers open from the right, progress bars fill from right to left, and directional icons must be reversed. Both iOS and Android provide framework-level RTL support, but custom views often break. Test the full application in an RTL locale, paying close attention to navigation flow, mixed-content text blocks, and directional icons.

Date and number formatting varies widely as well. "03/04/2025" is ambiguous without locale context — March 4th or April 3rd? Number formatting is equally variable: many European locales use a comma as a decimal separator and a period for thousands. Currency placement differs too. The safest approach is to rely on platform localization APIs (DateFormatter on iOS, java.time with locale on Android) rather than formatting strings manually. Localization testing should verify that these formatters are used consistently.

Platform-Specific Behavior#

iOS and Android have different design philosophies, interaction patterns, and technical constraints. Testing on one platform and assuming the other will behave identically is a reliable way to ship bugs.

Android has a system back button (or back gesture) that users expect to work consistently. iOS relies on the navigation bar back arrow and the swipe-from-left-edge gesture. An app that disables either of these feels broken.

Permission models differ significantly. Android allows granular permission management and may revoke permissions if an app is unused. iOS prompts at the point of use with system-level toggles. Test what happens when a user grants a permission, then revokes it from system settings while the app is backgrounded. Push notification behavior also varies — Android uses notification channels for granular user control, while iOS supports notification categories with custom actions. Verify behavior in all app states: foreground, background, and terminated.

Memory Management: The Silent Crash#

Unlike web applications where the browser manages memory, mobile apps operate under strict constraints enforced by the operating system. When an app exceeds its allocation, the OS terminates it — often without any error message. The app simply disappears.

Identifying and Testing for Memory Leaks#

Memory leaks typically stem from retained references to destroyed views, unclosed database connections, unbounded image caches, and closures that capture strong references to objects that should have been released. Profiling tools are essential: Xcode's Instruments (Leaks and Allocations) and Android Studio's Memory Profiler let you observe usage in real time and identify objects that were not properly released.

The danger of memory leaks is that they often pass standard functional testing. A leak of a few kilobytes per screen transition is invisible in a quick test, but over a sustained session it accumulates. A user who keeps your app open for 30 minutes while commuting may hit the memory ceiling and experience a crash. Test by running extended sessions: navigate repeatedly, rotate the device, switch between apps, and monitor whether memory trends upward. Automated scripts that repeat these patterns over hundreds of cycles are particularly effective at exposing slow leaks.

Wrapping Up the Trilogy#

This three-part series has covered a wide range of details that affect mobile application quality — from animation timing and error handling in Part 2, to accessibility testing, localization testing, and memory management here in Part 3. None of these topics make for impressive feature announcements. But collectively, they determine whether users trust your app enough to keep using it.

The pattern across all three parts is consistent: the issues that matter most are the ones easiest to overlook. A missing accessible label. A date format that confuses users in another country. A memory leak that only manifests after extended use. These are the details that separate professional-grade software from everything else. Building thorough testing into your process — or partnering with a team that specializes in it — is the most reliable way to catch these issues before your users do.

Related Articles

Web ApplicationsTestingFeaturesPART 1UI · FORMS · NAVIGATION · EDGE CASEShttps://app.example.comForm ValidationNavigation FlowError HandlingSTARTOK?PASSFAIL
Best Practices

Web Applications Testing Features — Part 1

Explore the key features and considerations when testing web applications.

February 12, 20266 min read
Read More

Need Expert QA for Your Project?

Let our team help you deliver software your users will love.

Get a Free Consultation