• 締切済み

アクセシビリティに関する質問です

アクセシビリティのチェックサイト、HAREL http://harel.nttdata.co.jp/ にて、以下の問題点(警告)がクリアできません。 http://harel.nttdata.co.jp/guidelines/check1203.html label要素を付けただけでは不足なのでしょうか? 自分のサイトではこのように記述しています ↓↓↓↓↓ <form method="get" action="http://(略)"> <dl> <dt><label for="search" id="labelsearch"> <img src="http://(略)search.png" width="185" height="51" alt="検索" /></label></dt> <dd><input type="text" tabindex="8" name="search" id="search" value="キーワード" size="" /></dd> </dl> </form> ↑↑↑↑↑ ちなみにHAREL自身をチェックしても同じ警告が出ます。 元々『曇り』マークなのでそれほど気にする必要もないのかもしれませんが、神経質な性格なので可能であればクリアしたいと思っています。 解決出来る知識をお持ちの方がいらっしゃいましたら是非お願いします。

みんなの回答

回答No.2

HTML4.01/XHTMLの文法上は、<label>の外に関連付いたフォームフィールドを置いてもよいとなっていますが、 <label for="text1">ラベル</label> <input type="text" id="text1"> 一部のブラウザは<label>の中にフォームフィールドがないと、ラベルとフォームフィールドの関連づけが行われないものもあります。 ただしすべてのブラウザがHTML4.01/XHTMLだけを仕様として動作しているわけではありませんので、 関連づけが行われないからブラウザのバグというわけではありません。 Lynxなどは、もともと<label>とフォームフィールドの関連づけという概念はありません。 可能であれば定義リストをはずして、<label>の中にフォームフィールドを入れた方が良いと思います。 <label for="search"><img src="" alt=""><input type="text" id="search" name="search"></label> (一部省略) 該当のページの以下の項目、aをご参照ください。 「いずれか」となっていますが、一部のブラウザを考慮するならa、bともに必須です。 > 改善方法 > 1. フォームの構成部品と対応するラベルの両方を、以下のいずれかの方法で関連付ける > a.フォームの構成部品と対応するラベルの両方を、label要素で囲うことで関連付ける > b.フォームの構成部品にid属性で値を指定し、label要素にfor属性で同じ値を記述することで関連付ける。 意味合いが定義リストであれば、labelとフォームフィールドを分離させなければならないと思いますし、 テーブルを使用していると分離させる必要がある場合もありますので、絶対的ではありません。 <tr> <th><label for="text1">ラベル</label></th> <td><input type="text" id="text1" name="text1"></td> </tr> 質問内容とは関係ありませんが、 虫眼鏡アイコンを「検索開始ボタン」として使っているブラウザ(やアプリケーション)がありますので、 使われているアイコンが虫眼鏡のマークであれば、 「虫眼鏡ボタン(アイコンのこと)を押してもフォームが送信されず、フォーカスが移動するだけなのは変ではないか」と思われないように、誤クリックへの配慮が必要かもしれません。

gityotan
質問者

お礼

具体的な説明、ありがとうございました。 いただいた情報を基にもう少し自分でも勉強してみます。

全文を見る
すると、全ての回答が全文表示されます。
  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.1

ご参考までに

参考URL:
http://www.tagindex.com/html_tag/form/label.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JSPでショッピングサイト(会員登録画面実装)

    表題のように、新規会員登録画面を作成しています。 1.新規会員登録画面 #名前などの各項目入力フォーム(テキストボックス) #会員登録ボタン押下で2.へ ↓ 2.入力情報確認画面 #前の画面から名前などの各項目を受け取り、表示させる #会員登録ボタン押下で3.へ ↓ 3.データベースに追加jsp #前の画面から名前などの各項目を受け取ってデータベースに追加し、4.へ ↓ 4.登録ありがとうございます画面 #ありがとうございますmes表示とトップへ戻るリンク こんな感じの流れで作成していますが、 画面の表示的には上手くいってるように見えますが データベースの中身を見ると全てnullになってしまっています。 2.で一旦入力内容を表示させてっていうのを省くと 上手くデータベースに追加されます。 2.と3.のパラメータから取得しているlast_nameなどの表記が一緒なのが原因ではと思い 3.の方を下記に変更しても同じ結果でした。 3.変更前 String strLast_name=request.getParameter("last_name"); 3.変更後 String last_name=request.getParameter("strLast_name"); ソースコードは下記に載せますので、ご教示お願いします。 1.新規会員登録画面-------------------------------------- <!--jsp、HTMLのヘッダーがあります--> <form action="add_member_confirmation.jsp" method="post"> <dl class="dl-contact"> <dt><label>お名前 </label><span>(必須)</span></dt> <dd>姓 <input type="text" name="last_name" size="10" /> 名 <input type="text" name="first_name" size="10" /></dd> <br> <dt><label>お名前(カタカナ) </label><span>(必須)</span></dt> <dd>セイ <input type="text" name="last_name_kana" size="10" /> メイ <input type="text" name="first_name_kana" size="10" /></dd> <br> <dt><label>メールアドレス </label><span>(必須)</span></dt> <dd><input type="text" name="mail" size="50" placeholder="aaa@bbbbb.com"/></dd> <br> <dt><label>郵便番号 </label><span>(必須)</span></dt> <dd><input type="text" id="zip_1" name="zip_1" size="2" maxlength="3" placeholder="123"/> - <input type="text" id="zip_2" name="zip_2" size="3" maxlength="4" placeholder="4567"/></dd> <br> <dt><label>都道府県 </label><span>(必須)</span></dt> <dd><select id="address_1" name="prefecture"> <option value="北海道">北海道</option> <option value="沖縄県">沖縄県</option> </select><br /></dd> <br> <dt><label>市町村 </label><span>(必須)</span></dt> <dd><input type="text" id="address_2" name="city" size="50"/></dd> <br> <dt><label>番地など </label><span>(必須)</span></dt> <dd><input type="text" id="address_3" name="address" size="50"/></dd> <br> <dt><label>アパート・ビル名等 </label><span>(必須)</span></dt> <dd><input type="text" name="apartment" size="50"/></dd> <br> <dt><label>電話番号 </label><span>(必須)</span></dt> <dd><input type="text" name="tel" size="50" placeholder="00-0000-0000"/></dd> <br> <dt><label>パスワード </label><span>(必須)</span></dt> <dd><input type="password" name="password_1" size="50"/></dd> <br> <dt><label>パスワード(確認) </label><span>(必須)</span></dt> <dd><input type="password" name="password_2" size="50"/></dd> <dd class="clear"><input type="submit" value=" 新規会員登録 " />&nbsp;<input type="reset" value=" リセット " /></dd> </dl> </form> <br> <h2 class="member-title">Test Shop利用規約</h2> <textarea id="" name="textarea" cols="95" rows="30" readonly> Test Shop利用規約 </textarea> </div> <!-- HTMLのフッターがあります --> ---------------------------------------------------------

    • ベストアンサー
    • CSS
  • CSSについて質問です (IDセレクタ)

    CSS初心者です。困っております。 <dl id="info"> <dt>文章1</dt> <dd> <p>文章2</p> </dd> <dt>文章3</dt> <dd> <p>文章4</p> </dd> </dl> 上記のCSSで文章1と3の色を変えたい場合、 下記はどれが正しいのでしょうか? このIDセレクタがどうも、いまいちよくわかりません。 なぜ、#の前に置いたり置かなかったりするのでしょうか? dl#infoData dt{ color:#663300; } #infoData dt{ color:#663300; } わかる方よろしくお願い致します。

  • PHP に詳しい方教えてください

    以下のスクリプトを実行作成して実行するとエラーが出てしまいます。エラーを出さないようにする方法を教えていただけませんか。 ※ エラーがでるものの、正常に動作はしています。 ---エラーメッセージ--- Notice: Use of undefined constant id - assumed 'id' in C:\xampp\htdocs\shop\update.php on line 12 --スクリプト--- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>商品管理</title> </head> <body> <?php require('dbconnect.php'); $id = $_REQUEST[id]; $sql = sprintf("SELECT * FROM my_items WHERE id=%d", ★12行目★ mysql_real_escape_string($id) ); $recordSet=mysql_query($sql); $data = mysql_fetch_assoc($recordSet); ?> <p>変更する内容を記入してください</p> <form id="frmUpdate" name="frmUpdate" method="post" action="update_do.php"> <dl> <dt> <label for="maker_id">メーカーID</label> </dt> <dd> <input name="maker_id" type="text" id="maker_id" size="10" maxlength="10" value="<?php print(htmlspecialchars($data['maker_id'], ENT_QUOTES)); ?>" /> </dd> <dt> <label for="item_name">商品名</label> </dt> <dd> <input name="item_name" type="text" id="item_name" size="35" maxlength="255" value="<?php print(htmlspecialchars($data['item_name'], ENT_QUOTES)); ?>" /> </dd> <dt> <label for="price">価格</label> </dt> <dd> <input name="price" type="text" id="price" size="10" maxlength="10" value="<?php print(htmlspecialchars($data['price'], ENT_QUOTES)); ?>" /> </dd> <dt> <label for="keyword">キーワード</label> </dt> <dd> <input name="keyword" type="text" id="keyword" size="50" maxlength="255" value="<?php print(htmlspecialchars($data['keyword'], ENT_QUOTES)); ?>" /> </dd> </dl> <input type="submit" value="変更する" /> <input type="hidden" name="id" value="<?php print(htmlspecialchars($data['id'], ENT_QUOTES)) ?>" /> <form > </body> </html>

    • ベストアンサー
    • PHP
  • web初心者、会社hpに今日中にメールフォーム設置

    web初心者で、会社のホームページに今日中にメールフォームを 設置しなければならず、困っています。 テキストを見ながら簡単なフォームを作り、 テストとしてFTPにアップロードしました。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> </head> <body><h1>お問い合わせ</h1> <form action="mailto:info@lacasatokyo.jp" method="post"> <dl><dt><label for="name">お名前</label></dt> <dd><input type="text" size="50" name="お名前" id="name" value="" /></dd> <dt><label for="email">Email</label></dt><dd><input type="text" size="50" name="Eメール" id="email" value="" /></dd> <dt><label for="comment">ご相談・ご質問</label></dt><dd><textarea name="ご相談・ご質問" id="comment" rows="7" cols="50"></textarea></dd></dl> <p><input type="submit" value="送信する" /></p> </form></body></html> フリーシェアのcgiを設置しようかとは考えましたが、 設置方法がいまいちわからず、強引にactionをmailtoで やってみましたが、すぐにメールソフトが立ち上がり、 通常のメール画面に・・・・ しかも、内容文が文字化けしている状態。 やはりcgiをつけなくては駄目なんでしょうか。 もしだめなら、初心者でも本当に簡単なcgi,(できれば無料) 教えていただけませんか。 社内で詳しいものがおらず、苦しんでいます。 どうか助けてください。

  • phpのフォームについて

    phpで問合せフォームを作成中なのですが、分からない点が3点あります。 ご教示お願い致します。 (1)問合フォームの入力項目の最後の送信ボタンに下記のコードで「submit」を入れると、入力項目である郵便番号を入れると自動で住所表示(Ajaxzip2を使用)する機能が作動しなくなります。「submit」を入力しないと自動表示されますが、データーは送信されません。 どうしたらよいのでしょうか。 【問合せフォームの入力画面のコード/HTML】 <form method="POST" action="visit Application.php" > <h3 class="taitoru11">問合せ</h3> <label for="name">お名前を入力して下さい</label> <input type="text" name="name" id="name" placeholder="例)山田value=""> <label for="number">電話番号</label> <input type="tel" name="tel" id="tel" placeholder="例)0123" value="">   <label for="mail">メールアドレス</label> <input type="text" name="mail" id="mail" placeholder="例)" value="">    <label for="zip">郵便番号&nbsp;&nbsp;※必須</label> <input type="text" name="zip" id="zip" value="" placeholder="xxx-xxxx"maxength="8" />     <label for="addr">住所</label> <input type="text" name="addr" id="addr" /> <label for="addr2">マンション・部屋番号</label> <input type="text" name="addr2" id="addr2" /> <label for="comment">その他コメント</label> <textarea id="comment" name="comment" placeholder="問合せ内容をご記入ください" value="" wrap="hard" ></textarea> <input type="submit" value="入力内容を確認する" data-inline="true"/> </form> (2)上記のコードにある<input type="submit" value="入力内容を確認する" data-inline="true"/> を入力すると、ボタンを押さなくても、入力項目でエンターを2回押すと、送信先に勝手に送信されてしまいます。 どうしてでしょうか? また、ボタンを押さないと送信されない様にするにはどうすればいいのでしょうか。 (3)(1)のデーターの送信先で、上記の「その他コメント」欄については改行表示をさせたく、下記の様に「nl2br」を使ってみましたが、改行されませんでした。どうしたらよいのでしょうか。 【問合せフォームの送信先のコード/PHP】 <dl> <dt>お名前</dt> <dd><?php print(e($_POST['name'])); ?></dd> <dt>電話番号</dt> <dd><?php print(e($_POST['tel'])); ?></dd> <dt>メールアドレス</dt> <dd><?php print(e($_POST['mail'])); ?></dd> <dt>郵便番号</dt> <dd><?php print(e($_POST['zip'])); ?></dd> <dt>住所</dt> <dd><?php print(e($_POST['addr'])); ?></dd> <dt>マンション・部屋番号</dt> <dd><?php print(e($_POST['addr2'])); ?></dd> <dt>その他コメント</dt> <dd><?php print(nl2br(e($_POST['comment']))); ?></dd> </dl> 何卒よろしくお願い致します。

    • ベストアンサー
    • PHP
  • DOMへの追加方法について

    知識のある方に是非ともご教示いただきたいのですが、 以下の通りのリストがあるとしまして、 <dl id="hoge"> <dd>222</dd> <dd>333</dd> <dd>AAA</dd> <dd>AAB</dd> <dd>BBB</dd> <dd>BBC</dd> <dd>CCC</dd> <dd>CCD</dd> </dl> これらを以下のように数字から始まるなら「数字からはじまる」 Aから始まるなら「Aから始まる」と<dt>を入れたいと考えています。 且つそのdtにはlistという連番のIDをつけていきたいのですが、 どうjqueryで組めば良いか教えて頂けませんでしょうか。 実際どうしたいかというのは、以下のとおりとなります。 <dl id="hoge"> <dt id="list1">数字から始まる</dt> <dd>222</dd> <dd>333</dd> <dt id="list2">Aから始まる</dt> <dd>AAA</dd> <dd>AAB</dd> <dt id="list3">Bから始まる</dt> <dd>BBB</dd> <dd>BBC</dd> <dt id="list4">Cから始まる</dt> <dd>CCC</dd> <dd>CCD</dd> </dl> 英語に関しては、文字列の1番目を取得して、文字列の1番目 + 「から始まる」 といった形にしたいと考えています。 知識のある方、お力を貸して頂ければと思います。 宜しくお願い致します。

  • dl,dt,ddについて

    要素名のdl,dt,ddってそれぞれ何の略ですか?

  • タグ リストについての質問です。(超初心者です)

    タグ リストについての質問です。(超初心者です) リストについてなのですが、複数のリストに複数のスタイルを設定したいのですができません。 何が悪いのか教えて下さい。また解決方法も教えて下さい。 ホームページ作成の初心者です。悪戦苦闘しながら作成しています。 タグについてyahoo知恵袋や教えて!gooなどたくさん調べたつもりなのですが、分かりません・・・ 教えて下さい。 複数のリストに各々スタイルを指定したいのですが、2つめのリストに反映されません。 スタイルシートで作成しているのですが・・・ どのようにしたら良いのでしょうか? == HTMLは、下記のような形 == <div id="main"> ・ ・ ・ <div id="navigation"> <dl id="navi"> <dt>野菜の種類</dt> <dd><a href="#">キャベツ</a></dd> <dd><a href="#">にんじん</a></dd> </dl> <dl id="navi2"> <dt>車の種類</dt> <dd><a href="#">セダン</a></dd> <dd><a href="#">ワゴン</a></dd> </dl> </div> ・ ・ ・ </div> == CSSは、下記のような形 == #navigation dl#navi { background: #999999; } #navigation dl#navi dt { margin: 0 0 1px; } #navigation dl#navi dd { background: url(bg_01.png) no-repeat; } #navigation dl#navi dd.first { padding-top: 14px; background-position: 0 -1px; } #navigation dl#navi dd a { color: #000000; text-decoration: none } #navigation dl#navi dd a:hover { color: #A6FF28; } #navigation dl#navi2 { background: #FFFF66; } #navigation dl#navi2 dt { margin: 0 0 1px; } #navigation dl#navi2 dd { background: url(bg_01.png) no-repeat; } #navigation dl#navi2 dd.first { padding-top: 14px; background-position: 0 -1px; } #navigation dl#navi2 dd a { color: #000000; text-decoration: none } #navigation dl#navi2 dd a:hover { color: #CC0033; } 上記のような形で、<dl id="navi2">のスタイルが適用されません・・・ なぜでしょうか? ちなみに<dl id="navi">はちゃんと反映します。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • スタイルシートのみで表の作成

    よくある、「サービスにログインするときのパスワード、ID入力画面」というものを作ってます。 パスワード、テキストフィールド ID、テキストフィールド ログインボタン のような。 たとえば簡単にテーブルで組みますと、 <table width="400" border="0" cellspacing="0" cellpadding="2"> <tr> <td width="100">パスワード</td> <td><label> <input type="text" name="textfield" /> </label></td> </tr> <tr> <td>ID</td> <td><input type="text" name="textfield2" /></td> </tr> <tr> <td colspan="2" align="center"><label> <input type="submit" name="Submit" value="ログイン" /> </label></td> </tr> </table> 似たり寄ったりこんな感じだとします。 これと同等のものを、スタイルシートだけで作成できますか? たとえば、ソースは、 <dl id="LOGIN-FORM"> <dt class="loginFormLabel" id="USER-NAME-LABEL"> <label for="USER-NAME">ユーザ名</label> <input type="text" name="username" size="24" value="" id="USER-NAME" class="inputText" /> </dt> <dt class="loginFormLabel" id="USER-PASSWORD-LABEL"> <label for="USER-PASSWORD">パスワード</label> <input type="password" name="password" size="24" value="" onmousedown="" onkeydown="if (event.keyCode == 13) {enter.click();return false;}" id="USER-PASSWORD" class="inputText" /> </dt> <dt class="loginFormLabel" id="USER-INFO-SUBMIT-LABEL"> <label for="USER-INFO-SUBMIT">アクション</label> </dt> <dd class="loginFormText" id="USER-INFO-SUBMIT-TEXT"> <input type="submit" value="ログイン" id="USER-INFO-SUBMIT" class="submit" /> </dd> </dl> です。 テキストフィールドの頭をそろえたり、ログインボタンの位置を 変えたりしたいです。 テーブルでやればいいのに・・・と思いますが、 スタイルシートで頼むといわれて、困ってます。 教えてください。

  • cssのみで折りたたみまたはプルダウン

    javascriptを使わずに、IE6に対応させた 縦並びの「折りたたみ」または「プルダウン」メニューのようなものを、 いろいろやっても作れず、助けてください! ソースは以下です <dl> <dt id="Name"><a href="#">おなまえ</a></dt> <dd id="Profile">プロフィールプロフィールプロフィールプロフィールプロフィールプロフィール</dd> <dt id="Name"><a href="#">おなまえ</a></dt> <dd id="Profile">プロフィールプロフィールプロフィールプロフィールプロフィールプロフィール</dd> <dt id="Name"><a href="#">おなまえ</a></dt> <dd id="Profile">プロフィールプロフィールプロフィールプロフィールプロフィールプロフィール</dd> </dl>

このQ&Aのポイント
  • タイトル機種でpcからのヘッドクリーニング操作ができません。本体からのヘッドクリーニングの操作方法が知りたいです
  • PX049-Aの本体からのヘッドクリーニング操作方法について教えてください
  • PCからではなく、PX049-A本体からのヘッドクリーニングの方法を教えてください
回答を見る