Tim POnly p calendar controls if they match the users likely mental model of the date they're being asked to enter. For example - a calendar control is not appropriate for date-of-birth because people know these by heart. However, if the day of the week or week of the month is relevant then a calendar control might be appropriate.
Hi Michael - it's a tricky one. I'd always try to stick to a single green button per page that moves the user on to the next page. For cases like the above you can use links or try the grey style for secondary actions. Not sure if the '+' prefix is that communicative in the above example though, and it's worth checking whether words like 'Upload' fit with your user's mental model of what they're doing. Ed Horsford may be able to help here as he's been working on the usability of file attachments a fair bit.
Let users upload .csv files, .xls files, .xlsx files, .ods files, etc. – but convert them to CSV internally before you start trying to read the contents.
Not everyone has Excel, and the tools that people are already using might not export to Excel. Also, it’s not an open standard.
File upload UI
Put a button on the page that opens the system file picker. As soon as the user has chosen the file, submit the form for them and redirect them to a page that shows the contents of the file, along with any errors. There’s a little GIF of this here: https://github.com/alphagov/notifications-admin/pull/424
On the page where you show the contents of the file, have a re-upload button (in case anything is wrong).
Give users a single, clear error message that tells them what to fix. This is the most important thing. It’s better to make users step through each potential error one at a time than bombard them with all the errors at once. You can see screenshots of various examples here: https://github.com/alphagov/notifications-admin/pull/646
It’s much easier to do this when users are uploading one file at a time.
Users should be allowed to enter phone numbers in whatever format is familiar to them. You should be forgiving of additional spaces, hyphens, brackets and dashes, and be able to accommodate country and area codes.
Play back phone numbers in the format they were given
This will help people recognise numbers that they have a particular way of formatting.
If the average time to complete a transaction is more than you can reasonably expect your users to spend in a single session, then you'll need to provide a way for them to save their progress.
The same goes if the session is likely to be interrupted for some reason. For example, if the user is suddenly asked for information which they might not have immediately to hand (a way to mitigate this is to warn users if they're going to be asked for that kind of information).
Saving progress does not necessarily mean you require user accounts, logins, email validation etc. For simpler transactions that don't store personal information you might be able to store the data in the URL itself. The user then simply has to bookmark that URL.
For more complex transactions that don't store personal data, you might be able to offer users a unique and hard-to-guess URL that they can use to get back to their session.