In my notes I’d written “Gmail does this well”. I looked today. No it does not.

To add attachments in Gmail you either drag them into the compose area, which makes logical sense but isn’t particularly discoverable, or in the old compose interface you drag them to the line that contains the “Attach a file” option, which is kind of semi-guessable if you know that Google like implementing draggable targets for files (you can drag files into Google Image Search as well; again, there’s no hint on the page that this is possible). As previously discussed, as a voice user I’m unlikely to speculatively move the mouse around in case you happen to have implemented a useful feature. (However I don’t strictly need to, as there’s a traditional button interface to adding attachments in GMail; also, Dragon Naturally Speaking on Windows is supposed to have better built-in support for Gmail than Dragon Dictate for Mac.)

The more general issue here is one of discoverability, which is a long-standing interface design problem, sometimes thought of as a tradeoff between the interface being too busy and helping the user learn how to use it. There’s an interesting article discussing clutter versus discoverability by John D. Cook (which I’d recommend checking out even if you don’t care about this because it’s got a picture of a nice sailing vessel at the top).

My traditional position on this has been that simple features should be highly discoverable, but complex or expert features can be hidden and require reading documentation to find them. By this guideline, Gmail is actually doing the right thing — attaching files to an email is a rarely-used feature, and in any case there’s an entirely discoverable interface option to do it. (There isn’t a keyboard shortcut for it, however, which is a shame; it means that expert mouse users get better support but expert keyboard users do not.)

However if I had started using Gmail only by voice, there’s a good chance I would never have discovered that I could drag and drop attachments, which even with the MouseGrid dance is often faster than having to navigate the file system through the “open” dialog (which tends to involve a lot of tabbing backwards and forwards between different controls to get where you want to go).

To take full advantage of all web technologies these days requires considerable development time, so – particularly for startups – there’s a good chance you won’t have got to all the details yet. That means I’ll probably assume you haven’t done sophisticated things such as dragging files into your web application, unless you make it obvious. On the other hand, for rare operations there’s a decent argument for not shouting about it.

Simple advice: there isn’t any here. You’re going to have to think, and think carefully. (It’s an interface issue, there’s really no getting away without thinking.)