Files

Plain <input type="file"> — no bridge call, no Everywhere API. If these open a native picker, the shells already handle file inputs for free.

Running in a browser

Any file

type="file"

Images only

accept="image/*"

Camera capture

capture="environment"

Multiple images

multiple

Documents

accept=".pdf,.txt"

What came back

Read in the page with FileReader, so this only fills in if the picker handed over bytes a web view can actually read — not just a filename.

Nothing picked yet.