Review of the usability of Overlay in Drupal 8

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
tkoleary's picture

Over the past months as we worked to improve the user experience for content authors in D8 by simplifying the way users perform the most basic tasks in Drupal an issue that has repeatedly arisen is the overlay module. There has always been some debate about it’s value—and given that changes are already necessary to integrate with new core functionality—this is a good time to drill in and re-assess how overlay is working and see if we can improve it. To set the context here are a few of our observations:

Positives:

  1. Katherine Senzee’s implementation of overlay is very robust and flexible and has been made even more accessible and responsive now in D8 by Jesse Beach
  2. Because the overlay module uses iFrame it offers an excellent solution to presenting a form in the admin theme over top of the front-end site with no theme bleed-through.
  3. #2 enables us to present a modal dialog that looks the same from an admin page (assuming a non-overlay admin page exists when overlay is enabled) and the front-end.
  4. We need a consistent, responsive, accessible modal dialog solution for D8 and for views in particular.
  5. We have already implemented much of the restyling of the overlay according to the new Seven style guide

Negatives:

  1. Evidence suggests that overlay is commonly disabled. The following issue is a good example of it’s reputation http://bit.ly/og0Tr1, as is this article http://bit.ly/17ENkCq. Note: I am currently compiling more hard data on how often overlay is disabled.
  2. After overlay was implemented, when issues arose in testing that suggested that the overlay might not conform to user expectations the results and comments (notably from Jeff Burns http://bit.ly/ZylnEZ ) got no attention (the issue is still open).
  3. Overlay was based on Mark Boulton and Leisa Reichelts designs, but only implemented fully after their involvement. They and the larger community did to testing after, but no comparative study was carried out if the overlay in itself was an improvement, or just part of many other (positive) variables such as the introduction of an administrative theme.
  4. Positive D7 usability test results may have been due to the introduction of overlay, but since the Seven theme was introduced at the same time as overlay we cannot know for sure. Only comparative testing can validate this.
  5. The blanket application of Overlay presents an anti-pattern to most commonly used implementations of modal dialogs (for example it directly contradicts human interface guidelines of both Apple and Microsoft.)
  6. Overlay did have accessibility and performance issues but AFAIK these have all been fixed.

Detailed review of overlay usability anti-patterns

The intent of Overlay was to provide a modal experience for administrative tasks by drawing a clear distinction the site and the administrative interface. Since at the time there was no separate administrative theme in Drupal there was clearly a need for separation. As I suggested above, however, Seven without overlay has not been tested to prove this out.

We do however have a wealth of other usability research to look at in regards to modal dialogs. Modal dialogs are well defined and carry a rich background of commonly understood behaviors and the pattern that overlay uses breaks many of those rules.

stick with the design conventions that users know. Whatever design you pick should work in the expected manner.-Jacob Nielsen

1) Modal forms should be quick and temporary

In D7, overlay is neither quick, nor temporary. It presents all of the complexity of Drupal in a modal experience. This is a big antipattern.

Modal dialog boxes require users to complete and close before continuing with the owner window. These dialog boxes are best used for critical or infrequent, one-off tasks that require completion before continuing.-Microsoft HIG

An app-modal dialog prevents the user from interacting fully with the current app, although the user can switch to another app. -Apple HIG

2) Modal forms should not contain navigation

Modal experiences serve the purpose of briefly taking the user out of their current context to execute an action on a sub or related object before continuing with their task.

Don't have a menu bar or status bar. Instead, provide access to commands and status directly on the dialog box itself, or by using context menus on the relevant controls.-Microsoft HIG

3) Modal forms should not nest

Nested modals invite confusion

Avoid nesting popovers [modal dialogs]. A popover that emerges from a control inside a different popover is physically difficult for users to interact with and confusing to see. In addition, users can’t predict what will happen when they click outside of both popovers.-Apple HIG

Of course it is possible that, despite being an anti-pattern to common UX patterns, the current overlay pattern is needed for Drupal because of the unique requirements of a web CMS. I don’t think this is true but I am willing to put it to the test, which is why I am proposing we do a comparative study using D8 with overlay enabled versus an altered version of D8 with overlay selectively disabled.

Here is wiki outline of the rules for when to use, or not use overlay that could be used in the altered version for comparative study: http://groups.drupal.org/node/294883 "An alternative approach to overlay in Drupal 8". Please jump in and edit if you have ideas on this.

One final note, per Dries this is an important area to explore but it does not have to be done for Drupal 8 release and UX improvements like this can be continuous enhancements.

Comments

IEF moving to modals

DamienMcKenna's picture

3 is interesting in light of the fact that the Inline Entity Form is planning to move to using a separate thus nested modal dialog for v2: http://drupal.org/node/1881616

my 2+ cents

rickvug's picture

Here's my opinion. I'm not a certified UX expert but I would say that I have a good feel for these issues. For a number of reasons overlay never felt right for me. The reasons are:

  • Modals have always been for quick, temporary tasks. The overlay was used for anything but.
  • It is possible to trigger "true modals" from within the overlay, which was inconsistent, confusing and always felt brittle, like I could loose information at any point.
  • From a look and feel and performance perspective the combination of overlay and Seven is lacking. The interface feels slow, bloated and in-balanced. I know that what we ended up building does not match the original vision of D7UX. Somehow a slow page load feels worse within the overlay as modals are expected to be fast compared to full page loads.

Beyond these issues I don't think that the overlay fits with where we're trying to go with D8 edit in place. It is also confusing for developers as there are too many ways to do modals (or pseudo modals). My vote is that overlay is moved to contrib.

@rickvug Agree on your first

tkoleary's picture

@rickvug

Agree on your first and second points. On the third you should fire up D8 head on simplytest.me and look at how overlay performs. It's super smooth now, not to mention responsive and accessible.

Also because of #2 and #3 in the positives above I think it is incredibly valuable and should not be moved to contrib (unless I am unaware of some other module that can display a visually identical modal from an admin page or a site page).

I just tested the overlay

rickvug's picture

I just tested the overlay again on D8. It is indeed a lot quicker but still just as awkward. I would say that the speed criticism still stands, albeit diminished ("Loading..." as the title is still very noticeable).

Inline Entity Form

tkoleary's picture

@DamienMcKenna

Thanks for pointing that out. AFAICT this is not a conflict though, at least not if we use the pattern of primary and secondary tasks as outlined in http://groups.drupal.org/node/294883.

And even if there was a case where there was recursiveness and user editing a secondary entity triggered a link to a tertiary entity form, the issue is not "is a modal triggered from another modal", but "does the user see a smaller modal nested inside a larger modal". If the tertiary modal "replaces" the secondary one completely and then returns to it on close, I think that is acceptable.

Agreed

tinycg's picture

Kevin I think you make solid points, your main point should be a serious point of emphasis though for which I think we all agree... modals should be quick and temporary, as they're context driven.

The other 2 points of having navigation and nesting wouldn't exist if the first point was followed properly. Navigation is not temporary, and nested modals dont allow for quick action, they complicate it.

Overlay D7 = No go for me

markconroy's picture

I shied away from using D7 for over a year of its life, until I had the great idea of disabling Overlay - though it's a very well put together module.

It felt too clunky, abstracted from the workflow, and then when I clicked a "save" somewhere, it refreshed the page I was just on, which felt like one more level of slowing me down.

I haven't tried it in D8 yet (I'm willing to believe it's as good as everything else has been so far in D8), but would be tempted to say move to contrib.

(That said, the point of it is for newer users, who won't be able to turn it on unless they know it is there, and may not know it is there until they snoop around for a while - so perhaps it's better to leave it on, and those of us who know Drupal can easily switch it off while removing (hopefully) a barrier to using Drupal for newer folks).

Oh dear, I've just talked myself around in a circle.

:)

tkoleary's picture

Yes, I think we've all been going in that same circle.

An interesting note though is that you express one of the central ideas being discussed in UX; skills based design. Basically visual aids and affordances given to new users gradually remove themselves from the UI as the sophistication of the user increases and she no longer needs them.

That requires much more robust personalization than we now have (shortcuts :/ ) and a bit of machine learning, but this is the way we should be going.

The thing that has always

timaholt's picture

The thing that has always bugged me about it on 7 is that linking into an admin section is completely inconsistent with overlay enabled. For example if I click a link that has #overlay=admin/modules I load the homepage + an overlay with the modules page, whereas I can click a link to admin/modules and get just the modules page. I then stay in whichever (overlay or non-overlay) admin section I started in once I click around in the admin section. It's like having 2 slightly different UI's at the same time.

On the whole I can see it's use, but personally I've never cared for it and turned it off on every site or client's site that I've worked with.

I posted a patch!

Ryan Weal's picture

Hello everyone,

I was completely unaware of this discussion but Gábor just pointed it out to me... and I have my feelings on the subject as well. After 3 days of writing patches this one just rolled right off my keyboard. Please feel free to add your 2¢ on this feature request.

http://groups.drupal.org/node/294848

Your link is back to this

dsnopek's picture

Your link is back to this discussion! Could you post the link to your patch? Thanks.

overlay ==? modal

corbacho's picture

I've felt always that the iframe implementation is hackish. I tend to disable the module because an overlay means 2 full-page-requests and it doesn't have enough value for me. Although now is much faster in D8, now that is loading the iframe on-the-fly (Jesse +1).

But the implementation details is not the important thing. If I remember correctly, it was decided in that time to be an iframe implementation because it was the best we could do to support all browsers and a11y.

The question for me is: Is an Overlay a modal ? The overlay is an overlapped full admin page. A modal normally are for simpler interactions, like dialogs. The Drupal concept of overlay is something I haven't seen in any other web UI.

But anyway, the point is that yes, I think is worthy to research and try alternatives or complements to the Overlay.

Now that the SPA approach is rising, is very tempting to make a JavaScript rich client for admin UI, extending the work done with the Toolbar module. But this is too much for D8. Maybe contrib.

Usability

Group organizers

Group categories

UX topics

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week