Background
We know from numerous usability test results over the years that users, particularly new users, have a huge reliance on previews to accomplish site building and content authoring tasks. In the University of Minnesota 2015 study of Drupal 8, some of the critical UX issues identified were:
Dependence on previews led to inefficiency. "Until I saw them, I was never sure if I did the right thing." The inability to see the work in a realtime preview was frustrating.
"Order of operations are backwards! For example, dependencies and prerequisites for structuring taxonomy/content/etc. are reverse from the way users conceptualize it. (e.g. creating terms before adding a field for terms) "I have to go to the Block page and abstractly add a block."
Wayfinding, or clues on how to get started, were lacking. Task-based headings and navigation — verbs — would have been more helpful than the nouns presented. "This is a jambled-up hardware store with no wayfinding. I have to go through every aisle looking for electrical outlets.
"Drupal uses weird words for everything. Compared to Wordpress, "You don't have to figure out how to place your block inside your view inside your region inside your homepage." "If all you use is Drupal, you're not going to be able to make any other kind of website."
Together, these make for a monumental mental model problem for new users, which causes Drupal to be perceived as frustrating and difficult to use. Fixing these critical UX issues is necessary in order to start addressing the stigma Drupal has around its usability.
Goal
A solution which helps address each of these, at least in part, is turning Drupal outside-in (basic examples, more advanced example); that is, for all visible areas of the website, provide a way to quickly edit and/or configure it, directly from the front-end, without requiring users to break context, move to the back-end of their site, trawl through Drupal's admin IA searching for obscure terminology to change a certain part of the page, often with no ability to immediately see what effect the change has unless a user has two browser windows open simultaneously.
Here's a proposed prototype of the functionality, which has been through several rounds of feedback during the weekly Drupal UX team meetings, as well as adjusted based on feedback from Cheppers usability testing (click image to see video).
If this functionality tests well once it's in the hands of more users, the eventual plan would be to replace the current Quick Edit module's functionality with this new project, and mark the old one as deprecated for BC.
Proposal roadmap
Required sign-off before commit
Owner | Status | Description |
---|---|---|
Product manager @Dries (since @webchick is the initiative coordinator) |
Initial signoff | This initiative was proposed by Dries: Turning Drupal outside-in, Handling context in "outside-in" , Examples of how to make Drupal "outside-in" |
Framework manager @alexpott, @effulgentsia, and/or @catch |
Initial signoff | @effulgentsia in #2753941-162: [Experimental] Create Outside In module MVP to provide block configuration in Off-Canvas tray and expand site edit mode. Final signoff depends on code review of the final module. |
Release manager @catch and/or @xjm |
Initial signoff | @xjm in #2753941-226: [Experimental] Create Outside In module MVP to provide block configuration in Off-Canvas tray and expand site edit mode. Final signoff depends on completion of the roadmap and technical debt discovered while the module is experimental. |
Sub-system maintainers Quick Edit subsystem maintainer (@Wim Leers or @nod_) |
Pending | Pending approval of list of follow-ups. |
Usability topic maintainers (@yoroy and/or @Bojhan) |
Initial signoff | @Bojhan signed off on the plan in #34. Final signoff depends on full usability review, iteration, and testing. |
Accessibility topic maintainers (@mgifford, @andrewmacpherson, and/or @jessebeach) |
Pending | Pending a full accessibility review. |
Required before stable release
For this module to become a stable part of Drupal core, all of the "Must-have" and most "Should-have" followups should be completed before the beta phase for 8.4.0.
Remaining items
Must-have
- Thorough code review on final module.
- #2894358: Front-end Review of Settings Tray module for stabilization
- Thorough JavaScript maintainer review on final module.
- Ensure designs are refined/finalized based on user feedback:
- Thorough Accessibility maintainer review on final module.
- Full API documentation
- #2893937: Complete Handbook documentation for Settings Tray module
- Manually test in all core themes.
Should-have
- #2815709: Settings tray conceptually incompatible with configuration overrides such as translations
- #2764931: Contextual links don't work with 'use-ajax' links (existing technical debt exposed by module)
- #2773591: New contextual links are not available after a module is installed (existing technical debt exposed by module)
- Add “don’t show again” to edit mode message.
- #2784589: Provide a method for module to specify that their toolbar items should appear in Edit mode
- #2784935: Use Backbone for client-side state management
- #2888567: Add links to relevant off-canvas block forms to blocks to link to related configuration
Could-have
- #2784569: Settings Tray Accessibility: Improve tabbing
- #2754489: Move the "user" link to where most users expect it to be
- Divide sidebar form into two tabs: "configure" (for block stuff) and "Menu" (for menu stuff)
- Animate transform of pencil icon into “back” button
- All contextual links which are *not* "Quick edit" get a "..." appended to them, to signify that they're going to take users away from the current page.
- #2784467: Remove duplication between DialogRenderer and its child classes
- #2889747: Determine if elements should be removed from the toolbar during edit mode.
- #2822932: Make Settings Tray candidates and actively edited items more visually obvious
- #2825433: [PP-1] Style vertical tabs for Settings Tray
Items needing classifiication
- #2785497: "Outside in" workflow is not clear
- #2847674: Returning to normal mode is tedious and confusing
Completed Items
Must-have
- #2784443: Move off-canvas functionality from Settings tray module into drupal.dialog.ajax library so that other modules can use it ("should have" for module itself, but "must-have" for wider adoption)
- #2896143: Unintentional animation of the body while Settings Tray is installed
- #2782891: The Page Title block's title behaves in a confusing way with Settings Tray and the Help block incorrectly has Settings Tray styling
- #2803375: Rename Outside-in module to "Settings Tray" for real
- #2761985: Refine/finalize design to discoverable Quick Edit feature
- #2894584: Settings Tray provides functionality, not an API: mark PHP and JS as internal
- #2877088: When in Edit mode Inform the user when they are configuring something that changes more than the current page
- #2732443: Finalize the behavior for triggering view/edit/build modes from the toolbar (and fix the "disappearing toolbar")
- Finalize the API: #2853208: [META] Determine best method ensure consistent theming of Off Canvas Tray
- Get designs looking like the mocks: #2781577: Properly style outside-in off canvas tray
- Ensure designs are refined/finalized based on user feedback:
- #2785047: In Outside In mode, form validation messages should appear in the off-canvas tray, not the main page
- #2882729: In off-canvas block form hide Title input unless it will be displayed and change label to Block Title
- #2826722: Add a 'fence' around settings tray with aggressive CSS reset.
- #2784591: Outside In: Move "Edit" to the left end of the toolbar
- Place other "edit" items from contextual links in the sidebar as well (below Save button).
- #2773603: Append name of current path to label of Edit button in the toolbar when in Edit mode
- #2783509: Outside In's "Edit" toggle lets you do just about everything except edit your content
- #2782885: No indication what page element is being configured with Outside In
- Fix known accessibility issues:
- Full test coverage
- #2781583: Reconcile the many forms of editing and configuring stuff (and address potentially redundant contextual links)
- #2782899: Outside In is broken on iOS
- #2784465: Update help text for the Outside In module
- #2784513: Off-canvas tray requires feedback on load
- #2782915: Standardize the behavior of links when Outside In editing mode is enabled
- #2787135: Editing mode gets "stuck" after switching between configuration of different blocks
- #2784567: List "Quick edit" before "Configure" in contextual links while in Edit mode
- #2781575: Determine ideal field order and visibility for "quick edit" blocks in off canvas tray
Should-have
- #2764931: Contextual links don't work with 'use-ajax' links (existing technical debt exposed by module) fixed in 8.5.x
- #2893350: Determine exact wording of "You are in edit mode." message when edit mode is enabled.
- #2888305: In Settings Tray the when form is longer than page body it is tricky to scroll to the very bottom.
- #2784853: Determine when Outside In library should be loaded: piggyback on contextual_toolbar()
- #2844261: Allow dialog links to specify a renderer in addition to a dialog type
- Accessibility w/ contextual module: #2863222: Contextual Accessibility: Announcement broken after enabling editing mode a second time
- #2781579: Fix overlapping Edit buttons on menu sidebar in outside-in (existing technical debt exposed by module)
- #2781589: Fix multiple scroll bars in outside-in sidebar
- #2782927: Block description does not belong in Outside In sidebar; make it part of the sidebar title instead?
- #2784437: Clean up CSS in outside_in module
- #2784463: Convert outside_in_page_(top|bottom)() to a #theme_wrappers
- #2784481: The off-canvas tray does not respect the state last set by the user in a session.
- #2784593: Outside In: Move toolbar CSS changes into the toolbar module
- #2784599: Outside In: Determine how to handle different breakpoints for the Off-canvas tray
- #2784881: Update Outside-In Javascript based tests to test against all core themes
- #2784971: Remove reference to Bartik in outside-in CSS
- Explore compatibility with #2732081: WI: Phase G2: Full-site preview with Workspace UI.
Could-have
- #2894427: White toolbar background when in edit mode is distracting and not pretty
- #2782345: Use the admin theme for the Outside In sidebar
- #2782803: Rename Outside-in module to "Settings Tray" in the UI and in comments
- #2784563: Explore "Quick configure" (in contrast to "Quick edit") for the Outside In contextual link to clarify the difference between editing content and configuration
- #2784573: Outside-In: While quick editing a block, you can click Quick edit again
- #2862625: Rename offcanvas to two words in code and comments.
- #2784449: Should code that targets CSS-safe contextual link names be clarified?
- #2785133: Simplify OpenOffCanvasDialogCommand
- #2785135: Rename protected property SystemMenuOffCanvasForm::$entity to $menu
Not in scope
- Re-designing the Place Blocks feature (that's #2739079: Reduce visual clutter of Place Block module, #2784495: Normalize block place and outside-in experiences)
- Designing for use cases outside of ones specified here
- Other types of trays that pop up from other
Team and resources
- Designer: @tkoleary
- Back-end Developer: @tedbow
- Back-end Developer: @tim.plunkett
- Front-end Developer: @drpal
- Initiative coordinator: @webchick
This team is from Acquia's Office of the CTO, and funded full-time for development.
Process and where to find it
Issue tag: Outside-In
Where we work: We are using the existing #ux channel on drupal.slack.com (get an automatic invite here), as well as the existing semi-weekly Drupal UX Team meetings for interim reviews of progress. (What time is that in my time zone?)
Plan for the code: We plan to propose this improvement as a new experimental module for Drupal 8.2, an approach which has sign-off from @yoroy and @Bojhan (UX Topic Maintainers), as well as @Dries (Drupal Product Manager).
Related work
Existing core features
Place Block module already exists.
Contextual links already exist.
Quick Edit module already exists.
This feature begins to weave them together into a more holistic outside-in editing experience.
Open core issues
(See issues in proposed roadmap.)
Contributed projects
None that we are aware of.
Comment | File | Size | Author |
---|---|---|---|
#20 | editing_toggle_misleading.png | 99.06 KB | xjm |
#20 | they_are_not_the_same.png | 144.6 KB | xjm |
#11 | Screen Shot 2016-07-07 at 8.29.11 PM.png | 60.38 KB | webchick |
#8 | Screen Shot 2016-07-07 at 4.30.34 PM.png | 184.7 KB | webchick |
#4 | Screen Shot 2016-07-07 at 1.26.52 AM.png | 24.41 KB | webchick |
Comments
Comment #2
webchickComment #3
webchickComment #4
webchickComment #5
Bojhan CreditAttribution: Bojhan as a volunteer and commentedThe scope of #2753941: [Experimental] Create Outside In module MVP to provide block configuration in Off-Canvas tray and expand site edit mode did not get much sign-off or review. I am not sure what to review here, as there any many missing parts and the "bigger picture" on this one is a bit unclear - as it seems to closely align with the initial overlay scope. Given that this is the key part of "outside in" and the other parts are just making the entry points better - its worth doing a separate call or more hashed out design on that. We should go really MVP here, and for example only allow editing of plain blocks (not also change the way we place blocks, do a manual configuration split, etc.).
The other concepts look good to me, and happy to provide sign-off.
Comment #6
webchickThe proposed roadmap does not have changing of the way we place blocks, nor the configuration split. The screenshots in the issue summary are accurate.
Comment #7
webchickAlso, could you please elaborate on what you mean by "bigger picture"? There's some detail under "Background" as well as several links to blog posts which provide even more bigger picture stuff. I'm also not sure what you mean by missing parts. If you have specific concerns with items the roadmap, it would be great to know them.
Comment #8
webchickThis might be one problem. Clarifying the scope of this issue.
Comment #9
webchickAnd one more.
Comment #10
Bojhan CreditAttribution: Bojhan as a volunteer and commentedI've outlined my comments in the relevant issues. The larger picture is best captured by yoroy's comment in https://www.drupal.org/node/2729413#comment-11231709. The currently active "official" initiatives have a clear roadmap from 8.2 and 8.3, and sometimes onwards. Given that this part of several strategic initiatives (at least thats how it looked in the Driesnote) it would be good to know what the ideas are beyond this first push (are we expanding to more blocks?).
Considering our Lean UX thinking, what are we trying validate - what is our hypothesis? How can we validate it with this step? Does it accurately reflect the first step of a "outside-in" concept? What is needed for that?
It would be great if the relevant issue or this plan issue could outline in more detail:
Most of these issues are already discussion in the relevant modal issue, they are under discusion and yet to be resolved - understandably so, these are tricky things. We don't have to solve all of them, but it's nice to understand the vision as our discussions so far have been unable to provide adequate answers.
What is our battle plan for making this work for all the "editable" parts of the front-end. That needs a somewhat clear follow-up, or we end up like Quick Edit currently where there it never graduated beyond nodes. Given the criticality for the outside-in concept is being all encompassing on the front-end, I would love to see some ideas/plans.
The place blocks as outlined in this post, is significantly different from the current state (opening in a modal vs. a tray). We don't have a "wizard" like flow yet in the tray design. This is also new, it wasn't in the earlier designs that I've seen (sorry, there have been a lot). Given that we omit the region selector, people are kinda stuck with where they place it - unless they know the Drupal "advanced" way. This seems like a rather arbitrary limitation that would unnecessarily hurt UX. Happy to also include this, but that is different from our current approach - and should either be reviewed or left out of scope. [@webhick you changed the picture from an animation to a pic without the place blocks part, does that mean its now out of scope?]
As mentioned before, most of the concepts are really close - only what is actually in the tray is a little unclear to me.
I really hope more people chime in :) We've been looking at this for months now.
Comment #11
webchickYep, the block placement stuff has been moved over to #2739079: Reduce visual clutter of Place Block module (sorry, it's not easy to edit a video :\), so is out of scope for this issue. Since Place Blocks module is already in core, we are not planning to work on those revisions until after the August 5 feature cut-off for 8.2, which gives some time to discuss them more.
The reason the site name block in the prototype only shows toggles, vs. something more useful like actually editing the site name, is because our initial thought was for the sidebar to be programmatic and just show the block settings that are unique to that block, which unfortunately that's all the settings the branding block gives us. :\
However, when we dug in here, the per-block settings are actually mostly useless, and not just in the branding block; for example, for menu blocks you wouldn't get the actual menu to customize (which is the 80%+ case), you'd "Initial menu level" and "Maximum number of menu levels to display", thus pushing right into content authors' faces these obscure advanced options. :P
We also briefly explored something like a #short_form = true property on form elements, set by the module author, and looping through and showing those. But that also doesn't work, because custom modules may have set properties such as #access further up the tree, and the text field element would not necessarily know.
So the MVP proposal in the roadmap above actually is to start with menu blocks, by implementing a custom "short form" that is more task-focused specifically for that block (basically, the existing menu edit form), and which also gets pulled into the "full" configuration form wholesale, making both the sidebar and the advanced view more useful at the same time. Once we have that pattern established once, we can then take it to all of the other blocks (e.g. Branding = actually edit the site name, slogan, etc. right there, in addition to toggling settings on/off). But we need to shoot for an MVP for 8.2 feature freeze, since time is rather short. (We can continue expanding to more blocks during beta.)
Fair point about wanting to see more of the long-term vision of how this pattern works when applied to more blocks, as well as things like Views, etc. We can work some more on that. Any use cases in particular that would be interesting to see mocked up? I'll also ask Kevin to elaborate on some of the thinking behind the design-specific questions.
Comment #12
tkoleary CreditAttribution: tkoleary at Acquia commentedAll blocks will be configurable in 8.2 but only the block instance (plugin) configuration.
For the moment it is simply pulling in the additional block instance configuration options declared by the block, but not the visibility settings, in all cases.
Visibility settings are something that will require a good deal more discussion and design, mainly because when you bring them into the context of a page they potentially introduce dangerous leaky abstractions, how we handle all of that complexity is really more in the scope of blocks and layouts initiative than this issue.
I believe that going forward we should move in that direction, but for this initial version, we are focussing on simply providing the hooks to be able to get configuration on to the page.
Site name has been removed from the MVP.
We are not special casing certain blocks just yet. That would be great, but we don't have the bandwidth to get that in in the next three weeks.
We should approach this just as we do in quick-edit. If the form is dirty present a warning modal (in this case the "modal" can appear inline at the bottom of the tray)
No, Cheppers testing showed that users were confused by that so we took it out for the time being. My personal view is that the confusion arose because of the *position* of the buttons on the top bar, which has also been changed.
Incidentally the pattern of showing the save only on a dirty form is *not* new to core. It's the pattern we use in quick-edit.
Comment #13
tkoleary CreditAttribution: tkoleary at Acquia commented@Bojhan
Additional answers.
This does give the user the ability to trigger editing of *anything* on the front end, since it provides editability for the configuration settings of every block. It does not give the user the ability to edit *all of the configuration* of every block. But the foothold of having the tray open up gives us a pathway to presenting more related configuration for that block.
In initial discussions with Ted Bowman and Tim Plunkett there are some tricky form API issues to navigate before we can bring those other types of configuration in, but that is more a technical than a UI issue.
As far as how the various configuration options coming from different forms present themselves in the tray, I have ideas, some of which you have already seen, but it's a design constraint that is going to take a lot of thinking from all of us and I'd love to see any design ideas you might have.
In this particular case there is no need for a "wizard flow" though we may need one in other cases where the user may want to "go back" to a previous step. Here the act of selecting a block temporarily "places" it on the page and switches to the configure form giving the user the opportunity to immediately preview and configure it. If the user clicks "cancel" in the configuration step, the block is removed, the tray reverts to the block list, and the user can try a different block.
There's no need for "save and continue" or "go back" here because, apart from selecting the block, there's no configuration the user has made that will be lost.
I don't follow your logic here. All of the regions have drop zones, so the user can alway just change their mind, remove it and drop it elsewhere, which is a trivial action. There is an also issue to add the region selector to the block config form (which would be defaulted to the region they started from). Does that solve your problem?
I *think* Angies comment clarifies this but let me know if you have more questions.
Agreed.
Comment #15
catchThe title of this issue says 'preview-first', but I don't see anything about adding actual previewing in the issue summary - everything is about directly editing configuration on the live site from the front-end. That gives you a chance to see changes immediately, but it's the opposite of preview.
Comment #16
webchickAttempting to update the issue summary with all of the follow-ups I know about to-date.
Comment #17
webchickAnd touché.
Comment #18
webchickComment #19
xjmComment #20
xjmI have a few overall comments on the plan. The one high-level thing that really struck me while reviewing the experimental prototype was just how confusing Outside In vs. Quick Edit was. The summary has two contradictory points:
That's down a ways in the summary. I think it should be in the proposed resolution. But then:
is listed as "Not in scope". That seems like mostly the same thing to me.
I actually think the end goal for the stable module needs to be to replace Quick Edit entirely. I see that there is #2781583: Reconcile the many forms of editing and configuring stuff (and address potentially redundant contextual links) but that is a much broader scope (and therefore more difficult to resolve) than the specific problem of Quick Edit vs. Outside In. Resolving that usability issue does not need to block the commit of the experimental module, but it was actually frustrating for me (even though I know how Quick Edit works!) so documenting it here. Others also commented about this on the prototype issue.
Overall, the design and behavior of Outside In is much more intuitive than Quick Edit currently is -- basically, it's what I've always thought Quick Edit should be like.
So, for me, one of the "Must have" issues would be:
"Make quick editing for content entities look and behave the same as Outside In"
and:
"Deprecate Quick Edit in favor of Outside In, and replace it in the Standard profile for new installs".
Also, in the same vein:
As above, while the Quick Edit maintainer's signoff is not required for an experimental prototype in #2753941: [Experimental] Create Outside In module MVP to provide block configuration in Off-Canvas tray and expand site edit mode, the signoff should be included for this overall plan if the plan does indeed include deprecating the original version of Quick Edit. So, I'm adding that to the summary.
I'm still processing many other specific points of review and will comment again later with what I think is missing from the roadmap; this specific point though seems like it would need more signoff than just mine.
Thanks for consolidating the known followups so far!
Comment #21
xjmComment #22
xjmAlso removed this from "Not in scope":
(It's not in scope for the experimental prototype, but it should in scope for getting to a stable release, which is what this issue is for.)
Comment #23
xjm@andrewmacpherson and @Wim Leers gave some feedback about accessibility that I'm not sure has been addressed in the initial prototype, so I am adding links to the summary here. That feedback should ideally have its own issues (as should any other comments from the prototype issue that were not incorporated). When we add experimental modules, we should clearly define what's out of scope for the first step by adding it to the later roadmap.
Comment #24
xjmComment #25
xjmComment #26
xjmRelated to #20. On #2782803: Rename Outside-in module to "Settings Tray" in the UI and in comments, @cilefen and @davidhernandez pointed out that the label "Outside In" is very much a Drupalism and does not describe what the module does. We can rescope that issue to be about what the name of the stable module should actually be (and not discuss it here), but David also pointed out that the module seems conceptually related to Quick Edit, Contextual Links, and Toolbar. @webchick also mentioned that she was unsure which component to file these issues against. In my ideal future, Contextual, Quick Edit, and Outside In would all be merged into a single component with a single, responsive, integrated user experience.
Comment #27
xjmComment #28
xjmComment #29
xjmComment #30
xjmAdding a number of followup issues to the roadmap based on my assessment of their importance. (Someone from the initiative team should probably confirm the must vs. should for this and other forthcoming followups, but it is a start.)
Comment #31
xjmComment #32
xjmComment #33
xjmAfter discussing with @webchick yesterday, I filed #2783509: Outside In's "Edit" toggle lets you do just about everything except edit your content for the usability problem described in #20, and am updating the summary to clarify WRT Quick Edit in general.
Also consolidating the two lists of signoffs. I think there may also be usability signoff already? If so let's update.
Comment #34
Bojhan CreditAttribution: Bojhan as a volunteer and commentedThere is, consider it signed off. Lets get this in :)
Comment #35
xjmMoving around some issues to "Must" and "Should" have based on feedback from @tkoleary, and adding @Bojhan's signoff to the summary. (Individual issues will still need usability review as we iterate on the design but we will tag them on a case by case basis, so I think we can remove the tag here.) Thanks!
Comment #36
xjmComment #37
xjmComment #38
xjmComment #39
yoroy CreditAttribution: yoroy at Roy Scholten commented@Bojhan has followed this a lot closer than I did, I'm just really happy to see that sidebar slide into view when I click a thing! Lots of design details to reconcile with this new pattern but overall really promising. Hope to see this land for 8.2, see you in the follow ups :-)
Comment #40
webchickAdding various follow-ups to the issue summary.
Comment #41
xjmMOAR followups.
Comment #42
xjmAnd clarifying one could-have point.
Comment #43
xjmOopsie, moving place block issue to the "not in scope" section.
Comment #44
xjmAdding an explicit statement about the timeline for completing followups. Using our rule of thumb of "two minors", if the prototype is ready in time to be included in 8.2.0-beta2, we'd want to have most of the followup work completed by 8.4.0-beta1 for the module to remain in core.
@webchick and I discussed earlier that if/when Outside In is validated as a paradigm for Drupal core, there might be a followup initiative to more wholly integrate the user experience for Outside In, Toolbar, Quick Edit, Contextual Links, Place Block, etc., but that would potentially take longer than a year to resolve and would be out of scope for this experimental module itself. The part that we must do in order for this module to become stable is to ensure at a minimum that the overall user experience does not regress when it is enabled with other stable modules. There are specific "must-" and "should-have" followups for that and we will add more as needed.
Comment #45
xjmComment #46
xjmComment #47
xjmComment #48
webchickJust as an update: we had our team planning meeting earlier today and put together a rough list of priorities for the next 3 weeks prior to RC1, which you can see with issues tagged 'Outside-in' and 'sprint'.
In general, before RC we're planning next to focus on:
Comment #49
xjmAnd adding the final batch of followups from @tedbow and @tim.plunkett to the summary.
Comment #50
xjmComment #51
xjmComment #52
xjmComment #53
Bojhan CreditAttribution: Bojhan as a volunteer and commentedI would personally focus on:
Any wins there have a major impact on perception.
Comment #54
nod_Comment #55
xjmComment #56
xjmComment #57
larowlan<plug class="shameless">
Child issue #2786195: Deleted block is not removed from the block list is ready for review</plug>
Comment #58
Wim LeersIsn't this confusing Quick Edit with Contextual Links?
Quick Edit is for editing content, not for editing configuration. Outside In AFAICT is all about configuration. Quick Edit is triggered via Contextual Links. Quick Edit works in-place. Outside In doesn't; it slides in a configuration form.
That being said, I think it's fair to dismiss what I just wrote as merely being "today's practical reality", we should definitely aspire to unifying all that.
So +100 to this!
This seems unrealistic and unreasonable. I don't think it'll be possible to finalize the architecture in 3 weeks, from the current PoC quality state it is in.
Comment #59
Wim LeersIn other words: I think Outside In is simply the logical next step after Quick Edit: more intuitive, in-place editing of configuration, not only of content. For most configuration, that requires a form in a sidebar, because there's nothing visible to manipulate directly. But for some configuration (e.g. site name), direct manipulation like Quick Edit's should be possible.
Finally, I want to note that one major reason Quick Edit didn't tackle configuration still exists: because the configuration system doesn't have built-in validation. For that, we have #2164373: [META] Untie config validation from form validation — enables validatable Recipes, decoupled admin UIs …. The reason Outside In currently does not have that as a hard blocker, is because it doesn't ever provide direct manipulation, it always uses a form. So it is able to reuse the validation logic in the existing config forms.
Comment #60
webchickHi there! This is an issue that we'd ideally like to move to the new "Drupal core ideas" queue when/if #2785735: [policy, no patch] Agile process for bigger changes in core (Part A: Ideation) goes through (hoping for the next week or two). If you could read that issue and provide your thoughts on that, that would be great!
Comment #61
webchickDoing that. :)
Comment #62
aspilicious CreditAttribution: aspilicious commentedComment #63
Gábor HojtsyWith the module in core, its hard to say this is not an active initiative.
Comment #64
xjmYep, agreed that this is an active initiative. The "Active initiative" component was not added until after this module, but our signoffs are documented in the summary.
@catch, @cilefen, @Cottser, @alexpott, @effulgentsia, and I checked on the status of this initiative yesterday, and I also briefly reacquainted myself with the scope in the summary. It has progressed a lot in the past four months! However, based on outstanding work like the high-level usability issue described in #2781583: Reconcile the many forms of editing and configuring stuff (and address potentially redundant contextual links), the needed accessibility improvements, etc., this module is still in alpha.
That said, it is my understanding that #2784443: Move off-canvas functionality from Settings tray module into drupal.dialog.ajax library so that other modules can use it is currently a priority for 8.3.0, since that change will involve API additions to stable core (and therefore can only happen in minor releases). Completing that prior to 8.3.0-alpha1 on February 1 will allow Settings Tray (as an experimental module in itself) to progress to beta anytime during 8.3.x's beta, RC, or patch phases.
Are there any other issues on the roadmap that would need to touch stable core? There is #2784593: Outside In: Move toolbar CSS changes into the toolbar module, but that should obviously only happen in the forward development branch once Settings Tray reaches RC in the active branch.
As a reminder, we need to plan to complete all the "Must have" issues and most of the "Should have" by 8.4.0-beta1 in August 2017.
Great work everyone!
Comment #65
xjmOh, I forgot to mention that @catch raised a question about the potential disruption between this initiative and the Workflow Initiative, but I confirmed that this is covered on the roadmap by the first point under "Should":
Comment #66
tkoleary CreditAttribution: tkoleary at Acquia commentedComment #67
webchickAdding a new must-have to the list, which is #2853208: [META] Determine best method ensure consistent theming of Off Canvas Tray. Required to determine how other themes/contrib modules will integrate with Settings Tray.
Comment #68
dmsmidtAdding a new accessibility issue: #2863222: Contextual Accessibility: Announcement broken after enabling editing mode a second time
Comment #69
tedbowMove #2784567: List "Quick edit" before "Configure" in contextual links while in Edit mode to a must have.
Talked to @dmsmidt who was working on that issue.
Fixing the link order makes tabbing with a screenreader much better so this moves #2784569: Settings Tray Accessibility: Improve tabbing to a "could have".
Comment #70
tedbowComment #71
yoroy CreditAttribution: yoroy at Roy Scholten commentedAt the very least this is a proposed plan :)
Comment #72
tedbowComment #73
tedbowMoved #2863222: Contextual Accessibility: Announcement broken after enabling editing mode a second time to a should have because this is an existing with the Contextual module not Settings Tray.
I tested and confirmed this existing without Settings Tray enabled and using Contextual module edit mode.
Comment #74
tedbowHere is an update on remaining Must-Have issues.
So 7 remaining Must-Have issues issues all are pretty close.
Comment #75
Bojhan CreditAttribution: Bojhan as a volunteer and commentedLets review this during the UX meeting?
Comment #76
tedbow@Bojhan sounds great I will be at the UX meeting next Tuesday
Comment #77
tedbowSeparated remaining and completed items into different sections in the summary
Comment #78
tedbowRemoving Full test coverage from remaining tasks. The module has test coverage for relevant classes.
It also has extensive Javascript testing for the new off-canvas dialog OffCanvasTest.php
And for the block editing functionality OutsideInBlockFormTest.php
As far as I can tell there is not another module in core that has this much functional javascript testing. This is probably because a lot of the other Javascript heavy modules in core such as QuickEdit and Contextaul were developed before Javascript testing was added to core or at least before it was mandatory.
Comment #79
tedbowAdded 2 more Should Haves
Comment #80
tedbowAssume this is concerned an Active Initiative because it has an experimental module in core.
Comment #81
tedbowMove #2781575: Determine ideal field order and visibility for "quick edit" blocks in off canvas tray to completed. I have marked it as outdated because the 2 remaining issue have been separated out to their own issues.
#2882729: In off-canvas block form hide Title input unless it will be displayed and change label to Block Title - Added a must have
#2888567: Add links to relevant off-canvas block forms to blocks to link to related configuration - added a should have. This could be done after the module is stable and will be an ongoing for any new blocks that get added to core.
Comment #82
tedbowMoved 2 more completed issue from remaining to completed in the summary!
#2761985: Refine/finalize design to discoverable Quick Edit feature
#2732443: Finalize the behavior for triggering view/edit/build modes from the toolbar (and fix the "disappearing toolbar")
Comment #83
tedbowComment #84
mallezieComment #85
tedbow1. Adding #2844261: Allow dialog links to specify a renderer in addition to a dialog type as a should have
2 .adding #2893937: Complete Handbook documentation for Settings Tray module as must have
Moving exploring #2732081: WI: Phase G2: Full-site preview with Workspace UI into completed. It looks like the using something that come down from the top of the page because it needs to be conceptually different from configuring things on the current site/workspace.
There is currently no code on the issue just concepts.
It could be explored later if there should be different positions covered in the off-canvas tray. Also the work here on #2844261: Allow dialog links to specify a renderer in addition to a dialog type would make it easier for that issue to current dialog system but use a different renderer.
Comment #86
tedbowComment #87
Gábor HojtsyI posted some feedback on the translations form issue (which I shared in person with Ted before, but should have posted publicly earlier). In short, I think not having that feature at the start is better then needing to support a half-baked feature for years. In detail at #2815709-19: Settings tray conceptually incompatible with configuration overrides such as translations.
Comment #88
tedbowComment #89
Wim LeersAdded #2784569: Settings Tray Accessibility: Improve tabbing and #2896143: Unintentional animation of the body while Settings Tray is installed as known accessibility problems.
Comment #90
yoroy CreditAttribution: yoroy at Roy Scholten commentedA broader, more general question: "Outside in" is an overall design principle for the Drupal user experience. Settings Tray is one feature that uses this principle to bring "the thing" and "editing the thing" closer to eachother.
With Settings Tray close to getting finished, I'd like to start thinking about what's next for making Drupal work more Outside in.
One thing that comes to mind is that we should look into simplefying and standardising the different "in-place" edit modes and interactions. There's a lot of dashed borders and pencils and "+" icons fighting for atttention in our current setup.
Another thing would be the work being done for the layout builder?
(not all to be discussed here, but putting this here as this seems to be the "Outside in meta" :)
Comment #91
Wim LeersIOW:
. +1 to that!Comment #92
webchickNotes from the committer meeting on July 20, where we discussed this and the other experimental modules' statuses.
The original goal was to stabilize this module by 8.4.0; however, given that there are a number of gates still outstanding (accessibility, documentation, front-end review, etc.), it seems that attempting to achieve this is out of reach.
Nonetheless, this module has seen tremendous progress and effort during this release cycle (similar to Inline Form Errors, another user-facing experimental feature with no data storage complications). Providing a standardized user interface pattern in core for in-place editing is also a priority shared by the Drupal product management team. Given these factors, the goal for Settings Tray has been revised to get the module to "beta" status by 8.4.0-alpha1.
In order to achieve this, we are refocusing on issues that stabilize the developer APIs; namely:
The hope is to provide a base from which contrib can experiment with incorporating Settings Tray UI in their modules, and allow another release for finalizing and polishing the user interaction pattern based on developer/end-user feedback, as well as meeting the other required gates.
Comment #93
webchickPer @WimLeers / @tedbow, adding #2782891: The Page Title block's title behaves in a confusing way with Settings Tray and the Help block incorrectly has Settings Tray styling to the must-have list in the issue summary (provides core/contrib with ability to "opt-out" of outside-in behaviour, so is part of API). Also edited my comment above to include it.
Comment #94
yoroy CreditAttribution: yoroy at Roy Scholten commented#2784495: Normalize block place and outside-in experiences already exists for the harmonisation bit :)
Comment #95
xjmAdded the documentation issue to the summary.
Comment #96
tedbowMoved completed items in the summary
Comment #97
tedbowComment #98
tedbowUpdating summary to reflect that some of the must haves will be easier after #2784443: Move off-canvas functionality from Settings tray module into drupal.dialog.ajax library so that other modules can use it which is RTBC
Regarding
from the summary. I am looking at other modules that went from experimental to stable to determine how to create this issue.
Comment #99
tedbowMoving #2784569: Settings Tray Accessibility: Improve tabbing to could have because in the issue it was determined by @dmsmidt that #2784567: List "Quick edit" before "Configure" in contextual links while in Edit mode
And @Wim Leers noted
I broke out #2915759: :focus is is hard to see for links in the off-canvas dialog from this issue because it could be addressed by solely CSS.
Also broke out #2915762: Return to tab position when exiting dialog opened from contextual link it is yet to be determined if this is Settings Tray specific problem or a general contextual links problem.
Comment #100
tedbowMoved #2784443: Move off-canvas functionality from Settings tray module into drupal.dialog.ajax library so that other modules can use it to completed!!!!!
Also worthy of note here, I have created a patch for #2784935: Use Backbone for client-side state management
It is Needs Review but all tests passing.
Comment #101
mgiffordWould be useful to know where to begin testing for this for accessibility. Having a few places where this has been added in this patch that we can quickly get to and evaluate how well it works in various assistive technology would be quite important.
Comment #102
tedbow@mgifford which part are you referring to?
The setting tray module has been marked stable. This issue was tracking accessibility issues #2928409: [META] Accessibility issues for Settings Tray and all the "must-haves" were completed.
Comment #103
webchickWe can probably honestly close this one out. Settings Tray made it to stable in 8.5, and if we have any further plans to improve, they'd likely become a sub-initiative of their own right.