Are there established principles for how to design...
# thinking-together
n
Are there established principles for how to design a GUI that works well for both mouse navigation and keyboard navigation (maybe even touch)? Been working on a structured editor and feels like I'm stumbling blind / reinventing some unknown wheel. Working on intuition and some reference material like spreadsheets and note-taking apps (Notion etc).
👍 4
i
Perhaps Apple's HIG? And the various wisdoms of Tog and Fitts. https://asktog.com
n
Apple's HIG is interesting, because it advocates for a lot of legacy ideas like lists, menus, and task bars (esp. for Mac apps), which is a mindset I'm trying to break. It's easy to implement every action as a menu item (or keyboard shortcut), but I don't think that's the right choice for a structure editor, which to some degree should feel like document editing.
👍 7
And a lot of the HIG seems to be "here are our APIs/widgets that you should use", which is an appeal to authority/tradition rather than recommendations for effective designs.
i
You asked for established principles, not heterodoxy :)
😁 2
n
True 😅 I guess I’m looking for principles beyond those for 00s mass-market/enterprise software. Or maybe I’m just naively optimistic about existing wisdom. Haven’t looked at AskTog yet.
I’m looking for answers to questions like WHEN should I represent choices in a list. How can I use relative positioning effectively? How do I make important details visible at the right time? How do I avoid indirection? How do I make an interface “intuitive” (as nebulous as that is). Don Norman but more?
a
Have you read raskin's humane interface?
👍 2
n
I haven't! You'd recommend it, I presume?
s
Can’t really add anything more to this than has already been said above, but I’m extremely interested in what you are trying to do…
w
I'll add that Raskin is worth a read. Well considered ideas that, for whatever reason, haven't been realized really.
s
Are there any examples of systems that do a good job of this?
a
I would recommend The Humane Interface, though apparently people who have actually used the hardware and software described in the book are less enthusiastic: https://twitter.com/amyhoy/status/1209720373287124992
(Cue Cat is a typo. He worked on the Canon Cat.)
n
Yeah, I might give it a read with my skeptic hat on. UI has evolved a lot since that book was written, so it will be interesting to see his perspective.
@Steve Dekorte Examples of good structure editors and/or systems that "work well for both mouse navigation and keyboard navigation"? I actually don't know many! I've seen a few apps that I've personally found convoluted, though. Notion is a pretty damn good structure editor, though the structure being edited isn't that complex. TreeSheets (http://strlen.com/treesheets/) extends the spreadsheet paradigm, but I find some of its controls awkward.
g
the developer of treesheets @Wouter is in this slack and probably has thoughts about why the controls are that way—might be worth talking to him
w
@Nick Smith which in particular are awkward? I started the UI trying to match Excel, but it diverged from that, clearly
note I will make no claims of good UI.. TreeSheets was made purely to fill a personal need, then open sourced.. its very different from one of "change the world" startups with money behind them 🙂
i
... in a good way!
😀 3
n
@Wouter It wasn't clear to me how to navigate around using only the keyboard. Stuff like you can't exit a nested sheet using only the arrow keys: you hit an invisible wall at the edges. And how to get INTO a nested sheet took me a while: you can't navigate using the arrow keys from the cell text into the sheet, you need to hit SHIFT+ENTER.
The controls are learnable to be sure, they just defied my expectations.
...also zooming is unusable on a Mac trackpad, because we don't have discrete clicks
The default text size is also too small for me and I couldn't find an app-wide slider for it (edit: nevermind, there's an option in Preferences, but I expected the "zoom in" under the View menu to do the same thing).
a
I think bits and pieces of humane interface are very good, which unfortunately makes it the best thing I've read in this space. When I get the chance to return to fructure, I have lots of thoughts about mouse/pad navigation for structured editing. At a high level I'm still keen on approaching multimodal nav from the keyboard side, working on more richly spatializing key input. Less clickly clicky and more pushing and pulling and tossing and swishing. My hope is that by construing key input as physicalized interaction with tangible syntax, touch and mouse modes will drop out naturally.
🍰 2
s
Another angle to look at this which could be inspirational might be through assistive technologies and their interaction models. How do you interact with just one button, two buttons/one dimension (backward/forward), and four buttons/two dimensions (directional pad).
a
Excellent point. Relatedly Ive been using NES + SNES controllers during development as motivators to keep my core interaction model tight https://twitter.com/disconcision/status/1071275770306150401?s=19 https://twitter.com/disconcision/status/1071285028200472576?s=19
w
@Nick Smith Yeah I'm not a keyboard-only user, so no idea how easy that is. Also not sure how easy it is to match someone's expectations, since everyone has a different idea of what is natural, depending on what text editor, spreadsheet or outliner you come from. And yes, there are some new concepts to learn, such as how zoom and text scaling works in it, that are pretty powerful once you know.
j
“WHEN should I represent choices in a list. How can I use relative positioning effectively? How do I make important details visible at the right time? How do I avoid indirection?” These are the kinds of problems interaction designers are skilled at solving. I haven’t seen a perfect book/source on this topic, but a couple of, perhaps too mainstream/practical, books I would recommend: About Face https://www.amazon.com/About-Face-Essentials-Interaction-Design/dp/1118766571 Designing Web Interfaces and Designing Interfaces: https://www.amazon.com/Designing-Web-Interfaces-Principles-Interactions/dp/0596516258 https://www.amazon.co.uk/dp/1449379702/ Don’t Make me Think https://www.amazon.co.uk/dp/0321965515/ Refactoring UI — more on the visual side, but does affect the “how to make important details visible” part: https://refactoringui.com/book/ There are also quite good articles, blog posts and ux.stackoverflow answers online on the usage of specific components or interactions, for example: https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8 https://blog.prototypr.io/how-to-choose-and-design-selection-controls-in-ux-ba4a68344118 Also something quite important: many choices are specific to the target audience, what you want to optimize for and the user context. Most design problems are trade-offs between different goals, such as flexibility and ease-of-learning.
❤️ 2
g
i will never stop sharing this video about coding with an xbox controller: http://symbolflux.com/projects/tiledtext
youtube video:

https://youtu.be/tztmgCcZaM4

😀 1
❤️ 1