リンクのように機能するHTMLボタンを作成したいと思います。したがって、ボタンをクリックすると、ページにリダイレクトされます。できるだけアクセスしやすいようにしたいと思います。
また、URLに余分な文字やパラメータが含まれないようにしたいと考えています。
どうすればこれを達成できますか?
これまでに投稿された回答に基づいて、私は現在これを行っています:
<form method="get" action="/page2">
<button type="submit">Continue</button>
</form>
しかし、これの問題は、SafariとInternet Explorerでは、URLの末尾に疑問符文字が追加されることです。URLの末尾に文字を追加しないソリューションを見つける必要があります。
これを行うには他に2つの解決策があります。JavaScriptを使用するか、リンクをボタンのようにスタイリングします。
JavaScriptの使用:
<button onclick="window.location.href='/page2'">Continue</button>
ただし、これには明らかにJavaScriptが必要です。そのため、スクリーンリーダーからのアクセスは困難です。リンクのポイントは、別のページに移動することです。したがって、ボタンをリンクのように振る舞うことは、間違った解決策です。私の提案は、リンクを使用して、ボタンのように見えるようにスタイルを設定することです。
<a href="/link/to/page2">Continue</a>
GET
失敗すると予想されるページへの投稿を拒否するコンテキストでは失敗します。リンクを使用することは、ボタンのようにアクティブになっているときに「スペースバー」に反応しないという警告で理にかなっているとまだ思います。また、一部のスタイルと動作は異なります(ドラッグ可能など)。真の「ボタンリンク」エクスペリエンスが必要な場合は、サーバー側でURLをリダイレクトし?
て削除することもできます。
?
URLの問題に誰も対処していないようです。これは、フォームがtype="GET"
であることが原因です。これをに変更するtype="POST"
と?
、URLの最後のが消えます。これは、GETがURL内のすべての変数を送信するため?
です。