Test Your App's Accessibility with Evinced
Disclosure: Evinced has paid for my time in writing this blog, and I have provided them feedback on the version of their tool reviewed and an early beta. I agreed to this because I believe in the product they are offering.
Testing your app for accessibility is an essential part of making an accessible app, as with any part of the software you build, if you don’t test it, how can you be sure it works? Because accessibility is human, there are no true shortcuts to this, a through manual test will always be the most productive form of accessibility testing possible. But with some carefully designed automated checks, you can detect common accessibility issues quicker and earlier. This makes fixing them easier, the chance of these errors reaching your customers is reduced, and saves you valuable time for resolving more complex issues. It’s not an easy problem to solve - I’ve tried with A11yUITests, and Apple built their offering, Accessibility Inspector, right in to Xcode. Now a new tool has entered the arena from Evinced, the iOS Accessibility Debugger.
Evinced already produces an accessibility scanner tool for the web, and now they have decided to turn their expertise to mobile. Their initial offering for iOS is available for free for any developer to add to their workflow. So if you’re looking to take a positive step towards making a more accessible app, this tool is a no-brainer.
Installation is through cocoapods, and while there are a few steps, if you’re familiar with including a cocoapod library the process should be straightforward. Once you’ve installed the library, build your app to a test device. Your app’s results are presented in a companion app for Mac or PC. Pairing your iOS app to the companion is achieved painlessly through scanning a QR code, and you’re ready to start checking your app’s accessibility.
In your iOS app, navigate to the screen you want to audit, and in the Evinced desktop app hit the “Scan” button. After a brief pause you’ll see a screenshot of your app appear in the debugger with accessibility violations highlighted and labeled. The list of scan results provides a summary of the failure and a hint on how to fix it. Also included is a link to a more detailed knowledge base article covering what the violation is, who it may affect, and code samples to fix the issue. Followed by links to the relevant WCAG guideline.
Evinced’s tool can currently detect missing traits, missing accessibility labels, invalid accessibility labels, insufficient colour contrast for text against the background, small hit targets, and interactive elements that are not accessible to assistive technologies. Validations on Evinced’s roadmap include highlighting elements that are accessible to assistive tech but not visible on screen, focus order when this differs from visual order, and conflicting hit targets. Sharing reports is simple too. You can export each screen and it’s failures, along with screenshots highlighting them, in a single HTML file, allowing you to easily spread the knowledge across your team.
Fitting Evinced into Your Workflow
Knowing how to use a tool like Evinced is important. It can’t, and shouldn’t, replace manual accessibility testing with assistive technologies enabled. Neither should it replace user testing with a diverse group of participants. It’s essential that you don’t assume your app will be compliant, or indeed even usable, by virtue of running Evinced’s scanner. Where Evinced can help is by catching potential issues earlier in the development cycle. Developers can run a scan on a screen quickly and simply to find potential issues in how a screen is built before progressing a ticket. QA engineers can use the results as a way of identifying common errors faster than with manual testing. But because accessibility is about humans, that human interaction with the software still needs to happen to be sure your app is accessible.
This is a promising contribution to the accessibility tool space for mobile. This is Evinced’s initial release, but in my testing their tool is already comparable with Apple’s own Accessibility Inspector, with Accessibility Inspector beating Evinced only on detecting Dynamic Type support. Evinced have received backing from some big names, so future development is promising for where this tool can go. As well as making the tool free, Evinced have also open sourced the SDK under the MIT licence opening the door for community contributions to their rules engine.