Use <a /> when you need a link (the a of anchor). Use <button /> when you need a button.
That said, if you really need to expand an <a />, add the CSS attribute display: block; on it. You'll then be able to specify a width and/or a height (i.e. as if it were a <div />).
add padding to the CSS class of anchor tag. If required, add padding-top, padding-bottom,... individually according to the clickable area you want. It worked for me.
use position css property and set top,right,bottom and left to Zero.. set z-index if needed
in my case in i used text-indent because i dont want to show link "text" but if you want to show link "text" , just don't use text-indent
For me the padding solution wasn't good, as I was using border on the button, and would've been hard to modify the markup to create an overlay for the touch area.
So I just used the :before pseudo element and created an overlay, which was perfect in my case, as the click event propagated the same way.
Big thanks to the contributors to the answers here, it pointed me in the right direction.
For the Bootstrap4 users out there, this worked for me. Sets the a link (tap target) to correct size to pass the Lighthouse Site Audit on mobiles.
<span class="small">
<a class="d-inline position-relative p-3 m-n3" style="z-index: 1;" href="/AdvancedSearch" title="Advanced Site Search using extra optional filters">Advanced Site Search</a>
</span>