Open govuk-design-system opened 6 years ago
Example from Make a claim to an employment tribunal
After a meeting with @owenm6 and the GOV.UK Design System team to talk about authenticating user patterns, we've agreed that what's needed to do is ask the community in government about ‘reference numbers’ (as one example to start) to understand:
I still refer teams to the Dropbox Paper guidance on reference numbers when they come to designing / implementing reference numbers.
Copied over below, so it doesn't get lost. It would be great to include some of this in the design system - possibly in the patterns section?
Guidance on transaction reference numbers, tracking numbers, invite codes.
Note: this guidance applies to system generated reference numbers, not user-generated references. For example: whilst systems should be forgiving of users entering in reference numbers, they should be very strict when accepting users' passwords.
Some services have found that users expect to get a reference number as part of the process, and don't feel they are 'done' until they receive one.
Before you decide to design a reference number, ask if users really need one. Could the same be achieved with the user's name or email address? If the user has a login, can they see their transaction status and history online?
If a reference number is necessary, provide a reference that is easy for users to identify, record and quote when needed.
Most users will never need the reference number. But when they do, make sure you've given them a reference that is easy to use.
Choice of reference numbers
Showing the reference number to the user
Collecting the reference number from the user
IXDA have a good discussion of reference numbers in the commercial sector.
The early prototypes of Register to vote did not provide a reference number at completion. And the majority of test participants asked for a number. Once we added a reference number, test participants specifically mentioned the number as a signal that they had finished, and as something they would want to keep (by copying the page to a document, sending the page to email, or taking a snapshot of the page on their phone, etc.).
Our completion page currently looks like this:
The reference number is the first six characters of a SHA-256 hash encoded to hexadecimal. By taking the first six characters we get about 16 million values (we need about 700,000). Using part of a hash makes it unlikely that an error in one character will produce another valid reference number.
A six character reference number is easy to copy and quote. References will contain only the digits 1 through 9 and the letters A through F, avoiding tricky letters like I, O and L.
Example: the Post Code
Thanks @edwardhorsford. Our team would be interested in having this pattern contributed if anyone in the community would like to pick it up.
@hannalaakso I'd be up for that, seeing as I contributed to much of the above stuff anyway. Any tips for getting started?
I wrote a blog post about codes to get into a private beta system that has relevance here: https://hodigital.blog.gov.uk/2016/07/08/make-invitations-to-beta-services-better/
Make the code easier to enter In this example, it took at least 24 screen taps to enter a 12 character code. We could reduce this by:
Using just enough characters to get the number of combinations required Using only letters or numbers. If you must use both, put the numbers at the end to minimise the need to switch keyboard type. You could also set the keyboard type automatically Providing the code in upper case for readability but letting the user know that lower case can be used when typing it Avoiding the use of similar characters, such as 1, I and l; O and 0; B and 8. Also 6,5 and 9 can be hard to tell apart for those with a visual impairment Using simple words or even a phrase, such as ‘big red car’, instead of a code. There are libraries for developers to generate such things
I'd add "avoid repeating characters" (such as in "R-HYFFFFFFGTF") as it can be difficult to determine how many there are when transcribing or reading out over the phone.
Adam's post prompted me to do a search about something I'd been wondering about. I found this https://www.wired.com/story/2fa-randomness/
Just How Random Are Two Factor Authentication Codes? Have you noticed patterns in those ephemeral, six-digit tokens? There's a reason for that.
Other issues I’ve come across when considering references:
Here's a reference number format we created for our Manage an academy transfer service:
reference-number_name-of-outgoing-trust_name-of-incoming-trust_project-template
Here's hat it looks like in our service and exported from our service:
We still need to:
What
When to use reference numbers, how to generate them and how to display them.
Why
Services that use this pattern:
Anything else