Closed Bug 1825069 Opened 2 years ago Closed 2 years ago

Add Sentiment Collection component to AboutWelcome

Categories

(Firefox :: Messaging System, enhancement, P1)

enhancement

Tracking

()

VERIFIED FIXED
117 Branch
Iteration:
117.1 - July 3 - July 14
Tracking Status
firefox117 --- verified

People

(Reporter: jprickett, Assigned: aminomancer)

References

(Blocks 1 open bug)

Details

(Whiteboard: [omc])

Attachments

(1 file, 1 obsolete file)

In order to provide a better way to achieve in-product sentiment collection, we'd like to implement a way for sentiment collection to be deployed as a screen in messages as defined in this spec.

The scope of this bug is to implement a sentiment collection component to be initially displayed in the feature callout surface, allowing it to be configured for an about welcome screen in a message. This component should first support sentiment collection in the form of allowing a user to click on one of three in-surface buttons, for "didn't like", "neutral", and "liked". These buttons should be accessible, and should allow for their actions to be customizable through the message.

The message part of the message for sentiment collection could look something similar this:

sentiment_collection: {
  feedback_buttons: [
    {
      label: "This is a first sentiment collection button label",
      action: {
        type: "SET_PREF",
        data: {
          pref: {
            name: "browser.example.pref",
            value: "example-value",
          },
        },
      },
    },
    {
      label: "This is a second sentiment collection button label",
      action: {
        type: "SET_PREF",
        data: {
          pref: {
            name: "browser.example.pref",
            value: "example-value",
          },
        },
      },
    },
  ],
}
Assignee: nobody → rchan

(In reply to Jason Prickett from comment #0)

The scope of this bug is to implement a sentiment collection component to be initially displayed in the feature callout surface, allowing it to be configured for an about welcome screen in a message.

I read through the brief, but I have one question - Am I understanding the plan correctly, that we want to extend the aboutwelcome bundle so that any multi-stage spotlight/callout/aboutwelcome message can display a sentiment collection screen? And that we initially want to use this as a screen in feature callout messages, but it should also be compatible with spotlight/about:welcome messages for potential future use in other surfaces that use the aboutwelcome bundle?

Iteration: 113.1 - Mar 13 - Mar 24 → 113.2 - Mar 27 - Apr 7

(In reply to Shane Hughes [:aminomancer] from comment #1)

I read through the brief, but I have one question - Am I understanding the plan correctly, that we want to extend the aboutwelcome bundle so that any multi-stage spotlight/callout/aboutwelcome message can display a sentiment collection screen? And that we initially want to use this as a screen in feature callout messages, but it should also be compatible with spotlight/about:welcome messages for potential future use in other surfaces that use the aboutwelcome bundle?

Yep, the thought is that it would be nice to make this compatible with both Feature Callout and About Welcome so that we could also potentially use this during onboarding as well.

Iteration: 113.2 - Mar 27 - Apr 7 → 114.1 - Apr 10 - Apr 21
Attachment #9327213 - Attachment description: WIP: Bug 1825069 - Add Sentiment Collection component to AboutWelcome → Bug 1825069 - Add Sentiment Collection component to AboutWelcome
Attachment #9327213 - Attachment description: Bug 1825069 - Add Sentiment Collection component to AboutWelcome → Bug 1825069 - Add Sentiment Collection component to AboutWelcome r=#omc-reviewers
Iteration: 114.1 - Apr 10 - Apr 21 → 114.2 - Apr 24 - May 5

The bug assignee is inactive on Bugzilla, so the assignee is being reset.

Assignee: rchan → nobody
Iteration: 114.2 - Apr 24 - May 5 → 115.1 - May 8 - May 19
Assignee: nobody → shughes
Status: NEW → ASSIGNED

I'd like to reuse existing components and styles as much as possible for the new Sentiment Collection capabilities we're working. Rather than making a new "survey" capability that's siloed off from all the previous work we've done, we should try to use and improve standard components that we might use for non-survey uses. We did a lot of work for the theme tile but a lot of it is applicable to screen layouts unrelated to themes.

In this case, we want the ability to render...

  • an arbitrary number of radio buttons
  • possibly the ability to render multi-select boxes where the user can choose up to n items that interest them
  • possibly a "rating" picker e.g. choose n out of 5 stars

These all have sentiment collection in common but they rely on more generic UI elements. If we do all that implementation under the sentiment collection umbrella, we may have to waste effort in the future if we want to reuse those generic UI elements for something unrelated to sentiment collection.

This is probably gonna be easier to review and less likely to get bogged down in "development hell" if we split it into some smaller, more discreet tasks. So I'll file a couple other bugs and that way we can spread things out more evenly and incrementally build the various capabilities we want.

Depends on: 1833986

It would also be good to discuss what types of sentiment collection UIs we're interested in, so we can narrow down the scope of this work. The design doc has a lot of examples that rely on very diverse UI elements. For example, "group of radio buttons" and "choose up to n items" are both very close to the existing MultiSelect component. But radio buttons require one set of changes (to allow radios instead of checkboxes), while "choose up to n items" requires only a small change - the ability to set a max number of selections, and disable selecting more until one of the selections is deselected.

So, when we next discuss this, let's consider which templates we want to experiment with (and focus on implementing) first.

Iteration: 115.1 - May 8 - May 19 → 115.2 - May 22 - June 2
Iteration: 115.2 - May 22 - June 2 → 116.1 - June 5 - June 16
Iteration: 116.1 - June 5 - June 16 → 116.2 - June 19 - June 30
Attachment #9327213 - Attachment is obsolete: true
Whiteboard: [omc]
Iteration: 116.2 - June 19 - June 30 → 117.1 - July 3 - July 14

[Tracking Requested - why for this release]:
Patch needed for microsurvey experiment in Fx116

Priority: P2 → P1
Pushed by shughes@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b757366c6c17 Refactor AboutWelcome MultiSelect component to support sentiment collection. r=jprickett
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 117 Branch
Flags: qe-verify+

We've decided not to uplift these to 116.

I have verified this enhancement using the steps from the received "Test Plan" with the latest Firefox Nightly 117.0a1 (Build ID: 20230716213402) installed on Windows 10 x64, macOS 13.4.1, and Linux Mint 21.1. I can confirm the following:

  • All the elements from the Onboarding screens are correctly displayed.
  • Checkboxes stay checked when other inputs are clicked.
  • Only one radio button is checked at a time.
Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: