WebAIM - Web Accessibility In Mind

E-mail List Archives

Re: Good external keyboard only a11y for iOS/UIKit/Swift


From: Jonathan Avila
Date: May 20, 2018 1:48PM

Hi Josh,

In our experience with native iOS apps input fields are generally the only keyboard accessible control without performing custom keyboard support. VoiceOver can be enabled, speech turned off, and modifier keys changed with sticky key support. In this mode apps can become keyboard interface accessible when accessibility enabled. In short for iOS we generally test for keyboard access (aside from input) with VoiceOver active. Switch control relies off of the same accessibility information provided through the API for VoiceOver and thus the accessibility API can be seen as a form of keyboard interface. Apps can add custom keystrokes and many do such as Word for iOS -- but I'd imagine it would be challenging to build a focus manager and build full keyboard support from the ground up.

Android is a different story. Android keyboard interface support is more built into the platform without relying on an accessibility services. Functionality is available to control the focus order, etc. and TalkBack does not have the same ability to have sticky key support. While some TalkBack keystrokes can be modified the key combinations would be difficult for some keyboard users to access and thus pure keyboard support (in my opinion) via the platform should be used to evaluate keyboard interface support without relying on Talkback.


Jonathan Avila
Chief Accessibility Officer
Level Access
703.637.8957 office

Visit us online:
Website | Twitter | Facebook | LinkedIn | Blog

Looking to boost your accessibility knowledge? Check out our free webinars!

The information contained in this transmission may be attorney privileged and/or confidential information intended for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any use, dissemination, distribution or copying of this communication is strictly prohibited.

-----Original Message-----
From: WebAIM-Forum < <EMAIL REMOVED> > On Behalf Of Joshue O Connor - InterAccess
Sent: Saturday, May 19, 2018 8:09 AM
Subject: [WebAIM] Good external keyboard only a11y for iOS/UIKit/Swift

Hello WebAIMers,

I'm doing keyboard only testing of native iOS apps - with no AT. It's very interesting and also hard to find good advice on best practice for how to service users of an iOS app who may use an external keyboard.

UIKit/UIButton etc in Swift seems to be a little like ARIA in that it offers a semantic hook for VoiceOver and possibly other AT but doesn't make these elements focusable using external keyboard.
I'm not sure if adding isAccessibilityElement will do it either as that may just serve traditional AT (I've not built a test).

I thought it's an interesting question to ask/discuss.

So anyone have good resources/tips on supporting simple (external) keyboard a11y that they would like to share?

Thanks in advance.
Joshue O Connor
Director / InterAccess.ie