- ベストアンサー
XHTMLで終了タグを使用しなかった場合、エラーの重症度はどれくらいになるのでしょうか
- XHTMLのエラーについて調べたところ、imgタグの終了タグがない場合、エラーが発生する可能性があります。
- 楽天アフィリエイトの規約では、タグの改変は規約違反となるため、終了タグを追加することはできません。
- しかしながら、エラーの重症度は使用するブラウザやバージョンによって異なるため、確定的な回答は難しいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
エラーの種類としては、最悪の部類になります。整形式違反という、XML として最もやってはいけないエラーです。 しかしながら、もしページを Content-Type: text/html で提供しているなら、ブラウザ上では何の問題も生じないでしょう。なぜなら、ブラウザはそのページを XHTML と見なさず、単なる HTML として処理するからです。 ですから、もし XHTML 1.0 Transitional なんぞ使うぐらいなら、<!DOCTYPE html> だけにして HTML5 にして下さい。その方がよっぽど無難です。XHTML 1.0 のルールは HTML5 でもほぼそのまま通用しますので(/> を使っても構いませんし、内容モデルもだいたい同じ)、DOCTYPE 以外は特に修正する必要もないはずです。 もし、ホンモノの XHTML(application/(xhtml+)xml)として使う、あるいはブラウザ以外の XML パーサに食わせる必要があるのなら、冒頭に書いた通り終了タグ(ないし />)が絶対に必要です。こんな部分で規約違反なんてのも馬鹿げた話ですので、とことん先方と話し合っても構わないでしょうが、まあ、そこまで頑張る必要があるかはご自身で決めて下さい。
その他の回答 (3)
- Chaire
- ベストアンサー率60% (79/130)
No.1 お礼より: > XHTMLで宣言しているのにContent-Typeをtext/htmlで提供する理由 XHTML 1.0 が出た頃、それをちゃんと XML として処理できるブラウザはほとんどありませんでした。ですから、XHTML を XML として処理できる新しいブラウザが出るまで、XHTML を HTML と同じように扱う必要があったのです。 しかし、当初は 2000 年に勧告予定であった XHTML 2.0 の策定が遅れに遅れ、様子を伺っていたブラウザ開発者が XHTML の未来に懐疑的になります。Mozilla/Firefox は早くから XHTML モードを備えていましたが、XHTML を扱えない IE6 が 5 年以上も最大シェアを占めたこともあり、XHTML がウェブでその実力を発揮する機会は訪れませんでした。 ※IE5 から XML 処理は可能でしたが、ウェブページとして表示するには HTML 処理が必要でした。 結局、ブラウザ開発者を中心に HTML5 が提唱され、XHTML 2.0 は 2009 年に打ち切りになりました。 --- XML の必要性が薄れたわけではありません。例えばセマンティック・ウェブの分野では、ブラウザ表示以外の用途でデータをやり取りするために、どうしても XML のような標準・汎用的形式が必要になります。 だから本当は XML 界隈とウェブを統一できれば良かったのに、歴史的なゴタゴタのせいで、逆に XML 界隈とウェブが乖離してしまったということです。まあ、境界がはっきりしてれば、それはそれでやりようがあるんですけどね。私は XML を使う機会が多いので、ソースを XHTML で書き、ウェブに公開するときに HTML5 に変換しています。 ブラウザ表示だけが目的なら、最初から HTML5 で書くのが(今は)無難でしょう。今後のブラウザは、どの (X)HTML バージョンで書かれたものであろうと、text/html である限りは HTML5 のルールで解釈します。"/>" でなくとも表示に影響しないのはそのためです。 『XHTML を HTML と同じように扱う必要があった』時代を未だに引きずりながら XHTML 1.x を書いている人が(あるいは入門書や解説書も)多いのですが、それは決して本来意図された道筋ではありません。良い加減、考え直すべきだとは思います。
お礼
なるほど!そういう経緯があったのですね! ご回答いただいた内容を見ると、今は新しい方法が浸透しはじめており転換期が収束しつつある時期だと感じました。 私もXHTMLを何も知らずにありがたく(?)使っていたクチですので、こういう背景を知ると「少しは勉強しないといけないよな~」って思いました。 わかりやすい説明をしていただきありがとうございました。かなり勉強になりました。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
>XHTMLは確か、書式がぐちゃぐちゃになりつつあったHTML4を糺すために新たに設けられたものだったという記事を読んだ記憶があります。 違います。HTMLは、SGMLを参考にしているけど、XHTMLはSGMLそのものであるXMLに合わせてHTMLを書き直したものです。XML形式だと、ブラウザに限らず様々なアプリケーションから利用できると共に、圧倒的にブラウザの負担が小さくなります。 HTMLはXMLでは無い(XMLの文法ではない)と言うだけで、HTMLの文法に従っていれば構文としては正しいのです。 たとえば、 <p>文章 <ol> <li>・・・ <li>・・・ </ol> と書かれていてもHTMLの構文としては正しいのです。問題は、これをブラウザが解釈するためには、この文書を <p>文章</p> <ol> <li>・・・</li> <li>・・・</li> </ol> と解釈しなければならないことがブラウザに負担になる。さらにブラウザによって解釈が異なることが問題。ならいっそSGML的に厳密なXMLで書き直せばよいと言うのがXHTMLです。 問題はそれではなく、文書構造にしたがってきちんとマークアップされていない事が重大なのです。HTMLの構文に許容範囲を残すことはHTMLの長所でもあるので、それは残すべきだ、その代わりに、そのようなときにどのように構文を解釈するかも決めておけばよいと言うのがHTML5です。XML的に厳密なものは、同時にXHTML5が策定されるので問題ないでしょう。 文書構造にしたがってとは、HTML4.01のときにも明示されていたのです。たとえば 【引用】____________ここから DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[7.5.4要素のグループ化: DIV要素とSPAN要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )]より これは、 <div class="container"> <div class="left"></div> <div class="right"></div> なんかじゃなくて、 <div class="header"> <h1>見出し</h1> <p></p> </div> <div class="section"> <h2>見出し</h2> ・・・ <div class="aside"> ・・脚注・・ </div> </div> <div class="footer"> </div> のようにマークアップしろと言うことなのに、守られなかった。そのような意味もこめられているのです。HTML5では、 <header> <h1>見出し</h1> <p></p> </header> <section> <h2>見出し</h2> ・・・ <aside> ・・脚注・・ </aside> </section> <footer> </footer> となる。 HTML5では、 <p>段落 <p>段落 が許されますが、それを欠点とはみなさず、長所としてみなそうと言うのが、(未来はXMLではなくHTMLへと)XML2.0の策定作業が中断されてHTML5に全力集中された遠因だと理解しています。代わりにXMLが必要ならXHTML5でということ。 HTML4.01は過去のものではなく、現在のところ勧告になっているHTMLの最終バージョンです。しかし、transitionalという過去の異物を引きずっています。すなわち文書構造ではなくプレゼンテーションのための要素や属性をひこずっていることが問題なら、strictで作成すればよい。transitinalを使いながら、XHTMLと言うのは、ちょっとおかしいのでは・・ まあ、XHTML1.0はHTML4.01と同じものですが・・ HTML5が持つ本当の意味 - @IT ( http://www.atmarkit.co.jp/news/200801/25/html.html ) 連載インデックス「HTML5“とか”アプリ開発入門」 - @IT ( http://www.atmarkit.co.jp/fwcr/design/index/index_html5appli.html ) HTML5 における HTML4 からの変更点 ( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/ )
お礼
なるほど、HTML4⇒XHTML1⇒HTML5という流れで単純に考えていたのですが、説明を読ませていただくとその背景は決して単純ではないようですね。 原点の考え方と仕様に依って提唱されたのがXHTML。 ただ、XMLを元にしたXHTMLはHTMLと比較すると一般的には扱うのが難しく、しかもブラウザの関係上Content-Typeをtext/htmlとして暫定的に使っていたのが定着してしまった。 そうなるとHTMLをXHTMLに移行する意味が薄れ、使用目的別に言語を使い分ければ良いという考えが浸透してきた。 と同時に、今まで続いていたHTMLの文書構造の奔放な使用を長所として捉え、新たに要素の加減を加えつつXMLなどの言語情報を共有した包括的な定義として策定されたのがHTML5である。 ・・・昨日までHTML4やXHTML1,HTML5を漠然と同一ラインで考えていた私には上記の解釈で精一杯です(^_^;) 基礎となる重要な単語やその解釈をもっと勉強してからもう一度考えたいと思います。 参考ページへのリンクや引用など詳しく教えていただきありがとうございます。参考にさせて頂きます!
- ORUKA1951
- ベストアンサー率45% (5062/11036)
そもそ、XHTMLの必要があるのですか? <img />としていないのは、XMLとしては、最悪のエラーになります。 ですから、「楽天の回答」がおかしいのであって、/を入れてもよいはずです。 XHTMLの未来は、暗澹としてきました。(^^)。わざわざXHTMLにこだわる必要はないかと思います。HTML4.01--ただしstrictで作成して、将来的にHTML5を目指せばよいかと。(HTML5はHTML4.01strictと根本は同じ、当然XHTML1.0strict,XHTML1.1とも)
お礼
楽天はそういった今必要な状況に対して、フレキシブルな対応はできない企業と言われているので仕方ないと思ってます。 構文としてエラーがあっても、検索エンジンロボットの検索順位評価にあまり関係がないのならいいんですが・・・。 XHTMLは確か、書式がぐちゃぐちゃになりつつあったHTML4を糺すために新たに設けられたものだったという記事を読んだ記憶があります。 HTML4、XHTML、HTML5について、それぞれどういった意味をもっているのかを調べなおしてみるのも面白そうだと思いました。 ご回答いただきありがとうございました。参考にさせていただきます。
お礼
確認したところtext/htmlでした。 回答をいただくまでDOCTYPEで宣言した言語がブラウザでも適用されるのかと思ってました。 となると、XHTMLで宣言しているのにContent-Typeをtext/htmlで提供する理由は何なのでしょう。 新たな疑問です。 ちなみに、専門の方が作ったテンプレートをいただいてサイト作成したので、言語や文書等の書式の決まり事というのは詳しくないです。 ともあれ、貴方様のおかげでほんの少し賢くなれました。 ご回答頂きまして心より感謝致します。