Page MenuHomePhabricator

ChipInput: Explore improvements to the editing experience
Open, Needs TriagePublic

Assigned To
None
Authored By
bmartinezcalvo
Aug 24 2023, 10:12 AM
Referenced Files
F37690331: image.png
Sep 11 2023, 12:47 PM
F37653096: image.png
Sep 4 2023, 10:55 AM
F37625892: Captura de pantalla 2023-08-24 a las 12.11.22.png
Aug 24 2023, 10:12 AM
F37625862: Chip edition_ position_02.png
Aug 24 2023, 10:12 AM
F37625850: ezgif.com-video-to-gif.gif
Aug 24 2023, 10:12 AM
Tokens
"Love" token, awarded by AAlhazwani-WMF.

Description

Background

In T343474 we implemented the editing of chips within the ChipInput. Since this was the MVP task, we decided to match the behavior of OOUI. There are a number of possible improvements we could explore to improve the editing experience. This task is about collecting feedback about the existing experience and ideating on potential solutions.

We need to consider the 2 types of ChipInputs we have:

Captura de pantalla 2023-08-24 a las 12.11.22.png (286×2 px, 44 KB)

Ideas

Editing a chip in place

In the current implementation, clicking a chip to edit it moves the chip content and cursor to the end of the input (after all the chips):

ezgif.com-video-to-gif.gif (86×600 px, 161 KB)

We could consider making it so that editing a chip maintains the position of the chip within the input (Option 2 below):

Chip edition_ position_02.png (485×1 px, 26 KB)

Design spec

Once a component spec sheet has been created in Figma, remove the note stating that the spec is missing and link to the spec below.

Component spec sheet

Open questions

Add here the questions to be answered in order to design and implement the component

Acceptance criteria (or Done)

Design

  • Determine if the existing experience is even an issue.
  • Explore the different design solutions and test them with users.
  • Design the final Figma spec sheet and add it in this task.
  • Update the component in the Figma library. This step will be done by a DST member.

Code

  • Implement the component in Codex

Event Timeline

CCiufo-WMF renamed this task from FilterChipInput: evaluate if we want to improve the edition experience to FilterChipInput: evaluate if we want to improve the editing experience.Aug 24 2023, 1:07 PM
CCiufo-WMF updated the task description. (Show Details)
CCiufo-WMF renamed this task from FilterChipInput: evaluate if we want to improve the editing experience to ChipInput: evaluate if we want to improve the editing experience.Aug 30 2023, 6:54 PM

Additional feedback provided by @AAlhazwani-WMF in T337095#9133238.

Pasting here feedback from @AAlhazwani-WMF:

some more feedback from the wikifunctions community about the chip input component, cc @bmartinezcalvo

  • I don't know how to expect the keyboard to work (how do you finish adding one and start adding another? space? tab? enter? how do I remove one? backspace? shift-tab to the x? how do I edit one? can I just move the arrow key into it or do I have to shift-tab? can I even edit it? will it even work properly via the keyboard?)
  • they're very likely to interfere with what I'm used to being able to do in input fields in some way or another
  • it's not obvious whether you can edit existing values at all, let alone how
  • the position of the x being dependent on the length of the text means it's in an unpredictable position on the screen, which ruins any sort of muscle memory you might have when using a mouse or touchscreen, you have to see where the x is before you can aim for it, and removing one repositions all the ones after it which makes removing more than one even harder

Additional feedback provided by @AAlhazwani-WMF in T337095#9133238.

Pasting here feedback from @AAlhazwani-WMF:

some more feedback from the wikifunctions community about the chip input component, cc @bmartinezcalvo

  • I don't know how to expect the keyboard to work (how do you finish adding one and start adding another? space? tab? enter? how do I remove one? backspace? shift-tab to the x? how do I edit one? can I just move the arrow key into it or do I have to shift-tab? can I even edit it? will it even work properly via the keyboard?)
  • they're very likely to interfere with what I'm used to being able to do in input fields in some way or another
  • it's not obvious whether you can edit existing values at all, let alone how
  • the position of the x being dependent on the length of the text means it's in an unpredictable position on the screen, which ruins any sort of muscle memory you might have when using a mouse or touchscreen, you have to see where the x is before you can aim for it, and removing one repositions all the ones after it which makes removing more than one even harder

JFYI consider this feedback in the context of Wikifunctions, where we use the chip input component for multi-word chips (thou i'm unsure if this is the best use of this component).

image.png (818×1 px, 123 KB)

the feedback might (?) change if there would be a recommendation to use this component also for single-word chips.

  • I don't know how to expect the keyboard to work (how do you finish adding one and start adding another? space? tab? enter? how do I remove one? backspace? shift-tab to the x? how do I edit one? can I just move the arrow key into it or do I have to shift-tab? can I even edit it? will it even work properly via the keyboard?)
  • they're very likely to interfere with what I'm used to being able to do in input fields in some way or another
  • it's not obvious whether you can edit existing values at all, let alone how
  • the position of the x being dependent on the length of the text means it's in an unpredictable position on the screen, which ruins any sort of muscle memory you might have when using a mouse or touchscreen, you have to see where the x is before you can aim for it, and removing one repositions all the ones after it which makes removing more than one even harder

JFYI consider this feedback in the context of Wikifunctions, where we use the chip input component for multi-word chips (thou i'm unsure if this is the best use of this component).

image.png (818×1 px, 123 KB)

the feedback might (?) change if there would be a recommendation to use this component also for single-word chips.

@AAlhazwani-WMF some of the feedback collected could be solved by giving the user more context on how to use the component. As we commented some time ago, you could use the helper text property in the Field to provide more info about how the user can create the chips.

  • I don't know how to expect the keyboard to work (how do you finish adding one and start adding another? space? tab? enter? how do I remove one? backspace? shift-tab to the x? how do I edit one? can I just move the arrow key into it or do I have to shift-tab? can I even edit it? will it even work properly via the keyboard?)
  • they're very likely to interfere with what I'm used to being able to do in input fields in some way or another
  • it's not obvious whether you can edit existing values at all, let alone how
  • the position of the x being dependent on the length of the text means it's in an unpredictable position on the screen, which ruins any sort of muscle memory you might have when using a mouse or touchscreen, you have to see where the x is before you can aim for it, and removing one repositions all the ones after it which makes removing more than one even harder

JFYI consider this feedback in the context of Wikifunctions, where we use the chip input component for multi-word chips (thou i'm unsure if this is the best use of this component).

image.png (818×1 px, 123 KB)

the feedback might (?) change if there would be a recommendation to use this component also for single-word chips.

@AAlhazwani-WMF some of the feedback collected could be solved by giving the user more context on how to use the component. As we commented some time ago, you could use the helper text property in the Field to provide more info about how the user can create the chips.

Let's try to consider designs that do not rely on helper text in order to know how to use this component. It may be helpful to rephrase the intention of this task as an exploration of the specific idea that came up in the team meeting about using animation for improved user understanding of the chip behaviour.

Let's try to consider designs that do not rely on helper text in order to know how to use this component. It may be helpful to rephrase the intention of this task as an exploration of the specific idea that came up in the team meeting about using animation for improved user understanding of the chip behaviour.

+1, free idea: what if, when you focus the chip input component, it adds an empty chip, with the cursor already active for typing?

image.png (988×2 px, 180 KB)

this definitely needs more thinking (especially around how to handle the focus, and the escape of focus), but it might be worth exploring.

It seems that we need to solve in this task different things:

  1. Improve the experience when editing an existing chip
  2. Explain to the user how they can create a chip

@CCiufo-WMF should we separate these 2 topics in different tasks? Or should we solve both them in this task?

It seems that we need to solve in this task different things:

  1. Improve the experience when editing an existing chip
  2. Explain to the user how they can create a chip

@CCiufo-WMF should we separate these 2 topics in different tasks? Or should we solve both them in this task?

IMO Let's make this task concentrate on solving 1 in a way that we don't need to solve 2 (in a similar way that we don't have help text for using buttons)

CCiufo-WMF renamed this task from ChipInput: evaluate if we want to improve the editing experience to ChipInput: Explore improvements to the editing experience.Sep 13 2023, 6:58 PM
CCiufo-WMF updated the task description. (Show Details)

It seems that we need to solve in this task different things:

  1. Improve the experience when editing an existing chip
  2. Explain to the user how they can create a chip

@CCiufo-WMF should we separate these 2 topics in different tasks? Or should we solve both them in this task?

IMO Let's make this task concentrate on solving 1 in a way that we don't need to solve 2 (in a similar way that we don't have help text for using buttons)

Agreed. I updated the task description to reflect this (about editing specifically, and also that there are different improvements we could explore). I'll create a separate task for improvements to the experience of adding new chips.

The exploration for both of these tasks should involve some element of user research/testing. We need to confirm that:

  1. The existing experiences are even an issue, and;
  2. What the best improvements are.

Sorry for continuing to move this conversation around. Feedback or ideas about the UX of adding a new chip should now go to T346284: ChipInput: Explore improvements to the experience of adding a new chip. This task is about the editing experience of the ChipInput only.