-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[UX] Providing effective user feedback guidelines #198
Open
andersonjeccel
wants to merge
26
commits into
mautic:5.x
Choose a base branch
from
andersonjeccel:ux-feedback-guidelines
base: 5.x
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
ce36c26
[UX] Providing effective user feedback guidelines
andersonjeccel 60fe81b
vale fix
andersonjeccel 3734a5f
fix vale error for warnings and errors
favour-chibueze 8320743
fix vale suggestions
favour-chibueze 86f725e
fix vale .
favour-chibueze aae1291
fix vale
favour-chibueze 7172c2b
Update docs/design/feedback.rst
andersonjeccel c81eda8
Update docs/design/feedback.rst
andersonjeccel 429dfb8
Update docs/design/feedback.rst
andersonjeccel 7d2d0d4
Update docs/design/feedback.rst
andersonjeccel c1c101c
Update docs/design/feedback.rst
andersonjeccel 1455119
Update docs/design/feedback.rst
andersonjeccel 289a857
Update docs/design/feedback.rst
andersonjeccel d6aa187
Update docs/design/feedback.rst
andersonjeccel 754060c
Update docs/design/feedback.rst
andersonjeccel bd35d25
Update docs/design/feedback.rst
andersonjeccel 87b495e
Update docs/design/feedback.rst
andersonjeccel bb39bf3
Update docs/design/feedback.rst
andersonjeccel 69451d5
Update docs/design/feedback.rst
andersonjeccel 4b26a6c
Update docs/design/feedback.rst
andersonjeccel b9ec9cd
Update docs/design/feedback.rst
andersonjeccel 7e46f91
Merge branch '5.x' into ux-feedback-guidelines
favour-chibueze 6e7a2af
Update docs/design/feedback.rst
andersonjeccel bdae60d
Update docs/design/feedback.rst
andersonjeccel d99df14
Update docs/design/feedback.rst
andersonjeccel f010768
Update docs/design/feedback.rst
andersonjeccel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,3 +13,6 @@ vscode: | |
- errata-ai.vale-server | ||
- eamodio.gitlens | ||
- trond-snekvik.simple-rst | ||
|
||
ports: | ||
- port: 3000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
.. vale off | ||
|
||
Providing effective user feedback | ||
================================= | ||
|
||
.. vale on | ||
|
||
When developing features, it's crucial to ensure that Users receive clear feedback and guidance when certain information or data isn't available. Instead of hiding tabs or displaying zeroed metrics, for example, adopt a proactive approach to inform and guide Users. | ||
|
||
Fundamental principles | ||
---------------------- | ||
|
||
The principles of visibility, transparency, and guidance form the foundation of an intuitive and informative user experience. | ||
|
||
- **Visibility**: keep all functionalities visible, even when there's no data available. | ||
- **Transparency**: communicate that information is missing. | ||
- **Guidance**: provide instructions on how to obtain the data or activate the necessary settings. | ||
|
||
Visibility ensures that Users are aware of all available functionalities, even when they're not active or populated. Transparency builds trust by clearly explaining why certain information might be missing. Guidance empowers Users by providing clear paths for action and improvement. Together, these principles transform moments of frustration into solutions, helping marketing professionals complete their tasks. | ||
|
||
Practical implementation | ||
------------------------ | ||
|
||
The practical implementation of these guidelines in Mautic goes beyond avoiding blank screens. It involves creating a conversation with the User, anticipating their needs, and guiding them with minimal workload. Every informative message, call to action, or configuration tip serves as a contextual mini-tutorial, educating Users about the platform's capabilities while helping them overcome obstacles. | ||
|
||
When encountering situations where data is absent, follow these guidelines: | ||
|
||
- Replace empty areas or zeroed metrics with explanatory messages. For example: | ||
|
||
'There's no information about the devices used yet. This happens automatically when Users interact with your Campaigns.' | ||
|
||
- Include clear call to actions that guide the User on how to proceed. For example: | ||
|
||
'No Email activity? Start sending some Campaigns to populate this data!' | ||
|
||
- If the lack of data is due to incomplete configuration, provide direct guidance: | ||
|
||
'It looks like device tracking isn't active. Go to settings to turn it on.' | ||
|
||
- Help Users understand the value of the missing data: | ||
|
||
'Device information helps optimize your Campaigns for different platforms. Once this data becomes available, see detailed analytics here.' | ||
|
||
- Use icons, colors, or visual elements to indicate areas that need attention. | ||
|
||
This approach not only improves immediate usability but also accelerates the Users' learning curve, leading to more sophisticated use of the platform over time. Users don't feel 'stuck' when encountering areas without data, but are instead motivated to explore and fill those gaps. | ||
|
||
.. vale off | ||
|
||
'No Results' template | ||
--------------------- | ||
|
||
.. vale on | ||
|
||
Mautic includes a reusable template for displaying informative messages when no results are available. This template offers a consistent and flexible way to provide User feedback, with options for additional actions. | ||
|
||
Template structure | ||
------------------ | ||
|
||
.. code-block:: twig | ||
|
||
{% if tip is defined %} | ||
<div class="alert alert-info"> | ||
{{ tip|trans }} | ||
{% if link is defined and (href is defined or onclick is defined) %} | ||
<a class="ml-a" href="{{href}}" onclick="{{onclick}}">{{link|trans}}</a> | ||
{% endif %} | ||
</div> | ||
{% endif %} | ||
|
||
Parameters | ||
---------- | ||
|
||
The template accepts the following parameters: | ||
|
||
.. vale off | ||
|
||
- **tip** (required): display a translation string that contains the main message. | ||
- **link** (optional): a translation string for the link/button text. | ||
- **href** (optional): use the ``URL`` for navigation when clicking the link. | ||
- **onclick** (optional): JavaScript function to be executed when the link is clicked. | ||
|
||
.. vale on | ||
|
||
Functionality | ||
------------- | ||
|
||
If you've defined ``tip``, a ``div`` with the class ``alert alert-info`` that contains the translated message displays, if not then nothing renders. If you've defined `link` and at least one of ``href`` or ``onclick``, a link below the main message displays. Configure the link to navigate to a new page with ``href`` or execute a JavaScript function with ``onclick``. | ||
|
||
Usage example | ||
------------- | ||
|
||
To use this template in your code, you can include it as follows: | ||
|
||
.. code-block:: twig | ||
|
||
{{ include('@MauticCore/Helper/no-information.html.twig', { | ||
'tip': 'Mautic.segment.no.results', | ||
'link': 'Mautic.segment.add.new', | ||
'href': '{{ path('Mautic_segment_action', {'objectAction': 'new'}) }}' | ||
}) }} | ||
|
||
In this example, the template displays a message indicating that no Segments are available, with a link to create a new Segment. | ||
|
||
Why? | ||
---- | ||
|
||
It ensures a uniform presentation of 'no results' messages across the platform, providing consistency in the User experience. Its flexibility allows use in various situations, from empty lists to graphs without data, adapting to different contexts. The optional link makes the template actionable, guiding the User to actions that can resolve the 'no results' situation, promoting engagement and problem resolution. Additionally, support for internationalization translates messages into different languages, making the platform more globally accessible. | ||
|
||
Best practices | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Headings need to be unique across the entire docs, so I wonder if it makes sense to expand this to 'best practices for xxxx'? |
||
-------------- | ||
|
||
To maximize the effectiveness of this template, it's important to follow some best practices. Always provide a clear and informative message in the ``tip`` parameter, ensuring that the User understands the current situation. When appropriate, include a link to an action that can help the User resolve the 'no results' situation, promoting a more interactive and solution-oriented experience. It's crucial to use specific messages for each context, avoiding generic texts like 'No results found,' which may not provide useful information to the User. Finally, include all strings in the translation files to guarantee a consistent experience in all supported languages. | ||
|
||
This approach aligns with modern User experience (UX) design best practices. It incorporates principles of informative design, immediate feedback, and contextual guidance. Providing relevant information and actions at the exact moment and place where the User needs them creates an interface that not only reacts to User actions but anticipates and meets their needs. | ||
|
||
Clear messages and specific guidance reduce the number of support tickets related to User confusion or 'missing' functionalities. Additionally, standardizing the handling of empty or inactive states across the platform creates a more consistent and maintainable codebase. | ||
|
||
It's essential to note that, while general guidelines exist, customize implementation for each specific context. A message that works well for empty Email metrics might not be appropriate for a Campaign Report without data. Think critically about the specific context of each implementation and adapt the messages and call to actions accordingly. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Headings need to be unique, perhaps we should expand this to 'Why provide a uniform message in the absence of results?'?