Hello I am a Product Designer at the Commonwealth Bank of Australia (CBA). We recently launched a feature enabling customers to verify their identity by scanning their passport's biometric chip via NFC.
While our in-app flow is highly optimised, the core user experience relies heavily on the native iOS NFC scanning modal (NFCTagReaderSession / NFCNDEFReaderSession). After conducting extensive user testing, we found that the current native UI consistently causes user confusion, friction, and avoidable drop-offs. Because developer customisation is currently limited strictly to the body copy string, we are unable to resolve these critical UX and accessibility issues ourselves.
Below are three specific areas where the native NFC modal is performing below expectations, along with proposed solutions.
Dynamic Heading States
The Problem: The modal heading is hardcoded to "Ready to Scan" and remains static throughout the entire lifecycle. It does not update when scanning begins, when scanning completes, or when an error occurs. Showing "Ready to Scan" alongside a loading state or a success checkmark is logically contradictory and confuses users.
The Impact: Users are left uncertain if the device is actively reading, finished, or waiting for input.
Proposed Solution:
Allow developers to dynamically update the header text via the API based on session states (e.g., Ready to Scan, Scanning..., Hold Still, Scan Complete).
Alternatively, implement native, automated heading changes that correspond to the actual hardware state.
Accessibility & Typography (Body Copy Legibility)
The Problem: The customisable body text underneath the main heading uses a font size that is far too small.
The Impact: During user testing, the vast majority of participants completely missed or ignored this text. Even standard users struggled to read it, and it poses a severe barrier for users with visual impairments. Since this is the only text developers can control to give context-specific instructions, its lack of legibility breaks the experience.
Proposed Solution: Increase the default font size of the body text to meet standard iOS Human Interface Guidelines (HIG) for legibility, or respect the user's Dynamic Type settings within the modal template.
Active Scanning Animation / State Indicator
The Problem: The native looping animation shows a phone tilting toward a reader. While appropriate for the initiation state, this animation does not change once active data transfer begins.
The Impact: When combined with the static "Ready to Scan" heading, users have zero visual feedback that a scan is actively in progress. They frequently move the phone away too early, resulting in aborted scans and error loops.
Proposed Solution: Introduce a distinct visual state indicator once scanning starts—such as a progress bar, a loading spinner, or an altered animation—to signal that scanning is underway.
The current restrictions on the native NFC modal limit our ability to deliver an accessible, seamless experience for millions of users who rely on identity verification. Unlocking greater UI customisation for developers or updating the native template to be more dynamic would significantly elevate the UX for all apps leveraging CoreNFC.
Keen to hear back on any upcoming changes. Thank you!
2
0
37