Testing navigation with physical keyboard on Android hint – keyboard navigation cluster

(Loaded 196 times)

You connect your physical keyboard to an Android device and start pressing the tab key. And then shift tab. And sometimes – you circle around the UI but can not reach all interactive elements. Is this a WCAG 2.1.1 failure? Maybe it is, maybe you need to try harder…

Testing accessibility of native mobile applications for people used of testing the web can be quite a challenge. A lot of info can be found when we deal with web technologies, but when it comes to mobile it’s not so easy. Platform differences, version differences, framework differences, bugs that are sometimes automatically closed as stale (but never fixed), abundance of different settings and assistive technologies built in the platform or needed to be installed manually and so on.

In one of my last native mobile application accessibility audits, I stumbled upon a quite complex user interface, and when I tested it with a physical keyboard it was a bit weird – I was not able to get to a part of the interface with lots of controls. By using a screen-reader I did not experience any issues – it worked well – but not when I wanted to tab to it with the physical keyboard.

After some research I finally figured it out – I needed to use a dedicated keypress combination and then I could tab through. It seems that it is a detail not so known by people not very proficient with Android development called “Keyboard navigation cluster” technique.

Keyboard navigation cluster – trying to make keyboard navigation a bit simpler on Android devices

Now, on the web, it’s well known – with a screen-reader we can easily jump to different landmarks like header, main, footer, nav and so on. But with a keyboard we need to tab through the interface (if we do not use some custom software or keyboard shortcuts) .

It seems that Android architects of Android 8.0 (called Oreo) wanted to make keyboard navigation more accessible with so called keyboard navigation clusters (but perhaps forgot to promote it more)…

If an activity in your app uses a complex view hierarchy, such as the one in Figure 2, consider organizing groups of UI elements into clusters for easier keyboard navigation among them. Users can press Meta+Tab, or Search+Tab on Chromebook devices, to navigate from one cluster to another. Good examples of clusters include: side panels, navigation bars, main content areas, and elements that could contain many child elements.

Keyboard navigation cluster, official documentation from Android 8.0, opens in new window.

Anyways – if you cannot tab / shift tab / arrow to interactive elements – please try to press the Meta + Tab or Search + Tab key combination, just to check if developers used keyboard navigation cluster, before failing WCAG 2.1.1 Keyboard (Level A, opens in new window) success criterion.

And yes, you will certainly wonder – Meta key can be set in the settings. I think my default is actually Search key, but depending on the keyboard it can also be the Windows key or something else. There are quite a lot of different keyboards out there, so be sure to check what is possible on yours.

That’s it – when testing for accessibility of Android applications – please be sure to check this if you find it impossible to reach some interactive elements like buttons and links.

Perhaps somebody tried to improve the experience and unfortunately we just didn’t get the memo… Another special case to remember for native mobile applications…

Author: Bogdan Cerovac

I am IAAP certified Web Accessibility Specialist (from 2020) and was Google certified Mobile Web Specialist.

Work as digital agency co-owner web developer and accessibility lead.

Sole entrepreneur behind IDEA-lab Cerovac (Inclusion, Diversity, Equity and Accessibility lab) after work. Check out my Accessibility Services if you want me to help your with digital accessibility.

Also head of the expert council at Institute for Digital Accessibility A11Y.si (in Slovenian).

Living and working in Norway (🇳🇴), originally from Slovenia (🇸🇮), loves exploring the globe (🌐).

Nurturing the web from 1999, this blog from 2019.

More about me and how to contact me: