alphagov / govuk-design-system-backlog

GOV.UK Design System Community Backlog
31 stars 2 forks source link

Reference numbers #85

Open govuk-design-system opened 6 years ago

govuk-design-system commented 6 years ago

What

When to use reference numbers, how to generate them and how to display them.

Why

Services that use this pattern:

Anything else

joelanman commented 6 years ago

Example from Make a claim to an employment tribunal

Ministry of Justice Claim number 0TZ9-2NTM. You've started a claim to an employment tribunal. To return to your claim you'll need your claim number (above) and memorable word

ignaciaorellana commented 6 years ago

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:

edwardhorsford commented 4 years ago

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?


Transaction reference numbers

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.

The problem

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.

Do you really need a reference number?

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?

The solution

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.

Make it clear what the reference is for

Don't rely on reference numbers

Referring to reference numbers

Design principles for good reference numbers

Choice of reference numbers

Showing the reference number to the user

Collecting the reference number from the user

Other useful principles

IXDA have a good discussion of reference numbers in the commercial sector.

Examples from GOV.UK

Register to vote

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:

HMnaZGug

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

hannalaakso commented 4 years ago

Thanks @edwardhorsford. Our team would be interested in having this pattern contributed if anyone in the community would like to pick it up.

edwardhorsford commented 4 years ago

@hannalaakso I'd be up for that, seeing as I contributed to much of the above stuff anyway. Any tips for getting started?

jbuller commented 2 years ago

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

adamliptrot-oc commented 2 years ago

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.

jbuller commented 2 years ago

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.

terrysimpson99 commented 2 years ago

Other issues I’ve come across when considering references:

adyhoran1 commented 2 years ago

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:

Reference number in Manage an academy transfer service

Reference number downloaded from Manage an academy transfer

We still need to: