I personally suggest web devs to install axe devtools [0] in their dev browser profile. Also, LLMs have gotten to the point that even the small local models can help a lot [1].
[0]: https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/
[1]: Gemma 4: https://pastebin.com/Mjm1Vx4C
There's an argument that links are "portals" that take you somewhere, while buttons cause some action to happen, Whether you treat a file as a resource (which your browser just chooses to save on disk instead of rendering on screen), or whether you treat it as an explicit "download" action, is a matter of semantics I guess.
but traditionally, references to files are links, and it is up to the browser what to do with them (whether to just download them or to download and then display them). that's what all links are. that's the whole point of hypertext. every link causes the browser to make a request to a server and fetch something. buttons are for activating things, not for downloading.