buttonであるべきかinputであるべきか、それが問題が
やあやあ。
最近HTMLを復習してるよ。
で、その時思ったことを適当にメモしてみようと思う。
今回のお題は
「ボタンを作成するとき、button要素であるべきか、input要素であるべきか」
inputタグ | buttonタグ |
私が昔、ゴリゴリとHTMLを手書きしてた頃は、ボタンと言えばinputタグで書くのがセオリーだった気がしています。最近は、buttonタグを使うようにしている文献をよく見る気がします。
(inputタグでボタンを作るというセンスはHTML4以前の感覚なので、今となってはかなり古いものであるという認識です。私が最も活発に手書きしていた時代は、ページデザインはtableタグで行うのが基本だった時代ですので、かなり古い話ですね。その後、デザインはdivタグにidを振りまくって、CSSでムギュっとするのが基本の時代が来ましたが、最近はHTML5でもっとタグの種類が増えて、文章構造がさらに細分化された認識を受けます)
実挙動について
実挙動はどちらも同じように振る舞っていると、私は感じています。
ただ、IE7以前はbuttonタグの解釈にバグがあったそうなので、レガシーなシステムでは考えた方が良いのかも知れません。
<IE7のバグは以下のようなものでした> <button type="submit" name="buttonName" value="hoge">foo</button>
このタグで、通常はPOSTの値がbuttonName=hogeとされるべきところが、
buttonName=fooとされてしまっていたようです。
しょっぱいですね
もうIE7以前は古いブラウザですし、何処かで割り切ってしまっても良い気はします。ただ、MSはIE7(2006年)、IE8(2009年)のサポートを2016年1月までするつもりなので、「まだ気が早いんじゃないか?」と言われる事案も少なくない気がしてしまいますね。
一般向けにオープンするwebサービスなのであれば、今さらinputタグにしがみつく必要はないんじゃないかなという気がします。
皆さんは、どう捉えてます?