プロが教えるわが家の防犯対策術!

最近、時代の流れについてゆけず・・・・
いまさらですが、MarkupValidationServiceというものを知りました。
http://validator.w3.org/

ここのバナーがほしいというわけではないですが、
いろいろやっていくうちに、ハマッてしまいました。

のこり一箇所だけ不明なエラーがあります。
自分の勉強不足なんですが、どうしてもわかりません。
どなたか解決方法があれば教えて下さい。

【エラーの箇所】
<script language="javascript1.1" type="text/javascript" src="foot.js" />

【エラーコメント】
# Error Line 78 column 17: there is no attribute "language".

以上です。宜しくお願いします。

A 回答 (7件)

HTML4.01以降 scriptのlanguage属性は非推奨となっています


ちなみにtype属性が採用されますが、こちらは推奨ではなく"必須"となります

http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401 …


また、Markup Validation Serviceではエラーとはでませんが、
<script>タグは<img>や<br>と違って空要素ではないので、
<script ~ />とはできません
必ず<script ~></script>とする必要が出てきます

下記のような例を記述してみると実際scriptタグが閉じられていないのがわかります
(</script>までが1くくりと判断され"段落2"しか表示されない)

<script type="text/javascript" src="foot.js" />
<p>段落1</p>
<script type="text/javascript" src="foot.js"></script>
<p>段落2</p>
    • good
    • 0
この回答へのお礼

わかりやすくタグで説明頂きありがとうございます。
大変助かりました。

お陰様でバナーをゲットできました。
ありがとうございます。

お礼日時:2007/03/03 00:25

>suzuki-_-さん,quadsさん


勉強になりました。ありがとうございます(自分のBlogにメモ)

>お陰様でバナーを頂くことができました。
「This Page Is Valid XHTML 1.1!」と表示されると何度も見てしまう。
うふふ。

気持ちは良くわかる。俺もよく何度も見たり眺めたりしちゃうもん

>タグには関係してないことなんでしょうか?
タグには無関係。つまり書き間違いはない。
HTTPサーバの設定。

どんなHTTPヘッダが流れているかは

Firefoxアドオン(まだ名称「拡張」だっけ?)のLiveHTTPHeaders
http://livehttpheaders.mozdev.org/

IEのアドオンの
ieHTTPHeaders
http://www.forest.impress.co.jp/article/2005/02/ …

Operaはv9.20 Build 8713で
Tools>Advanced>Developer Console
で見られそう。

その他
Web-Sniffer 1.0.24
http://web-sniffer.net/
を使う手もある

#他、telnetでHEADを送るってのもありかな(ぉ

XHTML 1.1ではContent-TypeがApplication/xhtml+xmlが推奨,Application/xhtmlやtext/xmlが可能,text/htmlが非推奨となっている。

しかし・・・・
http://fumika.jp/nikki/2004/02/xhtml
という感じでIE6が対応していなかったりで
XHTML 1.1でもtext/htmlで提供する人がかなりいます。

http://www.satoshii.org/markup/dtd/xhtml11-msxml …

#また利用するWebサーバがレンタルの場合、変更できない,というケースも多いです。

「これはこれで嫌だ」「そもそも新しいバージョンを追い求めることにそれほど意味はなく,理解してもらえれば良い」などの理由から
よりHTML 4系との互換性を重視したXHTML 1.0 Strictでtext/htmlにして配布する人が多いです。

#ちなみにXHTML 1.1だとAnother HTML lintでmeta要素のhttp-equiv属性で
対処しようとすると,「本来はHTTPヘッダに書くものだ」と言われる。
XHTML 1.0だとそうはならない。

・・・なんか俺はうまくまとめられんな。
    • good
    • 0
この回答へのお礼

とても詳しくありがとうございます。専門の方?
せっかくなんですが、詳しく書いている内容は私には少し早いようです。
しかしこれで勉強になりました。

サーバーはレンタルですが、なにか妥協するのもいやなので
もう少し勉強します。

ありがとうございました。

お礼日時:2007/03/03 00:32

>>0


HTML検証サービスに関しては次のものが有名です。
http://openlab.ring.gr.jp/k16/htmllint/htmllinte …
とはいっても、この検証さえ通れば無問題というわけでもありませんが。

> 自分の勉強不足なんですが、どうしてもわかりません。
>> # Error Line 78 column 17: there is no attribute "language".
エラー行 78, 17列(文字)目: そんな属性はありません。"language".

Validな文書にするには、要素や属性、その他の予備知識も多く必要になってくるかもしれませんが、そのような意識を持ってHTMLを弄っていれば自然と身に付くはずです。


>>#3-#5
私も詳しいことは認識していないので厳密な回答はできませんが…。

XMLでは、
>> 「内容を持たない要素に対し」「NET 可能開始タグ及び NET を同時に記述」
することが可能だが、XMLとはいえ、これを行なっても正しく解釈できるパーサは殆どないため利用すべきではない。
という意味を含めて、(application/xhtml+xmlとは限らない)XHTML1.0では利用できないことを前提にしている。

と、私は認識しています。

この回答への補足

ご回答ありがとうございます。
お手数おかけしてすみませんでした。

お陰様でバナーを頂くことができました。
「This Page Is Valid XHTML 1.1!」と表示されると何度も見てしまう。
うふふ。

教えて頂いたサイトで検証したところ「よくできました」とされましたが
下記のようなチェック項目が表示されました。
私は余り詳しくないですが、HTTPレスポンスということは
タグには関係してないことなんでしょうか?

【エラーです。】
1: line 87: HTTPレスポンスヘッダに指定されているメディアタイプ text/html は XHTML1.1 には指定しないようにしましょう。 → 解説 143
5: line 87: HTTPレスポンスヘッダに charset 指定が含まれていません。 → 解説 140

特に無理に回答されないくても結構なので、お時間があれば教えて下さい。よろしくお願いします。

補足日時:2007/03/02 23:30
    • good
    • 0

>> himajin100000 さん



> 自分もそんなことをどこかで聞いた覚えがあるような気はするのですが出所がはっきりしません。

1.0では下記のように記されています
http://www.doraneko.org/webauth/xhtml10/20000126 …
(C.3 要素最小化と空要素内容 を参照)
http://www.doraneko.org/webauth/xhtml10/20000126 …
(4.3 非空要素については終了タグが必須である を参照)

xhtml1.0 dtdでの script タグに関してはEMPTYではないので、
私は終了タグを省略してはいけないと解釈しています

xhtml1.1ではEMPTYではなくても実質空要素には /> で終えてもよいのかもしれません
(ここは私もよくわかりません)

ただ、仰るようにブラウザ解釈の相違があるので、
w3c勧告との適合性とブラウザ解釈の相違をなくすという意味も込め、
明示的に終了タグを記述するのが望ましいと考えます

ちなみにOperaの最新verでは両方表示ですが、
少し古いverだと後者表示のみのようです

また、仰るようなmimeタイプも関係しているのかもしれませんが
こちらもあまり的を得た文献もなく認識・理解には至っていません
(正直英字文献は苦手なのであまり探すこともしていません)

//
このような議論や意見交換はもちろん良いことですが、
質問者さんへの回答と少し離れてしまっていますので
ここいらで止めておきます
    • good
    • 0
この回答へのお礼

ありがとうございました。
お手数おかけすみません。

詳しく説明して頂きありがとうございます。
お陰様でバナーを張ることができました。

お礼日時:2007/03/02 23:54

すみません#3のサンプルを変更します。

何を俺は馬鹿なソースを書いているんだorz。結果は変わりませんが。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>てすと</title>
</head>
<body>
<script type="text/javascript" src="foot.js" />
<p>段落1</p>
<script type="text/javascript" src="foot.js"></script>
<p>段落2</p>
</body>
</html>
    • good
    • 0

>ちなみにtype属性が採用されますが、こちらは推奨ではなく"必須"となります



おっとっと。ごめんごめん。そうでしたね。

ところで、当方の後学のために教えてください

><script>タグは<img>や<br>と違って空要素ではないので、
<script ~ />とはできません
必ず<script ~></script>とする必要が出てきます

自分もそんなことをどこかで聞いた覚えがあるような気はするのですが出所がはっきりしません。

特に
http://www.satoshii.org/markup/websgml/valid-xml …
などをみると

>ちなみに、内容を持たない要素というのは、強制空要素だけでなく、たまたま内容を持たない要素 ― 例えば表の中の空のセル<td></td>など ― を含みます。従って、例えば XHTML 1.1 の場合には、次のような記述が行えることになるわけです。

という記述があります。(わざわざ1.1になっているということは1.0では駄目かもしれないけど)

そこで試しに当方で二つのサンプルを作成してみました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script type="text/javascript" src="foot.js" />
<p>段落1</p>
<script type="text/javascript" src="foot.js"></script>
<p>段落2</p>
</body>
</html>

ソースは全く同じで,ファイル名がhoge.htmlおよびhoge.xhtmlとなっており、これをMinefield(Firefox 3.0a3pre)で読み込ませたところ
前者は段落2のみが表示され,後者は両方とも表示されました。

ちなみにOperaではともに両方が表示され,IEでは後者は読み込めませんが、前者は「段落2」のみ表示されました。

#XHTML 1.0 Strictはtext/htmlとtext/xmlの両方が許されているから
その関係なのかな?
    • good
    • 0
この回答へのお礼

具体的なタグがあってとても参考になりました。
ありがとうございます。
お陰様でバナーをゲットできました。

お礼日時:2007/03/02 23:58

A.1.1. XHTML-1.0-Strict



<!ELEMENT script (#PCDATA)>
<!ATTLIST script
id ID #IMPLIED
charset %Charset; #IMPLIED
type %ContentType; #REQUIRED
src %URI; #IMPLIED
defer (defer) #IMPLIED
xml:space (preserve) #FIXED 'preserve'
>

A.1.1. XHTML-1.0-Transitional

<!ELEMENT script (#PCDATA)>
<!ATTLIST script
id ID #IMPLIED
charset %Charset; #IMPLIED
type %ContentType; #REQUIRED
language CDATA #IMPLIED
src %URI; #IMPLIED
defer (defer) #IMPLIED
xml:space (preserve) #FIXED 'preserve'
>

Strictにはlanguage属性が存在しない。
type属性が推奨されていると思う。調べてみてくれ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!