You click on one of these items, read down the item detail page, then click back to go to back to the index page, and this happens:
- it scrolls you back to the top of the item detail page
- it fades out the detail page
- it fades in the index page
It's janky, and wastes my brain cycles trying to parse the fleeting intermediate states. Also, the fade animations are too slow -- literally making me wait through the jank to get back to the content I'm looking for...
How am I supposed to know this is "design".
> customizable interfaces to support people with disabilities.
Customizable interfaces are the only real solution -- not just for people with disabilities, but for everybody.
There are a number of websites and applications that I stopped using because of UX choices I am allergic to. If they were configurable, it might have been possible for me to mitigate the worst parts.
Further, UX/UI decisions have been getting worse over time, making configurability even more important as time goes on.
It's unfortunate that accessibility is usually treated as an add-on in a lot of 'UX' project. Focus is heavily on visual design.
Accessibility needs to be considered from the start when designing new apps.
Making things accessible means making it easier for all users.
Which apps / sites have you stopped using because of poor UX choices.
And what are those things that made you stop using those sites?
You can write styles at only apply in high-contrast or reduced-motion mode.
Use relative text sizes so you the user agent can use a value for the root font size that isn’t 16px.
Use buttons for buttons, links for links, and <dialog> for dialogs etc.
I’ve thought about just making more web apps that have nearly no styling, maybe just some layout, but otherwise relying on the user agent styles. That’s a ton of user customizability for FREE! And honestly, it usually doesn’t look that bad.
> 2: People are more tolerant of minor usability issues when the design of a product or service is aesthetically pleasing.
I think this is true for someone’s first interaction with a thing. But if you rely on something, minor usability issues skyrocket in importance, and aesthetic importance drops really fast.
But I've never seen anybody having this as a first reaction to some software. It needs some time to kick in.
IMHO it bothers me more because I'm forced to experience it more. It's like the annoyance accumulates. I may care more about UI than the average user though, or maybe I'm just more able to articulate my thoughts about it because of my profession? Not sure.
I know people that have quit jobs, because they were forced to use software that “I could never learn”. (Salesforce) It got in the way of them doing their job.
However, I’ve seen way more people tolerate an outdated or badly styled UI because “it just works for me, ok?”. No one is quitting a job because their CRM is aesthetically unpleasing.
Redundancy is also an underrated design feature. In Word, if you want to copy/paste, there are at least 3 ways (I'm sure I'm missing some obscure way).
- menu->edit->copy
- right click->context menu->copy
- ctrl-c
And it's a great way of transitioning users from new mode to expert mode. A hotkey is just about useless if you don't know it exists, whereas the menu is slow. So, beginner users start using the menu, then transition as they memorize the particular hotkeys for this software as they become expert users. Somebody put thought into this design.
Also taking this opportunity to shamelessly plug the nested tooltips in Crusader Kings III. As far as learning context in-situ without breaking flow, it is amazing, though sadly not generalizable to all applications. Seriously, whoever designed that needs another raise; I have yet to see a minor UI component receive any mention at all, let alone praise, save this one.
https://www.reddit.com/r/CrusaderKings/comments/102gtm8/nest...
> Purposefully adding a delay to a process can actually increase its perceived value and instill a sense of trust, even when the process itself actually takes much less time.
The user is part of the system too, and sometimes giving them a bit of time to process what’s happening can be beneficial.
The problem was, it was too fast. The shell was up and running pretty much once i pressed the enter key after typing the command in DOS. Real Windows didn't do that, so mine felt bad and fake (to me).
So i added some code in initialization to create and delete 1000 random files with some random delays between them (to cause the HDD to make "doing stuff" noises and its LED light to blink) and show a progress bar for it. After that it felt properly professional :-D.
Let's say you go to a store and ask if they have a certain product. The clerk says "Sure, here it is". Is that worse than saying "Hmmm, I have to check in the warehouse first"?
Strangely there's a "click here if fails to load in 10 seconds" link that lets you bypass it all immediately.
Just because you find something surprising, it doesn't mean it's "very wrong".
The solution was to add a 50-300ms delay before the network request. Why? Because feelings and perception matter more than facts.
Remix would show a white screen and two seconds later have everything ready. Next would show the header and a loader first then gradually over the course of 3-5 seconds have everything ready.
In this case I would guess the issue is not with speed but feedback. The user did something, nothing changed, so they thought it was broken.
Instead of the delay you could add a toast or some text with near the button indicating that the action actually happened.
I remember the people from Blogger (google) talking about this problems. People were not very familiar with blog / website builders and users were confused when their blogs got created instantly, like "This is a big deal, me getting an entire website, what happened, what went wrong? It must have aborted the process…"
- Input was received - Input was processed/stored correctly - Outcome is X
Doing everything in real time can reduce confidence and understanding. If everything takes like 5ms it feels weird, sometimes feels even like nothing happened, so people might submit again or feel the need to call and check or whatever.
It's deceptive in the sense that you are waiting maybe 500ms instead of 5ms. But it can be better UX in terms of communicating what's actually going on and having people feel comfortable with their understanding.
On the other hand, artificially slowing down something like closing an advertising modal - antipattern for sure.
Sticky headers take up half the page.
Margins are too wide for the browser
Images are way too big compared to text size
Images don't fit on the page no matter what zoom level you use.
The reason these need to be written down in the first place is that they can be counter-intuitive.
Of note: "Laws" can be broken when you have a very good reason to do so. These are definitely good rule of thumbs.
The perfect UI is the interface that has the quickest, most optimal workflow to accomplish a user's tasks
And this can be scientifically measured by mouse distance and clicks.
> most optimal workflow to accomplish a user's tasks
And this can be scientifically assessed by taking all use cases and refactoring over them.
List all the available goals at any given "location" in the program. List all the steps users take to get accomplish their goals. Consolidate and refactor, then optimize on the shortness, obviousness, and fault tolerance of every flow.
This is more fundamental to the user experience than colors or animations or the availability of any single feature.
I disagree with this, actually. The perfect UI is one that the user doesn't have to consciously think about when using.
The best interface does nothing. It's idle and listens. Everything automatic must be fully transparent and be opt-in. Fully explained if not self-explanatory.
User instruction beats developer assumption every single time. If the user is "wrong" as arbitrarily defined by the developer, the least they can do is kindly instruct and point the user in the "right" direction, not assume, let alone assume they know better than the user about what they want.
Laws of UX - https://news.ycombinator.com/item?id=24030969 - Aug 2020 (293 comments)
Laws of UX - https://news.ycombinator.com/item?id=16185118 - Jan 2018 (207 comments)
Is it basically saying don't try to hide a bunch of options behind a hamburger menu?
However, it's become en vogue to apply this same design logic to B2B software, where this approach is bound to screw things up.
In B2B software, the tasks are often much more complex (eg. help my large organization collaborate on bespoke long term projects and juggle hundreds of stakeholders, while offering cascading permission management), so any software suitable for this task is going to be a nightmare to use no matter how good the design is (because its a nightmarish task).
The same goes for front-end website builders. Wix has a simple UI because it only lets you do simple things. Webflow's UI is super complex, because it offers all the powers inherent in coding HTML/CSS by hand. So you essentially have to learn HTML/CSS to use it.
The UI of any tool must match the complexity of the job to be done. This doesn't mean UIs can't make things easier/faster. It just means UIs can't remove steps unless you remove requirements.
Often when a tool is lauded for "good design," its because it encourages removing steps that were unnecessary all along, but people were still doing out of tradition. The tool then gives people an excuse to stop doing the stupid tradition, because "X doesn't allow that."
> 1. All processes have a core of complexity that cannot be designed away and therefore must be assumed by either the system or the user.
> 2. Ensure as much as possible of the burden is lifted from users by dealing with inherent complexity during design and development.
> 3. Take care not to simplify interfaces to the point of abstraction.
Anyone care to chime in with their caveats to some of these?