File upload

File upload is the interface pattern that allows users to select and submit files to a system. Its design must communicate file constraints, provide progress feedback, and handle errors clearly.

What is file upload in UX design?

File upload refers to the interface pattern and components that allow users to select files from their device and submit them to a system. Implementations range from the native browser file input element, which triggers the operating system's file picker dialog, to drag-and-drop zones that allow users to drop files directly onto the interface, to multi-file upload interfaces with preview, reordering, and individual file removal. File upload is used in document management systems, image uploaders, attachment fields in forms, and any product that requires users to provide files as part of their interaction.

What must a file upload interface communicate?

Before the upload begins, the interface must clearly communicate which file types are accepted, the maximum file size limit, and whether single or multiple files can be uploaded. These constraints should be visible before the user attempts an upload, not revealed only through error messages after a failed attempt. During upload, a progress indicator should communicate that the upload is in progress and how much has completed, particularly for large files where the wait is significant. After upload, either a success state confirming what was uploaded or a specific error state explaining exactly why the upload failed and how to fix it.

How to make file upload accessible?

The native HTML file input element is keyboard accessible by default: users can focus it, press Enter or Space to open the file picker, and the selected file name is announced to screen readers. Custom drag-and-drop upload zones must also provide a keyboard-accessible alternative, typically a button that opens the file picker, because drag-and-drop is not operable by keyboard or many assistive technologies. File names and upload status must be communicated to screen readers. Error messages must be specific and programmatically associated with the upload control so that screen reader users encounter them in the correct context.

Related terms

Related guides