This may have already been covered, but I’ll relay my experience with publishing on itch.
You can upload just a file that people will download and play. This gives no “play online” in browser option.
You can select “this file will be played in the browser”. For this, the first file you must upload should be either
- an index.html file which it will play on the page just as it is, like a plain Twine file.
- a zip file with an index.html file in the top level that the site looks for and plays on the page. This can have and reference supporting folders inside the zip file for such things as images and sound.
The version played online I believe has to be the top main file. After that, you can also upload just the bare gblorb, or an offline version for download and as many other feelie or support files you want. None of these will be involved in the top/first “play online” html or zip.
For Cannery Vale, (not Inform, but it has a supporting folder of media and additional downloads) I have the “play online” version at the top, then a downloadable version below (which is exactly the same thing, but available for download) and then a prototype I tested in Inform 7 that is also a downloadable file. Obviously you can only mark one version as playable online.
(The second version is marked “executable” but it gives the player a folder inside which there is an index.html file they must open in the browser - it includes a readme explaining this.)
My workflow for doing this: I set up a “publish” folder which contains the support/image folders, any “read me” texts or other support files and I put them there. Whenever I build the game, I publish it to and overwrite that same index.html file in the publish folder. If I add or remove media like sounds or graphics, I have to change that manually, often I will copy it from my main folder into the publish file when things change, but this isn’t as often as I build the html.
Then I zip everything in the publish folder, rename it, and upload that zip file to itch.io as the “Play Online” version. I keep the zip folder name the same so it knows to overwrite what I already have there.
For Inform 7, you publish with an interpreter and a website. It creates the entire structure in the “Release” folder. It also creates an index.html which is the “website” Inform publishes, and play.html which is the direct game file. You can switch play.html to index.html if you want the game to start immediately without showing inform’s published website, but that’s a matter of preference.
With Fair I just left it as it is, the index.html is what Inform publishes, and that site gives handy links to everything you can publish with, such as feelies, and directs to play.html when the player clicks “Play In-Browser” which is the browser version of the game.
Here’s the structure of what is uploaded - I believe I just compressed the “Release” folder Inform produces inside which itch finds index.html:

(I believe I just zipped and uploaded Release, and did “change display name” to Fair.zip so it doesn’t show “release” as the filename on the website, but I could also compress everything in the “Release” folder as “Fair.zip”. It works as long as index.html is in the top level for it to find.)