Download Behaviour Design Review
This is work in progress. Comments and suggestions are welcome.
This is a design and usability review of Epiphany's download functionality. I wrote it because I've often found this functionality to be confusing in the past.
'Automatically download and open files' checkbox:
- It does not indicate what happens when the checkbox is unchecked.
- It describes two actions (download and open) for a single checkbox. (Do neither of these things happen when the checkbox is unchecked?)
- The word 'Automatically' is unecessary and potentially confusing. It only makes sense when the inverse, manual state is communicated.
- The relationship between this checkbox and the download directory option is unclear. If downloads are not automatic when the checkbox is unchecked, does that mean that they do not go to the specified download directory?
- Does the application-wide setting of this preference fit with patterns of usage? Is the desire to have downloaded files opened a personal one, or something that varies according to the task at hand? If it is the latter, then it might be better to enable users to decide whether to open the file on a per download basis.
Automatic download behaviour
When automatic downloads are enabled and a known mime type is selected for download:
- The file is downloaded without requiring user intervention.
- The file is saved to the download directory and then opened using the default application for that mime type.
- This behaviour does not communicate where the file has been saved. The user could think that the file is in a temporary location and needs to be saved via the application, for example.
Non-automatic download behaviour
When automatic downloads are disabled or the file is of an unknown mime type, the following dialog is opened:
'Save As...' opens a save as dialog. 'Download' downloads the file to the download directory. If the Download option is selected, the download directory is opened in Nautilus once the file has been downloaded (unless the download directory is the Desktop, in which case it isn't: see bug 383698). This is done in order to alert the user to the location of the downloaded file (see bug 138876).
- The 'Download' button does not indicate where the file will be saved.
The presence of both 'Download' and 'Save As...' is confusing (see bug 341666), since they both seem to refer to the same thing - they both result in the file being downloaded.
- The ability to affect whether Nautilus opens on download is not included in the preferences.
- The need to inform the user of the location of the downloaded file is present in both in automatic mode and in non-automatic mode when 'Download' is pressed, but it is only addressed in the former instance.
- Files are checked to see if they are safe or not. If they are, the download modal dialog is displayed. This logic is hidden from the user, however. A user may find it useful to be made aware of files which are considered to be potentially unsafe.
- Each download triggers the opening of a new window (Nautilus or some other application). This can cause interuptions when the user downloading a series of files which are not to be viewed straight away.
Change the Download section of the preferences to:
When 'Save files...' is seleceted: files are downloaded without a dialog opening.
When 'Always ask...' is selected: a 'Save As...' dialog is opened for each download.
If the file in question is potentially unsafe inform the user and ask for confirmation (using GtkInfoBar): 'You are trying to download a potentially unsafe file. <'Download anyway'> <'Cancel download'>
If 'Download anyway' is selected, the file is either downloaded automatically or the 'Save as' dialog is opened, depending on the prefs. The save as dialog should default to the last used directory.
Display a notification bubble when each download has finished. This would inform the user of the location of the downloaded file: '<file name> has finished downloading to the <Download directory>'. It would also provide buttons to allow the user to open the file (this would only be displayed for known mime types) or to open the download directory.
Overall, this approach has a more transparent relationship between interface and application behaviour. It would also have the following advantages:
- Avoid confusion in the preferences.
- Clearly communicate where files have been downloaded to.
- Avoid interupting the user when they do not want to open the file straight away.
- Advertise Epiphany's file checking functionality and inform the user of potential security risks.
- Avoid unnecessary modal popup windows.