My TV just connected to the internet, now it wants me to “close”. This is a good example of a user interface not tracking user context.
When I use the TV to connect to the web the final screen is:
Internet Content Connection Status
The internet content is ready
| Close |
It took me a few nanoseconds to understand and know what to do: it is just a continue box. Other people, I won’t say who, were stumped. “Close” what, the internet connection I was just trying to establish, case to the DVD cabinet? The fix in this case is to use the word ‘continue’ instead of ‘close’.
A lot of software is like this. Sometimes it is just a language or cultural thing. Most of the time it is the software not tracking the user’s contextual state. What is the users goal, and how does the user think they are currently related to that goal.
Here is another example, I just committed some files into a version control system. What my intent is now is just to exit the graphical app, I did the commit, or did I? Now I am faced with three buttons, ‘commit’, ‘undo’, ‘cancel’. What if I hit commit again? What does ‘cancel’ do? Isn’t that just like undo? It turns out that I really did commit, and ‘cancel’ is the exit button.
There are multiple flows in an application. The internal software control and data flows, and the external flows. The most important flow is the user flow, what the user embodies in their experience, culture, dexterity, and intelligence. Perhaps what is needed is a CxST (Contextual State Transfer) approach.
The user is using a Contextual Prediction Engine, the human brain. Apps, are glorified Finite State Machines. Perhaps modern “AI” can bridge that gap automatically?
Great systems track the contextual state of the user.
- Proactive User Interface, http://octodecillion.com/blog/proactive-interface/
- Web Accessibility Initiative – Accessible Rich Internet Applications (WAI-ARIA).
- How to Measure User Interface Efficiency
- Sneakernet with Git?
- RxJS process loop with toggled operations and canceling
- Reactive client application state constraint contracts
- Ad Hoc Version Control With Git