Design Notes
These are my notes on designing software for desktop and mobile devices. Some notes are quite technical.
Essential questions
Before we start implementing anything GUI related in code, let's imagine how UI might look after asking ourselves the following:
-
Where am I?
The UI should make it clear right away, so the user is not left wondering "where am I" or "how I got here"
-
What can I do?
One shouldn't have to guess — actions should be clear and easy to understand
-
Where can I go?
A clear sense of next steps to keep the flow going and help me avoid hesitation or second-guessing
You can also come back to those questions upon refactoring, adding new features.
On UI density
I really like how Matt Ström puts it:
Designing for UI density goes beyond the visual aspects of an interface. It includes all the implicit and explicit design decisions we make, and all the information we choose to show on the screen. It includes all time and the actions a user takes to get something valuable out of the software.
So, finally, a concrete definition of UI density: UI density is the value a user gets from the interface divided by the time and space the interface occupies.
Speed, usability, consistency, predictability, information richness, and functionality all play an important role in this equation. By taking account of all these aspects, we can understand why some interfaces succeed and others fail. And by designing for density, we can help people get more value out of the software we build.
You can read more about it here.
On Accessibility
Good accessibility starts with the basics: contrast, semantics, alt text for pictures. Great accessibility requires lived experience. It is best achieved by working directly with people who use assistive technology (including yourself!).
Here are some tools that can help out testing accessibility:
- WAVE: Visualizes issues directly on your page
- Screen Readers: Nothing beats testing with NVDA (Windows, free) or VoiceOver (macOS/iOS, built-in).
To read about painful inaccessible experiences, I can recommend this series of posts on Fireborn's experience using Linux distributions:
- I Want to Love Linux. It Doesn't Love Me Back: Post 1 – Built for Control, But Not for People
- I Want to Love Linux. It Doesn't Love Me Back: Post 2 – The Audio Stack is a Crime Scene
- I Want to Love Linux. It Doesn't Love Me Back: Post 3 – Speakup, BrailleTTY, and the Forgotten Infrastructure of Console Access
- I Want to Love Linux. It Doesn't Love Me Back: Post 4 – Wayland is Growing Up and Now We Don't Have a Choice