Hacker News new | past | comments | ask | show | jobs | submit login

A user interface is subjective -- even more subjective than other things you might design. The point of a chair is clear. It looks "sittable". How can I convince you that this pattern of lit-up phosphors looks "tappable" or "grabbable"? When you click on a file in the sidebar, do you want to open it or just select it? You want my program to do something, and I want to show you how to do it. We're trying to figure each other out -- you and I -- through this computer program.

All the tools we have to communicate are very subjective. We've both used other programs before. You know what a printer looks like and what buttons with printers on them do. I can make some physical allusion like a page curl (you can drag it to see more) or a nubby, grabbable texture (you can grab and pull whatever it's attached to). But without this shared language, there's literally nothing to go on. Objectively, my pretty interface is just a grid of lights.




Definitely. Everyone can pretty much give opinions on what's pretty and what's not if you ask them. Or even if you don't ask them. This is why designers have to deal with relatively a lot more inputs, politics and decision making deadlocks.

To put it simply, my mom will not be able to tell you whether your codes are scalable but she can definitely tell you why she prefers pink as opposed to white on those toggle buttons (or why the dropdown animation is confusing).


I can convince you that this pattern of lit-up phosphors looks grabbable by knowing what artists have long known about shadow and lighting to give such elements affordance (http://en.wikipedia.org/wiki/Affordance)—an appearance of tactile actionability.

Cognition and perception are remarkably similar across cultures because vision and physiology are remarkably similar across cultures. There's some trickiness regarding cultural implications (for example, colors carrying different connotations across cultures). Navigating and using this shared language to meet your design goals is far more likely to succeed when you're aware of the considerations and use (or break) them consciously.

This doesn't mean that all design should trend towards skueomorphism—conventions enter into this process, but convention isn't a nebulous affair either. If your audience isn't particularly specialized, you can rely on them being familiar with the UI conventions of their operating system, to a greater or lesser degree. This means that people will likley try to resize boxes from the lower right if you draw something that looks "grippy" there, unless they're at home in a RTL locale, in which case they might reach for the lower-left first. If you're overlaying resize controls onto a box, how are you going to draw those controls? Will you draw them outside your content—does your environment even allow you to do that? If you're drawing them on top, how do you ensure that they are easy-to-target without obscuring too much of the content? How do you deal with people who have poor sight or other vision defects like colorblindness? What about audiences who might have trouble using a mouse, like the elderly? What if your application has to serve all of these audiences at once? How would you even go about testing the decisions you make?

Of course there's subjectivity in how to execute this, but I've just led you through a thicket of constraints that affect your ability to communicate affordance using nothing but the illusion of pixels on a screen. Knowing what parts are science, what parts are convention, and how to effectively meet your design goals requires an understanding of the discipline. _Objectively_, without science your pretty interface might be pretty, but it might be a shitty interface, and you won't know the difference?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: