Integrate our products into your software. Let's make payment happen together!
Look at all the possibilitiesThe European Accessibility Act (EAA) is an EU directive aimed at improving the accessibility of products and services across the European Union. Its goal is to ensure that people with disabilities, the elderly, and anyone facing accessibility barriers can use digital products and services independently and equally.
The Act applies to a wide range of sectors, including digital devices, payment terminals, banking services, and retail environments.
Only supported for OPI-NL and OPI-DE.
When a cardholder selects the EAA mode on the primary interface of the kiosk, the kiosk must send a payment with the attribute StartEaaMode set to either “Blind”, “ColorBlind”, “Combined”, “NoSound” or “Standard”, depending on the cardholder need.
As a result the terminal will start the transaction in EAA mode directly.
Use EaaMode.startEaaMode(...) to set the EAA mode.
| EAA Mode | Description |
|---|---|
| Blind | When this is set the terminal immediately starts the transaction in the “Blind” mode. This mode is audio assisted, meaning every action to be done is instructed and PIN entry is assisted via audio output. It is possible to manage the audio device as described below. |
| ColorBlind | When this is set the terminal immediately starts the transaction in the “ColorBlind” mode. This mode has a black and white color scheme, meaning that all UI elements have been turned from blue and white to black and white. No special audio is produced. The default audio like beeps or a chime, which also exist in default operation, remain. |
| Combined | When this is set the 2 modes above are combined, meaning the transaction will start with a display in the black and white color scheme and full audio assistance. |
| NoSound | When this is set the terminal starts a normal transaction, but the explanation which would normally start after a few seconds will not play. This explanation exists so blind/colorblind people can hear how they can enable EAA, which is still possible in this mode via the normal way (double tap/button). |
| Standard / default | When this is either set or is absent the terminal starts the transaction the default way, which means EAA can be enabled (double tap/button) and the explanation plays normally. |
The following code snippet demonstrates how you can set the startEaaMode when doing a payment.
EaaMode eaaMode = EaaMode.builder()
.startEaaMode("Blind")
.build();
ExternalTerminal externalTerminal = ExternalTerminal.builder()
.ipAddress(ipAddress)
.port(terminalPort)
.compatibilityPort(compatibilityPort)
.socketMode(socketMode)
.terminalType(terminalType)
.eaaMode(eaaMode)
.build();
If included in the request, this will define where audio will be played during the transaction. Default is Terminal.
Use EaaMode.audioDevice(...) to set the audio device.
The different possible options:
| AudioDevice | Description |
|---|---|
| Terminal | Default. The audio will only be outputted on the terminal and the OutDeviceTarget “AudioOutput” will not be used. |
| CashRegister | The cash register is responsible for outputting the audio and the audio will not be outputted by the terminal. The OutDeviceTarget “AudioOutput” will contain the text to be spoken, see AudioOutput callback below. |
| Both | The audio will be outputted on both the terminal and the cash register. The terminal will output audio the normal way and the OutDeviceTarget “AudioOutput” will contain the text to be spoken, see AudioOutput callback below. |
The following code snippet demonstrates how you can set the AudioDevice in EAA mode when doing a payment.
EaaMode eaaMode = EaaMode.builder()
.startEaaMode("Blind")
.audioDevice("CashRegister")
.build();
The audio level for audio output in percent. If not provided, the default volume from the terminal is used. This should be a numeric value between 30-100.
Use EaaMode.audioVolume(...) to set the audio volume.
EaaMode eaaMode = EaaMode.builder()
.startEaaMode("Blind")
.audioVolume(35)
.build();
When the terminal wants the cash register to output audio, mAPI will call playAudioOutput(AudioOutput audioOutput).
The callback contains the text lines to pronounce, the output target and an optional language.
PaymentDelegate paymentDelegate = new PaymentDelegate() {
@Override
public void playAudioOutput(AudioOutput audioOutput) {
LanguageCode languageCode = audioOutput.languageCode();
// Height and Width can be ignored for speech output.
String textToSpeak = audioOutput.textLines().stream()
.map(TextLine::text)
.collect(Collectors.joining(" "));
}
};