[sdk][UX] Confirmation in the header bar confusing

Bug #1408015 reported by Michał Sawicz
26
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Quick Memo
New
Undecided
Unassigned
Ubuntu Calendar App
Triaged
Medium
Nekhelesh Ramananthan
Ubuntu Clock App
Fix Released
Medium
Nekhelesh Ramananthan
Ubuntu UX
Fix Committed
Medium
Olga Kemmet
ubuntu-ui-toolkit (Ubuntu)
Fix Released
High
Tim Peeters

Bug Description

Imagine a form of some sort, you fill a few fields of data top-down, and at the end of it you need to tap in the header at the top to save/confirm.

Pair that with the header going off-screen to leave more screen for the content, you have to pull the header in first (and you need to know that's where the button will be).

An example of this behaviour is the calendar app when adding/editing an event. One other example (although that could be improved easily by auto-saving the new note as soon as it's edited) is the Quick Memo app, where when you create a note in the first place you need to tap the ✓ icon, but when you're editing, it's all auto-saved and you need to tap 〈 to go back to the list of notes.

I feel like we need to at least come up with clear guidance on what belongs in the header, and where a footer with buttons should be used (we have a way to stick something on top of the keyboard after all¹).

http://developer.ubuntu.com/api/qml/sdk-1.0/Ubuntu.Components.MainView/#anchorToKeyboard-prop

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: qtdeclarative5-ubuntu-ui-toolkit-plugin 1.1.1364+15.04.20141209-0ubuntu2
Uname: Linux 3.4.67 armv7l
ApportVersion: 2.15-0ubuntu3
Architecture: armhf
Date: Tue Jan 6 17:03:54 2015
InstallationDate: Installed on 2014-12-17 (20 days ago)
InstallationMedia: Ubuntu Vivid Vervet (development branch) - armhf (20141217-020204)
SourcePackage: ubuntu-ui-toolkit
UpgradeStatus: No upgrade log present (probably fresh install)

------- UX comment & resolution ------

The back button in the header should never be used as a confirmation but can mean CANCEL and not just BACK.
If an action or any alterations within the content/screen have to be confirmed/saved then it requires a visible call to action. This call to action sits by default in the header unless differently specified by designer/developer.

In all here described cases the UX can be improved easily by adding clarity to the UI and sometimes just adding a call to action.

The header can be fixed or can go off-screen the specification for that lies with the designer/developer. This means if I have an important action in the header which I want to present to the user all the time, then the header stays fixed, even if the content is scrolled.

Clock app:
When creating a new alarm by swiping from the bottom of the screen, the tick (confirmation) icon should be disabled. Only after interacting with the screen, by changing one of the parameters for example, the tick should be enabled. This will signal to user that there was a change and this needs to be confirmed. Even more informative is a simple word instead of the tick: SAVE. The SAVE option is a new addition to the header and wasn't available so far.
This concept is already documented in the UI - Toolkit spec which is at the bottom of this post. If user taps back before saving then the alarm won't be created. Additionally there can be visual feedback by adding the "feedback bubble" to the UI.
If the user taps back before saving the feedback bubble states, e.g. "Alarm not saved". If the tick icon is tapped, it can state "Alarm saved" (see Notification spec).
In the Repeat section the select all icon has to move one to the left and a tick or "save added". The behaviour will then follow as described above.

Note app:
There is nothing wrong with the note app approach but it is a custom made behaviour which is up to the developer. This person decided not to use our pattern and include a tick or SAVE into the header. There are many note taking apps on iOS which are not using their patterns either. This doesn't mean they are bad, they just work differently.

While it is ok to use a "Send Order" or a NEXT at the end of a form, for some instances and apps it won't be efficient. This means < CANCEL/BACK and CONFIRM (tick/save/done) can sit in the header but it is not possible to control apps which don't want to user out UI-Toolkit, hence the other solutions will exist too.

We are constantly improving the UI-Toolit and I will add the footer/toolbar idea to potential new projects for design.

Please see for reference the notification spec:
https://docs.google.com/document/d/1xDSZ_dnAMAlhgFnnyjJEibaITXjVLp1_pnj_tATNm9I/edit?pli=1#

Please see for reference the UI - Toolkit spec:
https://docs.google.com/document/d/1nFm8xiYhKXXuEO_IvMXoD0lASbYzYXva1BWMVanU3iw/edit#heading=h.a8gwztgmbhpq

Related branches

Revision history for this message
Michał Sawicz (saviq) wrote :
Revision history for this message
Michał Sawicz (saviq) wrote :

Ah, found the most confusing example: in the Clock app, bottom-swipe to alarms, create a new alarm (tap + in header), go into Repeats, select some repeat pattern... and you need to go 〈 to confirm it. Then, you go 〈 again... and the alarm is not saved. This totally breaks my mental model of the actions.

Revision history for this message
Giorgio Venturi (giorgio-venturi-deactivatedaccount) wrote :

Hi Saviq,

I totally agree this is confusing and we are currently working on it. The challenge is it seems we can't use a 'X' button which would make things 100% clear

Changed in ubuntu-ux:
assignee: nobody → Giorgio Venturi (giorgio-venturi)
status: New → Triaged
importance: Undecided → Medium
status: Triaged → In Progress
Revision history for this message
Tim Peeters (tpeeters) wrote :

We have two different meanings of 'back' here: Confirm and Cancel.

I think the back button on the Repeat page is confusing, it should show a 'checked' icon and it should be on the right side (right is confirm, left is back/cancel?), so perhaps the "check all" button needs to be moved somewhere else.

I don't think using an 'X' on the New alarm page will fix the issue on the Repeat page. Perhaps the Repeat page needs to be a Dialog instead?

Changed in ubuntu-ui-toolkit (Ubuntu):
assignee: nobody → Tim Peeters (tpeeters)
status: New → Confirmed
Tim Peeters (tpeeters)
Changed in ubuntu-ui-toolkit (Ubuntu):
importance: Undecided → Medium
importance: Medium → High
John Lea (johnlea)
Changed in ubuntu-ux:
status: In Progress → Triaged
Changed in ubuntu-ux:
assignee: Giorgio Venturi (giorgio-venturi) → nobody
assignee: nobody → Magdalena Mirowicz (magdalena-mirowicz)
summary: - Confirmation in the header bar confusing
+ [sdk] Confirmation in the header bar confusing
tags: added: usability
Revision history for this message
Cormac (cormac-wilcox) wrote : Re: [sdk] Confirmation in the header bar confusing

My 2 cents on the Header Bar (for all applications):
Whenever there is a BACK button on the Header Bar then that is all the header bar should be used for - going back to the previous page.
You can then expand the area of the Header Bar used to activate this "go back" to include the Header Bar text.
For a right handed person using their thumb to reach the BACK button is difficult enough on a 4.5 inch screen and requires a total hand shift to reach on a 5 inch screen - expanding the touch area to "go back" makes this a lot easier.

summary: - [sdk] Confirmation in the header bar confusing
+ [sdk][UX] Confirmation in the header bar confusing
Changed in ubuntu-clock-app:
status: New → Incomplete
importance: Undecided → Medium
Revision history for this message
Matthew Paul Thomas (mpt) wrote :

This morning I came across the headline, "4 iOS Rules to Break", and I thought, "I bet one of those is putting Cancel/Confirm actions in the header." Sure enough:

"On iOS, the Done button is often displayed in a navigation bar at the top of the page. Sometimes the form Submit button (whether called Submit or something else — for instance, Place Order) is also placed at the top of the form. This pattern has started to trickle into Android apps as well. Even in iOS apps we recommend against following this pattern for the simple reason that it goes against the natural top–bottom workflow on the page. As users fill in the form, they usually do it top to bottom. When they get to the end of it, they expect to find a Submit button right there, next to the last field they have completed. Most of the time, when people don’t find it there, they get confused and start looking around, not knowing what to do." <http://www.nngroup.com/articles/4-ios-rules-break/>

In Ubuntu it's even worse than in iOS, because (a) we use "⟨" to mean two different things and (b) the "✓" doesn't even have text like it does in iOS.

I think the rule should be simple: Never put cancel or confirm actions in the header.

Changed in ubuntu-ux:
assignee: Magdalena Mirowicz (magdalena-mirowicz) → Olga Kemmet (olga-kemmet)
Changed in ubuntu-clock-app:
milestone: none → 3.x.backlog
Revision history for this message
Olga Kemmet (olga-kemmet) wrote :

Updated bug description with design solutions hence marking the bug as Fix Committed.

description: updated
Changed in ubuntu-ux:
status: Triaged → Fix Committed
Revision history for this message
Nekhelesh Ramananthan (nik90) wrote :

@Olga, thnx for the design resolution. I can make the above changes to the clock app to resolve the issue. The one thing I am not clear about is the "feedback bubble" that you mentioned. I looked at the Notification Spec document and the feedback bubble shown there are ones shown by Unity8 and not something I have seen apps themselves being able to show. Could you elaborate a bit more on that?

Revision history for this message
Olga Kemmet (olga-kemmet) wrote :

@Nekhelesh The issue is that the new framework for notifications is not implemented yet. This means that there is no working feedback bubble. I am not sure if the notification system will be part of unity or run as a "standalone". The safest way for now is to consider the approach to show confirmation actions, e.g. in the header, by enabling or disabling them. Hope this helps.

Changed in ubuntu-clock-app:
milestone: 3.x.backlog → 3.5
assignee: nobody → Nekhelesh Ramananthan (nik90)
status: Incomplete → In Progress
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :

Fix committed into lp:ubuntu-clock-app at revision 329, scheduled for release in ubuntu-clock-app, milestone 3.5

Changed in ubuntu-clock-app:
status: In Progress → Fix Committed
description: updated
Changed in ubuntu-clock-app:
status: Fix Committed → Fix Released
Revision history for this message
Tim Peeters (tpeeters) wrote :

New designs are coming which makes this more clear.

Changed in ubuntu-ux:
status: Fix Committed → In Progress
Tim Peeters (tpeeters)
Changed in ubuntu-ux:
status: In Progress → Fix Committed
Changed in ubuntu-ui-toolkit (Ubuntu):
status: Confirmed → In Progress
Changed in ubuntu-calendar-app:
milestone: none → 0.5
status: New → Triaged
importance: Undecided → Medium
Changed in ubuntu-calendar-app:
assignee: nobody → Nekhelesh Ramananthan (nik90)
Revision history for this message
Tim Peeters (tpeeters) wrote :

This was cleared up by design. Cancel/confirm headers now look very different from headers with a back button. See, for example, the "Extending the header" example on https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1408015

Closing the bug for UITK.

Changed in ubuntu-ui-toolkit (Ubuntu):
status: In Progress → Fix Released
Revision history for this message
Tim Peeters (tpeeters) wrote :
Changed in ubuntu-calendar-app:
milestone: 0.5 → 0.6
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.