• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:下記htmlでバリデーションをかけるとエラーがでるのですが、原因を教えてください。)

HTMLのバリデーションでエラーが出る理由とinputタグに画像を使う方法

このQ&Aのポイント
  • HTMLのバリデーションでエラーが出る理由は、inputタグのtype属性にimageが指定されているためです。
  • inputタグに画像を使いたい場合は、CSSで背景を設定する方法があります。
  • ただし、inputタグのtype属性にimageを指定した場合には、画像として表示されることに注意が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>#1 HTML 4.01のinput要素には必須属性ないよ ============ ●システム識別子相当の部分がないことからHTML5として解釈して欲しいのだろう(SGMLでない、って言い切っているので「相当」) ●実験的な機能なので完全ではなく、事実質問文で掲示されたソースを検証しても Error Line 10, Column 23: Required attributes missing on element input. <p><input type="image"></p> Element-specific attributes for element input: (以下略) というだけで、どの属性が必須属性なのかについてはちっとも述べてくれず、暴れたくなりました。 仕様書 http://dev.w3.org/html5/spec/Overview.html#image-button-state を漁ると、 >The image is given by the src attribute. The src attribute must be present, and must contain a valid non-empty URL potentially surrounded by spaces referencing a non-interactive, optionally animated, image resource that is neither paged nor scripted. >The alt attribute provides the textual label for the alternative button for users and user agents who cannot use the image. The alt attribute must also be present, and must contain a non-empty string. という記述が見つかるため、src属性とalt属性をとりあえずいい加減に補って検証すると通りました。まぁいい加減なままじゃ困るんですが(笑)。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>あげ</title> <meta name="description" content=""> </head> <body><p><input type="image" src="http://cmm001.goo.ne.jp/img/logo/goo.gif" alt="xxx"></p> </body> </html>

reggaepunc
質問者

お礼

あ、なんかダブルクォーテーションに見えないゴミがついてました。 このゴミを消してバリデーションかけると通りますね!www あと、inputタグにaltはOKなんでしょうか?www 何はともあれ、表題の目的は遂げられました。 ありがとうございました。 input + alt に関しては、気になるので引き続き調べますw

reggaepunc
質問者

補足

丁寧なご意見ありがとうございます。 記載頂いたソースを、下記にて確認してみたのですが、 http://validator.w3.org/ エラーが出てしまいました。 設定とかが違うのでしょうか。。 --- 別の実現方法として、cssで背景に画像を適用すればやりたい事は実現しますが、IE8でクリックしたときに背景がずれる現象が出ます。背景がずれる現象もCSSハックで解消出来ますが、IE8だとどうしても背景画像の動きが不安定になってしまう状況です。 ですので、このバリデーションさえ通れば堂々と<input type="image" src="hoge.gif">を使いたいという状況です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

せっかくエラーチェックして、なぜ聞かれるのかわかりません。 エラーの原因もチェックする限りは表示されるはずです。 Required attributes missing on element input. 17.4 INPUT要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/interact/forms.html#edef-INPUT )  →type ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/interact/forms.html#adef-type-INPUT )   →17.4.1 INPUT要素で作成するコントロールの形式 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/interact/forms.html#input-control-types )    

reggaepunc
質問者

お礼

input + altの方ですが、 ご提示のurlに答えがありました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ホームページ作成に関して

    以下のように入力しましたがホームページに反映されません。 <DOCTYPE_html> <html_lang="ja"> <meta name="author"content="名前> <meta name="description"content="内容の紹介 <meta name="keywords> <meta http-equiv="content-style-type content="css> <head> <meta http-equiv="content-script-type-cotent="utf-8> <meta_charset="utf-8"> <title>名前<title> </head>

    • 締切済み
    • PHP
  • 下記のタグの中で必要ないのはありますか?

    (1) <?xml version="1.0" encoding="UTF-8"?> (2) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> (3) <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> (4) <head> (5) <title>●●●●●●●●</title> (6) <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> (7) <meta http-equiv="Content-Style-Type" content="text/css" /> (8) <meta name="robots" content="INDEX,FOLLOW"> (9) <meta name="description" content="●●●●●●●●"> (10) <meta name="keywords" content="●●●●●●●●"> (11) <meta name="content="●●●●●●●●" /> (12) <meta http-equiv="Content-Script-Type" content="text/javascript"> (13) <meta http-equiv="Content-Style-Type" content="text/css"> (14) <link href="css/A1.css" rel="stylesheet" type="text/css" /> (15) <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

  • PHP文法エラーについて

    はじめて、お世話になります。よろしくお願い致します。 プログラム文は後述致しますが、実行すると、ブラウザに下記エラーが表示されます。何のエラーで、どこを直せば、よいのでしょうか? Parse error: syntax error, unexpected ';', expecting ',' or ')' in C:\xampp\htdocs\Step2Kadai\kakunin.php on line 16 kakunin.php on line 16のところは、 echo htmlspecialchars($_SESSION['mail']; です。 [input.php] <?php session_start(); $_SESSION['address'] = $_REQUEST['address']; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>MF-02 input</title> <meta charset="utf-8"> </head> <body> <h1>MF-02 input</h1> <form action="mf_form.php" method="post"> <p>アドレス: <input type="email" name="address"> <input type="submit" value="送信"></p> </form> </form> </body> </html> [mf_form.php] <?php session_start(); $_SESSION['mail'] = $_REQUEST['mail']; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>MF-02 form</title> <meta charset="utf-8"> </head> <body> <h1>MF-02 form</h1> <p><a href="kakunin.php">確認<?php echo htmlspecialchars($_SESSION['mail']); ?></a></p> </body> </html> [kakunin.php] <?php session_start(); ?> <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>MF-02 kakunin</title> <meta charset="utf-8"> </head> <body> <h1>MF-02 kakunin</h1> <p>アドレス: <?php echo htmlspecialchars($_SESSION['mail']; ?>) <?php </p> </body> </html> 以上です。よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 表示がされません。

    なぜでしょうか。 <pre> <code> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>タイトル</title> <meta name="description" content="練習サイトそのいち"> <link rel="icon" type="image/x-icon" href="img/favicon.ico"> <meta name="viewport" content="width=device-width, initial-scale=1"> </code> </pre>

  • PHPについて教えてください

    下記のindex.htmlとcheck.phpを別々にURLに入力すると正しく表示されるのですが 横の送信ボタンを押したときにcheck.phpにジャンプしてくれません どうしてでしょうか? index.html <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <from method="post" action="check.php"> <input name="nickname" type="text" style="width:100px"> <input type="submit" value="送信"> </from> </body> </html> check.php <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php print'ようこそ'; ?> </body> </html>

    • 締切済み
    • PHP
  • Dreamweaverのメタタグについておしえてください

    DreamweaverCS3でキーワードを入れると、</head>の下に挿入されるのですが、これでいいのでしょうか? よろしくお願いします。 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>タイトル</title> </head> <meta name="keywords" content="キーワード,キーワード," /> <meta name="description" content="説明文" /> <body> </body> </html>

  • XHTML meta属性 文字化け

    XHTMLを勉強しています。 以下のように記述して表示すると タイトルの部分が文字化けします。 何故でしょうか <?xml version="1.0" encoding="utf-8"?> <!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" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>ホームページの作り方</title> <meta name="description" content="初心者のためのホームページテスト" /> <meta name="keywords" content="ホームページ,作成,初心者" /> </head> <body> テスト </body> </html>

    • ベストアンサー
    • HTML
  • CSSが読み込めません

    今 HTML5とCSS3で個人のWebサイトを作成しており、 確認のためGoogleChromeにコピーして見てみましたが 外部CSSが全く反映されていません Windows8、保存している文字コードはどちらもUTF-8です <!DOCTYPE html> <html lang="ja"> <head> <link rel="stylesheet" type="text/css" href="style.css"/> <meta charset="UTF-8"> <meta name="keywords" content="〇〇"> <meta name="description" content="〇〇。"> <title>〇〇</title> </head> <body> <H1>〇〇</H1> <img src="〇〇.png"> </body> </html> CSS ソース↓  body {color: red; } 何故こんな簡単なところでつまずいているのか自分でも分かりません どなたか分かる方いらっしゃいましたらご教授ください

    • ベストアンサー
    • CSS
  • SafariでPHPソースがそのまま表示される

    Safariでindex.phpを開くとソースコードがそのまま表示されてしまいます。 拡張子をphpとしているだけでソース内にはphpスクリプトは記述しておりません。 なぜでしょうか? ※ファイル名をindex.htmlに変えると正しく表示されます。 Windows 7 Home Premium 64bit Safari5.1.5 ソースコードのエンコーディング:utf-8 <!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" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="content-style-type" content="text/css" /> <meta http-equiv="content-script-type" content="text/javascript" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <title>テストtitle> </head> <body> <h1>テストページ</h1> </body> </html>

  • HTMLのソースで「↑」になっているのは?

    ソースを見たときに、以下のように↑で区切って表示されることがあります。 <html lang="ja">↑<head>↑<meta http-equiv="Content-Type" content="text/html; charset=utf-8">↑<title> 【質問1】これは、(1)わざと↑が入るようにしているのですか? それとも(2)勝手に↑で区切られてしまうのですか? 【質問2】このようなソースを、以下のような↑なしのソースに変換する方法ってあるのですか? <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>