Closed hedgefield closed 5 years ago
I started off with some sketches for the status page:
I then tried a more detailed breakdown like Lighthouse, but you can't render any progress bars on metrics like 3 critical issues
. How much of a percentage is that? That got me thinking about the possibility of grouping the checks differently. Instead of one big pile sorted into mustfix/shouldfix/good, could we define a few groups of checks around a specific area? Things like security, speed/performance, accessibility? Maybe just those three, I think most checks could fit under one of those. It does split critical items out over multiple categories, but in return you get a nicer breakdown of your site health, and context for what fixing those problems contributes to.
So then I riffed off of that, trying different layouts:
Here's what it looks like now, for comparison:
Cool initiative! Happy to collaborate on this where I can. Please note that the design on this postcards is from WordCamp Brighton and initially, these were printed for that occasion. Therefore I'd discourage to work from that design.
Super keen to be involved in this - Health Check is a great too and I strongly believe some UX and Design could make it an even more useful tool for people.
@hedgefield I think your initial thoughts are great. I'm wondering what the ideal goal for a user of the plugin is? Are we hoping to inform them, or trying to entice them into action to improve things?
We're trying to entice them into acting with the Site Status page. Ideally we'll be able to include more action points alongside the recommendations, for example:
X plugins are out of date [button]Update plugins[/button]
You are using PHP version 5.2 [button]Find out how to upgrade[/button]
(linking to the same resource as the Serve Happy dashboard widget would use)Your site uses HTTPS, but it is not set as default [button]Make HTTPS the default on my site[/button]
Of course, not everything is easily actionable from within WordPress, but those things that are, it would be great if we provided the users with a quick and simple way to fix things on their own right there and then.
That sounds perfect - I love the idea of having link/button CTAs for issues they can address immediately. For the other things things (that aren't easily actionable) perhaps we link through to support docs with information of how/what to ask their host for etc?
Hi @jordesign, nice to have you!
@Clorith put it quite well already, yes, we'd love things to be as actionable as they can be. I put together a quick general overview of what I think the flow could be around solving the issues.
To understand this it will be good to know that we plan to group the issues in three categories: critical issues, recommended improvements and passed checks. They will all three be collapsible sections, containing lists of issues with actions attached. Passed checks are collapsed by default as the user will need to take no action on those. We could consider hiding that section altogether for that reason, but it also has some useful information like PHP version etc. Maybe we should actually split those up into an info area and an action area now that I think about it, so you can really reach 'inbox zero'...
I like the idea of "inbox zero", it's my favorite scenario whenever I look at action lists, especially when it lets me know everything is good and there's nothing I need to address, so the psychological aspect of that shouldn't be dismissed.
As for groupings, I'm open to interpretation, the approach I've taken so far has been me experimenting more so than any fixed plan, so I'll defer to your experiences in that regard.
The flowchart is perfect, and the ideal scenario I would love to reach!
Great! And do keep offering your view on things @Clorith, you probably know this plugin better than anyone right now π
The above flowchart is specific to the actionable issue-solving, I also want to make one that is like a decision tree for the other features the plugin has, so we cover everything.
Right now, this is my list:
Are there any other things we want to include that are not there yet? Is an integration with Google Lighthouse possible? Or should we offer that as a separate resource? An accessibility checker would probably also be nice?
I'm also thinking of checks/info on:
As or accessibility: not sure about Lighthouse integration, although it does provide a lot of info. People of Deque (from the AXE addon in the browser dev console)have been involved with A11y during WCUS contributor day, so they may be able to help out here? Pointing to a doc (the a11y handbook?) with more info on how to improve A11y as a tip could be interesting.
In general, the parts of the check could have:
As an example, see this page from commercial website auditing software that I think does it quite well. (screen shot is a year old, so could be outdated)
I did some sketches with quick wins based on the discussions so far (click to enlarge):
These are the four main sections featured:
Shows a big circular status bar that calculated a site health score based on the % of 'fixed' checks, with the full list of checks below it. The checks are split out into critical issues/recommended improvements/passed checks. Each issue has a description of the problem, and a button if the problem can be fixed by pressing a button, otherwise a link to a settings page or a wp.org article for more info.
Passed checks should maybe be hidden to create an inbox zero vibe. And I was thinking we could perhaps also tag issues with the type of improvement they yield (speed/security/a11y etc), shown as a badge or color.
This is a merge of the debug information and php information page, as they both do the same thing: show a list of information about a thing. I've placed the categories of info into collapsible sections as well, which removes the need for the second set of sub navigation that was on this page, and also brings it in line with the way other pages present information.
I believe PHP was a bit of a gray area, so perhaps we could also simplify it by linking to a wp.org page (or section of the servehappy page) that explains where to find the PHP info on your hosting.
I've simplified the UX for sharing this info with a support engineer or someone else from
click button > select all text > copy text > paste somewhere else
to
click button > get a plaintext file
.
This page probably needs the least amount of work, but I've enhanced the messaging by adding some illustrations that explain what this thing does, it's a little scary now with the sparse copy and a button that turns it on(???)
Can stay as-is, it already has the collapsibles, and doesn't need much more flavor in my opinion. Just more tools in the future maybe!
I like this direction, and especially your thoughts around the site status where they're grouped by severity, and a customizable badge for what area they belong to. This also makes it easier if anyone wants to hook into it, for example a host wanting to add cache status to it.
What would this look like in a core-only world, where Site Status lives by it self without the other 3 tabs, would it be the same, only without the tabs for other pages?
Good question, though I think the page can actually probably stay as it is in that scenario. In an ideal situation there is a check for every important item on the info page, so then if you need general site info you can just look through the passed checks section.
I've been working on some style tests of what a full page could look like. I started with a very conservative classic WordPress look, working my way up to what I imagine for a full Gutenberg styling.
You can view the design iterations here, or skip right to my favorite so far:
Left is grouped be severity and tagged by category, right is the other way around. Also, left works like inbox zero, right works like a checklist.
I chose to hide actions behind the More info
, as there are very few checks that can actually accomodate a one-click fix; for most you have to do the legwork yourself, so the section contains some extra context and then a link to find out more if the user wants to. Having them all collapsed by default prevents information overload.
We can scale back to a happy compromise if the gutenberg styling is too jarring, but I must say I like that one best so far.
I'd love to hear your thoughts!
Personally, I really enjoy this style, I agree that the "Gutenberg-like" ones are more visually inviting (and aligns well with the direction of core).
I feel like the left option, grouped by severity, gives most flexibility when taking into account potential items added through filters.
After presenting the design in the WP Design Meeting we got some nice feedback, the main thing being that the list on the status page is styled differently to the collapsibles. It's a choice we made on instinct, but I tried a version with the standard gutenberg collapsibles and it actually looks good too!
I fixed the margins too, though I'm sure we'll get some more pointers out of the accessibility review.
Excellent, this looks great!
Which fonts are used, I noticed they're not the system fonts used by default, so we'll probably want to match the fonts one way or the other. The font you looked feels warmer than the system font, which is quite sterile in comparison.
I've adhered to the WordPress font stack for body text, which on Mac defaults to San Francisco, which is what I used in the mockups (tiny variances in rendering perhaps). The headings font is Noto serif, the default Gutenberg headings font.
Ahh, that would probably be it then, the header font is what I mostly noticed, so that's why, thankyou π
I connected the four pages of the mockup together in an interactive prototype to make it easy to check them out. https://sketch.cloud/s/3P4LZ/WKrlQxn/play
Really loving the look of this - nice work :)
A coupe of things that might be kind of nitpicky, but nonetheless...
Colours on labels are going to indicate some kind of heirarchy/status whether we like it or not. I think having red for the security category makes sense. We just want to make sure are aware of that when assigning colours (I worry a little that green might look like it's something you don't need to worry about).
I realise having 'Info' as the label on the second tab is more concise - but feel like having 'Site Info' (like the title of the page itself) might be clearer?
A couple of other things I'm wondering too...
For items where there is an immediate action (like upgrading Core) will the button to take that action need to be hidden within the collapsed content?
I love the Inbox Zero approach - but wonder if we need to still somehow make it possible to view the items that are 'done'?
Good points @jordesign, thanks.
I agree some colors may be a bit problematic. I updated the speed one to a light blue, and I noticed the performance orange also wasn't a11y-compliant so I fixed that. We can look to Github label colors perhaps for some nice, non-associative colors to use. I experimented with making them all the same color too, as technically they are like tags or categories, but that makes the page a bit bland.
I've gone back and forth on the navigation naming. I felt like having "Site" in everything is a bit superfluous, and then really it should be "Site HEALTH status/info" but there is certainly something to be said for matching titles and nav. I'm not sure which way to go on this one yet.
I've thought about having action buttons at the top level of the status page before but I'm not sure why I decided against them. I'll add them to the mockup and see how it looks.
Items that are done will basically be on the Info page, all the information that feeds into issues can be found there.
I do have a concern with action items on the "top level", what if there's more than one action, for example: As the tests are filterable, a host may want to add in information on how to upgrade PHP as an actionable step for the upgrade PHP, but retain the core information on why it's important which takes you to the wordpress.org/support/update-php page.
Another situation might be like the Loopback test, where the actionable item is to test without plugins or themes, and you get followup actions depending on what results that provides, but also needs the expanded area to show the response from the continued testing there. (totally get the thought though, perhaps an indicator that there's an actionable item is needed?).
As for the label colors, I've actually gone the route of providing just a fixed set of colors for the base (that we'll include) that others hooking in can keep using, like saying badge => color: red
, so this is easy for us to change once we figure out what colors we want to provide by default. But I agree that they'll be considered "traffic signals" for how important something is.
Great considerations @Clorith, makes sense, let's keep any actions inside the collapsible. It's always good to be able to offer a little context before asking the user to perform an action. Some kind of icon to indicate actionability might be interesting to explore. And great that the colors are set up as variables, we can always tweak the values.
Thanks @hedgefield and @clorith,
And great that the colors are set up as variables, we can always tweak the values.
I think this is good too. I feel like the colours in the most recent iteration are a lot less 'traffic signal'-ey though - I like them.
let's keep any actions inside the collapsible. It's always good to be able to offer a little context before asking the user to perform an action. Some kind of icon to indicate actionability might be interesting to explore.
Agreed that action button after context makes sense. I am interested in the idea of an icon to indication actionability though... Will that fit with the Gutenberg 'like' styling?
Please check color contrast. In the screenshots above, I see some orange and light green "label" boxes with white text that don't pass the 4.5:1 threshold.
Thanks @jordesign! I like your idea of making the actionability a label just like the categories, that fits nicely I think. Perhaps we should call it Quick fix
? Fix available
may make it sound like the other ones do not have a fix, which is not true, it's just probably not quick ;P
I've added it to the prototype and updated the failing colors. https://sketch.cloud/s/3P4LZ/dlQL4Om (Color matters can be discussed in #290)
Quick Fix
doesn't feel accurate either, if we're basing this on "does it provide any action items", since an action item may be more than just a "fix it automatically" button π€
Quick Fix
was a rough idea - I agree it's not quite right...
'Fix Now' implies an immediate action. I think it is OK if an immediate action like upgrading Core is different to other action items?
What about something a bit more vague, to account for non-fix-actions as well?
Actions available
feels a bit wordy, and I don't know how well it works for translations either, but some sort of variation on that would be useful I suspect?
Yes, it has to convey the feeling of "you can do stuff!" without also making it seem like you can't do anything about the other ones... If we want that label. We might consider we're trying to solve for showing a button here, so maybe it's okay that people have to dig in to find out what they can do? Otherwise they may also bulk the quick fixes and ignore the rest as they have to read stuff ugh.
I'm thinking, for the first iteration at least, we'll not do anything extra, we'll leave it as is now, with a label, a badge and that's it. Users will expand it to reveal more information and actionable items.
We can then judge if there's even a need, it may be intuitive enough to just expand them for more details, and if they see there's buttons to click, it becomes clear that this is a thing, sound good?
Sounds good to me π
This was just merged in, the two things that are still missing is:
Inbox zero, if there's no critical tests failing, the critical section isn't displayed, the same goes for the recommended section. The passed tests are hidden by default. This means if all tests pass you just get a screen with just a "Show passed tests" toggle, we discussed earlier that it would be nice to include something encouraging to indicate the user did a good job keeping on top of important tasks.
Onboarding which is in #206 and not as critical for the current window we're trying to hit with 5.2-beta1, as it doesn't relate to core, only the plugin.
Ah yes right! The empty inbox, was going to look at that, thanks for the reminder. EDIT: I did.
As the new design is implemented at this point, I'm marking this ticket as closed.
Any issues that crop up relating to it I suggest should get their own tickets for visibility.
The plugin could admittedly use a good look at the design and user experience before its merge proposal, but rather than jump in with specific cases I figured it's good to look at the plugin as a whole first, and consider what approach we want to take.
UX
The plugin is currently very functional, but that's about it. It displays information and offers tools for those who kind of know what they are doing. To make it a success, I think we need to look at a few things:
Onboarding
What happens when a user first starts using the health check, and what do we teach them?
Guided complexity
There are a lot of tools in the health check, but maybe not all of them have to be on the same level of visibility. Are there things we can make contextual, or do behind the scenes to make it simple to start but powerful when needed?
Scannability
Sort of related to the previous point, basic information should be easy to glance at. Bold numbers in visible places to give you a quick sense of how things are doing before jumping in.
Gratification
To ensure people like using the plugin, doing things with it should be gratifying. Instant (micro)feedback, red numbers turning green, smooth animations, and a feeling of progress could contribute to a pleasant experience.
UI
The last point under UX also relates to UI: things have to look nice ;) Since this might be one of the first big things added to WP core after Gutenberg, it makes sense to use the visual style they developed, as I believe was their intention. It's nice that the marketing around the Health Check previously has also used a similar style, with strong black-and-white typography and pleasing whitespace and font sizes.
Another possible inspiration suggestion was Google Lighthouse, which also has a similar feel, and does well in the gratification department.
As we go along I'll discuss details with the WP design team, but it feels like a good place to start.
Any thoughts appreciated!