An Optimized GUI Based On Users' Abilities
Ostracus writes "Researchers at the University of Washington have recently developed a system, which, for the first time, offers an instantly customizable approach to user interfaces. Each participant in the program is placed through a brief skills test, and then a mathematically-based version of the user interface optimized for his or her vision and motor abilities is generated. The current off-the-shelf designs are especially discouraging for the disabled, the elderly and others who have trouble controlling a mouse, because most computer programs have standardized button sizes, fonts, and layouts, which are designed for typical users."
"Ok, Sir...now, just press any key..."
"...?"
"Sir...?"
"...sorry, I can't find the 'any' key..."
From each according to his ability, to each according to his needs. That's the way we want it.
would be a system that automatically and continuously monitors mouse movements and typing and continuously adjusts the user interface for the user's current skill level.
That way as you drink more beer the fonts get bigger and the mouse remains useable. Bonus points if eyeball movement can be detected and the screen be moved in time with the wobble.
This will make tech support a lot more fun.
I have athralgia which prevents me from using a mouse. I rely heavily on keyboard shortcuts but use a trackball as a pointing device. I often find GUI buttons are too small and easily overshot - and the worst offenders often have dialogs without any support for keyboard shortcuts. InfraActive comes to mind - they even removed keyboard shortcuts between versions 7 and 8. Button scaling in many apps breaks the layout, or doesn't even work. While this is a interesting and useful development, I don't see anything changing soon on the disability usability front. There is existing support in common OSs for making global UI changes, but most apps ignore/override these settings or just break horribly because the UI developer didn't design the interface to adapt to these sort of changes.
I sure wish people would stop inventing their own user interfaces. Instead just follow the conventions of your operating system. The sluggish and unfriendly custom interfaces I encounter in my day to day work makes me age two times as fast and makes me do my job four times as slow. We don't need a reinvented GUI, we need programmers that enforce just that little bit of GUI hygiene in the first place.
Quothe the fine article:
Interesting enough, but I wonder if the day will come when GUI designers who aren't catering to special-case scenarios will offer the following options:
[x] Make no assumptions.
[x] Get out of my way.
[x] Yes I really mean it.
[x] No I don't want to try things first.
When skill, knowledge and ability are penalised, it's the non-below-average group that becomes the under-represented minority. Those falling into the maligned category range from Firefox users resisting the New and Improved, Microsoft Office ribbon haters, Gnome users who like the clean interface but still resent the near-absence of customisability or documentation, to the subset of Windows Power Shell users who have actually used a command-line before.
Sounds very much exactly like the configuration GUI in xine.
"From initial tests, the system narrowed the performance gap between disabled and able-bodied users by 62%."
There are two ways to narrow a performance gap, you know. Make poor performers work better, or slow down good performers so they don't get ahead of the group.
The second approach is often used in math classes in high school.
I already use a better input system in my software. In my system, there is no testing phase. You just use the program, and it grows and shrinks with you. It's like having the best of vi (speed) and notepad (simplicity) at the same time.
But it does not even come close to my next project. And that's why I did not release it.
Because after optimizing the input interface, I realized, that the usual graphical user interfaces are a total piece of crap. The most annoying part is that they are built like they are the biggest enemy of the keyboard. And you can basically combine all control elements (buttons, sliders, menus, labels) into one thing.
If it is ready for the world, I'll release it as open source... something like a windowing and (g)ui toolkit with the power of the pipe operator in bash... hard to describe.
I just have to finish my current game project first.
Any sufficiently advanced intelligence is indistinguishable from stupidity.
GEOS actually had a user skill level function. Not sure how aggressive it was in the later versions, but the earlier versions were quite aggressive.
The beginner mode had no file management - it just gave you an application, with a drastically simplified interface (no drop down menus,) and the program could only open one document, and I believe multitasking just didn't happen. There were giant EXIT and HELP buttons.
Intermediate mode had applications with a full user interface (but always maximized,) and you could manage a restricted subset of files.
Advanced let you do whatever you wanted, gave you full functionality, and actually had windowing, not maximized windows for everything.
Microsoft already tried this with sort of thing with Office 2000-2003. Remember infrequently used menu and toolbar items being hidden away? I do, and shudder. It made teaching people how to use it a total nightmare. Even using it as an expert user always felt clumsy.
Good UI is not about making a UI that learns the user - a computer will never be able to do a good job of that. Good UI is about making the app easily learnable. This is much easier than it sounds: simple tidyness and consistency get you 80% of the way toward good UI. But when you start making dynamic UI, consistency is the first thing to go out the window.
Office 2007 does this quite well (though it is themed differently to all other apps), and so it's much easier to work with than any previous versions of office.
So Dubya would have just one big button on the desktop with text "INTERNETS"?
There are a number of softwares that have settings for the color blind. Microsoft makes a half assed attempt to accomodate poor color vision. But, all attempts failed. The single "recent" development that addressed color vision (not even purposefully) was the LCD screen. I can SEE dozens of colors that I NEVER saw on a CRT. I know color deficiency is a far less important problem than the quadriplegic who struggles to manipulate an input device with his chin and tongue - but, hey, it sure would be nice if someone gave a thought to us. 1 in 4 males is supposed to be at least partially color blind, after all. That is a HUGE population!!
"Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
I am color blind. And I can tell you that I HATE web designer! Why do they need to use, for example, light green for the links on white background?!
Ok Ok. Some designer think of it. But only in major websites...
Oh man ... I support my grandpa with his PC (he actively searches the net, sometimes emails, and writes in Word). He does really well, but I have to tell you it is a pain how so many programs disrespect GUI guidelines, especially accessibility. I turned the Windows font size up, which some otherwise good programs (like antivir, kerio) do not respect and still present small fonts. Also, the dialogs sometimes don't even fit on the screen leaving the user helpless as he can't reach the OK/Cancel button.
GUIs should respect accessibility instead of telling "hey, I can make a dialog look really cool".
(Don't tell me about switching him to Linux, I've evaluated that, it brings up other issues).
If you put too much stuff on a dialog box, it's no longer as effective. There's clear research in this. If you have lots of informative text or selectable options, you're either not using the right kind of UI element, or you're not narrowing choices sufficiently.
There exists no way of exchanging information without making judgments. --Bene Gesserit Axiom
If someone with less dexterity can't use you interface, there's a good chance that typical users find it usable but irritating. Yes, I can click on an 8x8 pixel square whereas maybe some people can't...but I shouldn't have to! What makes things possible for the disabled can make the same things more comfortable for ordinary users, too. I'd also like to save a particular rant for those who think that the mouse is the best interface for filling in forms, choosing items from lists or menus and generally doing anything which doesn't involve freeform positioning. A mouse is slow, uncomfortable, gives a higher risk of injury, is frustrating and fiddly to use and should almost never be the only expected interface device. Using a keyboard is not a last resort fallback, it's a primary input device. Fields should have accelerators, I should be able to move the focus around a window and its panes with convenience, the cursor keys should work (WHY don't cursor keys work in dialogue boxes? it's not like they're needed for something else), the position of the focus should be obvious, HTML and web browsers should have keyboard navigation options, software shouldn't keep stealing or moving my focus around or let it get stuck somewhere and developers should TEST from the point of view of a keyboard-focused user.
It isn't about the number of user interface objects on display - it's about the number of pixels used to display them. Ultimately, EVERYTHING should be resolution independent - none of this 'make the resolution and image quality lower just so I can make objects bigger' nonsense. Widgets, windows, spacing and icons should all be sized based on dialogue units, or some equivalent, not pixels. That way if I want everything at double size so I can read it without my contact lenses then that's what I can have.
As a person with sensitive eyes, I am constantly annoyed by applications setting backgrounds to white. White backgrounds hurt, people! And I mean actual physical pain here. So if you are writing some application, please use system colors, or at the very least let the user change the color scheme. In ten more years your eyes will get tired too, and trust me, you'll thank me.
I bought a chain saw because the guy I contracted to paint some buildings on the property told me I had to clear all of the brush, or it would cost me a lot of money if he did it. He told me what brand and model of saw to get, and he told me to buy three extra chains on account of the kind of work I was taking on: "the second you touch stone working close to the building, you have dulled the chain and are going to have to change it out, and by the amount of work you have, you are going to need three spares."
I also bought it from a place that showed me how to start and stop the saw, how to set the chain tension, how to change the chain. I also checked with them about their arrangement for sharpening chains.
So my wife is cleaning out some junk on one of those buildings and comes across one of those cheapo saws you buy at the discount store. It must have been left behind by my dad some years ago. I cleaned out the gummed up gas and got the saw to run -- it doesn't cut quite as fast as the fancy saw the painting guy made me get, but with a new chain on it, it runs OK.
When the saw was rediscovered, the chain tension was completely slack and the chain teeth were as dull as toothless gums. I guess this saw didn't see much use as I never remember my dad doing anything with it. It probably got used until the chain dulled up and Dad decided that "this saw is no good" and it got buried in a pile of other junk. But I suppose no one told him about keeping sharp chains on the thing or how to do change outs or even how to set the tension.
As to blaming customers for being stupid about user interfaces on everything from chain saws to computers, there is something to be said about proper training and for purchasing from sales outlets that provide that training.
... can you first tell me the color of the small yellow square ...
Interesting! I've never thought of this.
Green rectangle with "Start" - Windows XP.
Blue(?) circle - Windows Vista.
Grey rectangle with "Start" - Windows 2000 or XP Classic.
Grey rectangle with no words - GNOME.
None/Black border - Sugar.
None/Multicoloured long rectangle - Macintosh.
Anyone knows KDE or others? XP and Vista Themes?
"...because most computer programs have standardized button sizes, fonts, and layouts, which are designed for typical users."
Not for long. With OS X and WPF out, most applications will have custom widgets that look nothing like the widgets in other programs. Managers who love cool shading and alternate look and feel will be redirecting UI guidelines. Oh, and the little bit of keyboard support remaining in Windows and OS X - forget that too.
One of the biggest issues i have with buttons and fonts within interfaces, is how so many of these elements are based on bitmap sizes, and thus look really small on a high resolution screen...
An inch should still be an inch, regardless of how many pixels it requires to represent an inch.. Monitors can report their physical size, X11 can use this information (windows still cant, not sure about osx), and yet there are still countless apps and websites that expect a certain dpi or they look wrong.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
"I've often thought of writing a GUI totally based on proper hybrid of vector based shapes and typography, as well as the implementation of layers (ala photoshop) and nodes ala the brain for connecting data in different ways which would need to be prototyped and tested."
Flash with Action script can be used to do GUI prototyping.
Shai Schticks:"You don't make peace with friends, you make peace with enemies"
"If it is ready for the world, I'll release it as open source... something like a windowing and (g)ui toolkit with the power of the pipe operator in bash... hard to describe."
In other words a GUIfied power shell.
Shai Schticks:"You don't make peace with friends, you make peace with enemies"
I agree with you about modal dialogs...
I absolutely despise anything that automatically focuses itself, especially when it's not a sub dialog of the program you are currently using. It's shear arrogance that the authors of these programs felt that the message their program has is more important than whatever you may already be doing.
I want configuration, i want the dialogs to come up in the background or the same workspace as the parent app (ie in the same place as the app generating them), perhaps beep at me to let me know something has happened and perhaps highlight the icon in the dock or taskbar. Then i will deal with the dialog at a time of my choosing, not when the app forces me to.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Now if only they could apply the same methodology to the user's level of knowledge. Doing a quick questionnaire strikes me as considerably easier and faster than having to enable advanced options, enable the display of file extensions and hidden files, etc etc on a new computer.
What else does your magical interface do that you've attributed lots of fantastic properties to -- but haven't provided any proof of its existence?
What you're asking, is to be treated as an intelligent, independent Person.
I've been geeking for nearly 1.5 decades, and our CULTURE opposes that:
the Western put-down culture is torqued-up in the academic/geek culture, so that obstacles are placed to "prove" others' inferiority ( which shows some vastly stinking insecurity... )
It takes integrity to know that one doesn't know omniscience, and to enable others instead of disabling 'em ( & to remember that ANALOG computers, ie our brains, malfunction in odd ways -> see "panic" for circuit-override in counter-to-survival-way ).
*Living* integrity.
Read "Corps Business: the 30 MANAGEMENT PRINCIPLES of the US Marines" ( David H. Freedman ) for principles that counter our failure-manufacturing culture...
http://www.amazon.com/Corps-Business-Management-Principles-Marines/dp/0066619793/
( including "tell 'em WHAT, the End-State, and WHY, the understanding, and LET 'EM WORK OUT THEIR OWN WAY.
Their way will suit them better, may be an innovation that supersedes your known-way, and its discovery/development will be enabling of 'em.
Obliterating their way, for your way, is insulting, disabling, and demeaning.
Do you get smarter when you're trusted to try? or only when you're prevented from doing so?
( as an aside, if one has created software whose UI make wrong-usage more likely than right-usage, then one hasn't learned from "The Design of Everyday Things" http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0465067107/ , and could be considered incompetent as a designer )
Rule of 3: one can only maintain *simultaneous* knowing of 3 points of responsibility. If there are more than 3, split 'em between people/teams.
Anyone pouring concentration into remembering their points of responsibility, ISN'T pouring that concentration into solving 'em!
The 75% solution: better an imperfect plan ( see eXtremeProgramming ), implemented NOW, than a Perfect Solution, implemented Too-Late-To-Make-Any-Difference. )
that's 3 of 'em...
It's an excellent book that counters our unconscious anti-pattern programming, written by a Forbes senior editor ( "this isn't what they say: it's what they do" ).
The worst for me is when I launch an app, and while it's launching I click back on another app and am typing... and when the new app finishes loading, it steals focus... grrr
Or I'm busy typing along somewhere and a new dialog steals focus, sometimes for another program. It's frustrating enough to have the new dialog pop into visibility but then to also steal focus? Absolutely infuriating!
Do it like OS X does when possible... bounce the icon in the tray and don't steal my focus.
What you're asking, is to be treated as an intelligent, independent Person.
Heh. I'm reminded of various "management" things I've read, ranging from grade-school teaching to top-level corporate levels, where it is pointed out that if you treat your charges like idiots, they'll act like idiots, and if you treat them as intelligent people, they'll magically become intelligent people.
But it's pretty rare to see this advice applied sensibly.
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
Dammit, I'm tired of people trying to automate everything. Having trouble making your UI accessible? Why, just boot up some development software and let the computer do everything for you.
I'm glad that the field of interface design has become much more important over the years, but we still have a long, long way to go. Real interface designers are aware of issues such as tiny print, bad widget groups, color blindness, and alternative input devices. That's what we do.
Trusting technology to solve the problem isn't going to work. You need people who are aware of the issues and know how to plan for them. A recent example was Rare's new Banjo Kazooie game. The game is made for HDTVs, so naturally they made all the text so damn small people have a hard time reading it on SDTVs. Has anyone considered that even on an HDTV, the end user's eyes may not be good enough to read the text on a 27" screen from across the room? The programmers have their fancy DVI monitors for software testing, and don't think about these issues.
The screenshot from the article particularly annoys me. They made the scrollbars bigger. Big whoop! How about letting me toggle between different types of data-compatible widgets, or disabling parts of the interface I don't use frequently to clear up valuable real estate? People with disabilities want to be independent, but there are still people around to help set-up a proper working environment, so let people choose for themselves what is important, with the option to remember different setups and reverse changes.