HTMLの<a>タグと<button>タグは、用途によって使い分けが必要です。

<a>タグの使い方

用途
ページ遷移や外部リンクなど、別のURLへの移動に使用。
役割
リンクとして動作し、href属性で指定されたURLに移動。
アクセシビリティ
スクリーンリーダーでは「リンク」として認識される。

基本的に<a>タグを使用する際はhref属性とセットで指定し、ページ遷移にのみ使用します。

OK例:
<a href="example.com/sample-page">移動する</a>

NG例:
<a href="#">タブの開閉</a>

<button>タグの使い方

用途
フォームの送信、JavaScriptによる動作のトリガーなど、インタラクションに使用。
役割
ボタンとして動作し、type="button"type="submit"type="reset"が指定可能。
アクセシビリティ
スクリーンリーダーでは「ボタン」として認識される。
<button type="button" class="example">送信</button>

結論

以下のように使い分けるのが適切です。

  • ページ遷移や外部リンクなど、別のURLへの移動の際には「a」を。
  • タブの切り替えやモーダルウィンドウの開閉を発火させるケースでは「button」を。

なお、<input type="button">は基本的に使用する機会はないとお思います。存在を忘れましょう。