The semantics inherent in HTML elements tell us what we’re supposed to use them for. Need a heading? You’ll want a heading element. Want a paragraph? Our trusty friend
is here, loyal as ever. Want a download? Well, you’re going to want… hmm.
What best describes a download? Is it a triggered action, and therefore should be in the domain of the <button> element? Or is it a destination, and therefore best described using an <a> element?
Building a Good Download… Button? is a post from CSS-Tricks