I’ve just finished writing a routine for a customer that automates what I can only describe as a truly horrendous user interface. I’m not sure who designed it or why they designed it the way they did but I feel sorry for people who have to use this software. And apparently it is the industry leading software in its niche.
The software is devoid of keyboard shortcuts and there are no menu items. The only way around the software is by clicking the mouse on icons which have no way at all of gaining keyboard focus – no keyboard short cuts and you cannot even Tab to them.
The main data entry screen has a few accelerator keys (shown by an underlined character) dotted around but they are duplicated and don’t seem to work anyway! So on one screen ALT-S would appear to focus three different fields, but in fact focuses none.
Once logged into the system it would seem the only way back to the main menu is to exit the app and restart it.
The only way to add a customer record is first to search for one.
And this is just the start of it.
Luckily Macro Scheduler gives us image recognition and screen scraping abilities so even this dreadful user interface can be automated. We did it. But I had to spare a thought for the people who use this software every day. Everything takes twice as long to do as it needs to. It can’t be fun. It also suggests that the UI wasn’t tested and no consideration was made to its accessibility.
As I said in Why it’s Good to Automate:
Build an application with good keyboard support and your application can be automated more easily. If it can be automated easily it will be easy to use!
Sure there are some types of software where only an image based approach makes sense. But this particular app is just a way to view and manage customer information.
Sorry for the rant. But it just helps to demonstrate how a decent UI can be more easily automated. While we have tools such as image recognition and screen text capture that will help us automate cumbersome interfaces, a well designed UI can be automated more quickly and more efficiently. It also shows how automation can help test an application and ensure it is accessible. If a UI is well designed the UI can be tested, and looking at it the other way around, if the app can’t be automated easily then perhaps the UI is hard to use, especially for people who cannot use a mouse, or rely on screen readers.