Unstructured Supplementary Service Data (USSD) has been described as “The Third Universal Mobile Application” and, according to The World Bank, is “the best communication technology available to provide [mobile financial services] to low-income individuals.” It’s undeniably changed the world for the better, but it also has a dark side: USSD is inaccessible to nearly 1.3 billion people.
Even Google’s own phones fail to meet its accessibility standards. According to Google’s Accessibility Scanner, for example, the essential * and # characters on the Pixel’s default dialer have an insufficient text contrast ratio (3.19 vs. the recommended 4.50) and the call button has an insufficient image contrast ratio (2.18 vs. the recommended 3.00), making them harder to see.
USSD menus are incoherent when read as run-on sentences, which is how screen readers interpret them. To see what I mean, close your eyes and try to follow what’s happening in this video. It’s impossible, especially when you’re racing against the clock to prevent the session from timing out (more on that in a second).Source: Tech Accessibility Tutorials (YouTube)
USSD input fields have no item label, which means they “may not have a label readable by screen readers” (also from Accessibility Scanner). In practice, this means the user has to know to double tap the input field to select an item from a list, enter a variable, or enter their PIN. When they do, Google’s screen reader, TalkBack, confusingly interprets the input field as “edit box.”
Navigational commands are decoupled from input fields. Replying in a USSD input field doesn’t automatically progress you to the next step. Instead, a user depending on a screen reader has to know to double tap “Cancel” or “Send” to dismiss the session or navigate forward. Failing this, the session automatically times out from inactivity and the user has to start over.
It’s almost impossible to complete a USSD session with a screen reader before the session times out. At the beginning of the video above, the instructor says “to use the service we need to type fast otherwise it will say connection problem, or MMI complete, or MMI invalid — something like that.” It then takes the instructor 3 minutes and 53 seconds to complete the transaction. Outside of India, where the government enforces the reliability of the USSD code in the video, it’s unrealistic to assume any USSD session will actually last that long.
Session time outs cost users money. Users that depend on screen readers are more likely to take longer to complete a USSD session and the odds are higher that the USSD session will time out. Given that mobile network operators charge 3rd parties per second or per session to use USSD, that means the most vulnerable users are more likely to pay more to access USSD-based services. And that’s just the cost to access a service — there’s usually an additional fee based on the service that’s accessed (e.g. a fee to withdraw funds from your bank account to your mobile wallet).
USSD made it possible to reach billions of people like never before, but we’re only beginning to understand its true potential. It’s so critical to bringing the next billion online, in fact, that it’s been added to the 5G specification. With the right tooling (something we’re working on at Hover), developers and product teams can finally make “The Third Universal Mobile Application” truly universal.