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タグにしがみつく必要はないんじゃないかなという気がします。

 

皆さんは、どう捉えてます?