質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

760閲覧

<button>タグは必要か?

theearth

総合スコア11

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/11/13 16:17

HTMLの構造でアドバイスを頂きたいです。

このようなタブメニューを考えているのですが、

html

1<ul class="menu"> 2 <li data-menu="one">メニュー1</li> 3 <li data-menu="two">メニュー2</li> 4</ul>

メニューなら下記のように<button>はあった方がいいでしょうか?

html

1<ul class="menu"> 2 <li><button type="button" data-menu="one">メニュー1</button</li> 3 <li><button type="button" data-menu="two">メニュー2</button</li> 4</ul>

前者のように<button>なしで普通に<li>にクリックイベントを持たせる次の書き方はやめた方がいいでしょうか?

$( document ).on( 'click' , 'ul.menu > li' , function() { var menu = $( this ).attr( 'data-menu' ); $( '.contents' ).css( 'display', 'none' ); $( '.contents[data-menu=" '+menu+' "]' ).css( 'display', 'block' ); })

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

KojiDoi と同意見です。

HTML5 的な正しさを求めて button の有無に悩んでいると思いますが、
自分が表現したい構造が正しく表現されている事が HTML 構文としては正解なので、ボタンでない認識なら button は省略して問題ないです。

そういう意味で言うと、ただのリストアイテムでもない は、リストであるもののコンテンツの表示/非表示を切り替えるナビとしての役割があるという認識だと思うので、ulnav で括る事で button を省いた後ろめたさは消えるかもしれません。

HTML

1<nav> 2<ul> 3<li>メニュー1</li> 4<li>メニュー2</li> 5</ul> 6</nav>

投稿2019/11/14 01:10

編集2019/11/14 01:12
iss

総合スコア506

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

theearth

2019/11/14 01:45

>リストであるもののコンテンツの表示/非表示を切り替えるナビとしての役割 なるほど!見事な解決策です。ありがとうございます。 teratailのプロフィールメニューもbuttonなしなので、なしでいこうと思います。
guest

0

WAI-ARIA Authoring Practices の例にタブがあります。
https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-2/tabs.html

ルールではないので必ずしもこの通りに作る必要はありませんが、指針にはなるのではないでしょうか?

投稿2019/11/14 01:00

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

theearth

2019/11/14 01:46

なるほど、buttonは付けつつ、role="tab"を書くんですね。指針として大変参考になりました。ありがとうございます。
guest

0

ボタンでもただのリストアイテムでもなく、

という認識であるならば、buttonタグを追加する理由がないと思います。

投稿2019/11/13 22:04

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

theearth

2019/11/14 00:51

タブメニューはどちらでもないですよね?どう思いますか? ボタンではないでしょうし、リストアイテムというと ・記事1 ・記事2 のようなリストをイメージするので、タブメニューの ・メニュー1 ・メニュー2 とは違う印象を持っています。 メニューはリストアイテムではない印象?です。 もちろん主観的な印象なので、一般論ではどうかと気になっています。 「>という認識であるならば」という素人の認識はさておき、R総合1位さんとしてはどう思いますか?
guest

0

ちょっと質問の意図がいまいち掴み切れていないですが、それがボタンなのであれば <button> タグを付けたらいいし、ただのList Itemなのであればつけなければいいのではないでしょうか。

文書全体の中で「この箇所にはこういう意味があるよ」というマーキング (=タグ付け) をするのがHyperText Markup Languageの考え方なので、どういう意味を持たせたいかによって変わってくると思います。ご提示のコードだけではあなたがどういった意味をもたせようとしているのか類推できませんので、この回答が精一杯です。

投稿2019/11/13 16:47

thyda.eiqau

総合スコア2982

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

theearth

2019/11/13 17:03

ボタンでもただのリストアイテムでもなく、タブメニューなんですが、どう思いますか? すみません、文章だけでなくコードのクラスに.tabmenuとか書いてあったほうが分かりやすかったですね。
theearth

2019/11/14 01:48

ベストアンサーの方もnav派でした。思いつかなかったのでそうさせて頂こうかと思います。リンク先ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問