- ベストアンサー
XHTMLでサイトを作った場合、imgタグの終了タグの問題について
- XHTMLでサイトを作った場合、imgタグに終了タグがついていないとエラーとされますが、ブラウザを通して見る限りはサイトが崩れることはありません。
- XHTMLの文書コード上では終了タグのないimgタグは重大なエラーと判定されますが、検索順位にはそれほど関係しない可能性があります。
- 関係がある場合は問題を解決したいと考えています。詳しい方からの回答をお待ちしています。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
文法エラーという場合、大きく二種類あります。 ・構文(整形式)エラー。タグの書き方が正しいか。 ・内容(妥当性)エラー。要素の配置・属性値が正しいか。 ・HTML 4.0 は、どちらも正しくなければなりませんでした。 ・XHTML は、構文さえ正しければ、内容は後回しにできます。 ・HTML5 は、内容さえ読み取れれば、構文が壊れていても何とかします。 img 要素の終了タグの有無("/>" は NET と呼ばれる終了タグ省略です)は構文レベルの問題ですので、XHTML では致命的エラーとなります。 さて、文法エラーについて Google は何と言っているか。 http://www.google.com/support/webmasters/bin/answer.py?answer=100782 | 正当な HTML の使用を推奨しますが、Google がサイトをクロールしてインデックスに登録する方法には影響しません まあ、そうでしょう。残念なことに構文エラー文書が多いウェブで、構文エラーの時点で撥ねていては検索商売が成り立ちません。一応、構文エラーからの回復は、そこそこ簡単にできます(回復された文書の正しさはともかく)。 検索商売としては、文書の内容を読み取ることが至上目的となります。Google が深く関わっている HTML5 が上記のようになったのも、頷ける話でしょう(実のところ、HTML5 には内容に関しては相当厳しいです)。 あとは心情的な話です。仮にも XHTML を宣言した文書が、XHTML としての存在意義(構文エラーさえなければ、どんな XML パーサにも渡せること)を台無しにするようなことを見過ごして良いのか、という。 --- 余談ですが、Google、MS、Yahoo など検索運営会社が Schema.org というのを立ち上げました。そこで定義されている語彙を使うには、XHTML か HTML5 であった方が良いです。HTML 4.0 では語彙拡張ができませんので。この意味では XHTML を使うメリットはまだあります(ちゃんと使えれば、ですが)。 XHTML 1.0 と HTML 4.0 では微妙な変更点があって、DOM 構築にも関わってくるのですが、この辺は HTML5 である程度吸収されてはいます。
その他の回答 (5)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
最初の部分間違えました。 >XTTML1.0transitinalは、HTML4.01transitinalをXMLの仕様に合わせて書き直したものです。したがって、HTML4.01strictとまったく同じものです。 訂正] XTTML1.0transitinalは、HTML4.01transitinalをXMLの仕様に合わせて書き直したものです。 したがって、HTML4.01transitinalとまったく同じものです。 ^^^^^^^^^^^^^^^^^^^^^
- ORUKA1951
- ベストアンサー率45% (5062/11036)
No.2ですが、本当に基本的な部分ですが、 XTTML1.0transitinalは、HTML4.01transitinalをXMLの仕様に合わせて書き直したものです。したがって、HTML4.01strictとまったく同じものです。 なぜ、XHTMLなのかと言うと、それがXMLだからです。それ以上でもそれ以下でもありません。すなわち、他のアプリケーションで使用するため、独自のタグを加えられる、他のXMLコードを埋め込める・・・ SEOを考慮されるなら、HTMLかXHTMLかではなく、きちんとセマンティックなマークアップがされているかのほうがはるかに重要です。すなわち、 <div class="header">ヘッダ</div> <div class="section">章</div> <div class="aside">脚注・補足</div> とか・・・。検索エンジンはこれら(文書)構造を示すclass名を理解しています。 ≫DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 ) わざわざ【致命的エラー】を犯してまで、XMLにする必要はありません。 本気でSEOを考えてらっしゃぉるなら、XHTML4.01【strict】でページを作成してください。そのときに、HTML4.01で繰り返し述べられているセマンティックなマークアップを心がけてください。その際に「HTML5 における HTML4 からの変更点 ( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/ )」が参考になるでしょう。---追加された要素、変更された要素、変更された属性など・・。 XHTML1.0transitinalである限り、XHTMLにする必要はまったくありません。どころか、制約が多くマイナスです。
お礼
回答ありがとうございます。 ちょっと前はXHTMLでサイトを作ると検索エンジンに評価が良いとありましたが、HTML5に変わりつつある今は制約の多いXHTMLは使用しないようにします(;´∀`) HTML5を勉強したいなと思っていたので丁度良い機会です。 いろいろと教えていただきありがとうございました。
- yui56544
- ベストアンサー率69% (85/123)
#1さんが言うようにIMGタグやbrタグ・hrタグのように、単独で使用されるタグの場合は終了タグはありません(空要素タグなどと呼ばれます) 空要素タグはスラッシュを用いて閉じます HTMLの場合 <img src="URL" alt="説明"> XHTMLの場合 <img src="URL" alt="説明" /> そこでXHTML向けにしたいのはアフィリエイト用のコードということですが、このコードを改変した場合、最悪アフィリエイトサイトの規約違反となり、アフィリエイト報酬がもらえないというケースも出てきますので、原則としてはこのコードは例えXHTMLのルールに添っていなくても変えるべきではないと思います。 AMAZONなんかのアフィリエイトリンクの場合はかなり緩くて、タグの改変ツールなんかが黙認されていますが、バナーブリッジやA8とかの場合は警告が来た例もありますので。 アフィリエイトサイトではXHTML用のタグを生成してくれないので、もうこれは諦めるしかないかと…。 さて、そこでアフィリエイトコードがXHTMLに準拠していないとSEO対策に不利かというところになってくるわけですが、まぁ多少は変わります、ほんとに多少。他のサイトにリンクをしてもらって、検索ロボットをより多くクロールさせるのに比べると微々たる差といった程度でしかありません。今や、ほとんどのサイトがアフィリエイトをしていますから、その辺のタグは問題にならないかと思います。 自分のサイトもXHTMLで組んであり、アフィリエイトコードはHTMLなので文法上は間違っていますが、検索結果で2位の位置を取っています。 ついでなのでSEO対策だとこの辺が参考になるかと http://seo.ypp.info/index.html
お礼
回答ありがとうございます。 なるほど、多少の差しかないのでしたらあまり深く考えないようにします。 それに今や非常にたくさんあるアフィリサイトを考えると、確かにyui56544さんの仰るとおり、いちいち問題にしているという可能性は低いということは想像に難くありませんね。(・∀・) 情報を教えていただきありがとうございました。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
なぜXHTMLにする必要があるのですか? 必要が無ければ、HTML4.01strictで作成しましょう。所詮XHTML1.0transitinalでしょ!! XHTMLは、多分過去のものになっていくでしょう。 HTML4.01strictで学んでおけば、次のHTML5への移行は楽です。HTML5は、XHTML5としてり記述も出来ます。 ブラウザが、HTMLとして解釈してくれることに期待してはダメです。XHTML、XMLで記述するなら、文法にきちんと従わなければなりません。たまたま、IEがそのように表示してくれることに期待するのは、ことXMLである限り文法には厳格でなければなりません。 HTML4.01srtict = XHTML1.0strict → XHTML1.1 → × XHTML2は中止 → HTML5 = XHTML5(XMLとして作成する場合) HTML4.01transitinal= XHTML1.0transitinal→× HTML5 における HTML4 からの変更点 ( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/ )
お礼
回答ありがとうございます。 いろんなサイトを見てXHTMLで作ったのですが、やはり時代はHTML5に移行していっているのですね~。 私はサイト作成にさほど知識があるわけではなく、しかもtransitinalでぬくぬくしていた(?)経緯があるため、HTML4.01strictで作成できるかどうかも怪しい所ではありますが、いろいろと教えていただいたこともありますし、じっくりと勉強したいと思います。 いろんなことを教えていただいたおかげもあって、XHTMLなのにtransitinalであることに違和感を感じるようになりました。 XHTMLtransitinalにもちゃんとした意味があるのでしょうけど、ここはまぁ所詮は素人判断ということで(;´∀`) 重ねて御礼申し上げます。
- rukuku
- ベストアンサー率42% (401/933)
こんばんは >発行されたimgタグに終了タグがついておらずXHTMLではエラーとして >判定されてしまいます。 imgタグには終了タグは付きません。 XHTMLでは終了タグがない場合には <img … □/> の様にします(□は半角スペース)。 XHTMLのチェックは↓のサイトを試してみてください。 http://lab2.jp/w3c/htmllint/htmllint.html
お礼
回答ありがとうございます。 終了タグは省略できただけであって、ないというわけではないというふうに憶えていましたが・・・。 では<img … □/>の『/』のことをなんて呼ぶのでしょうか。 私はてっきり『終了タグ』と呼んでいいのだと思っていました。でも確かに『タグ』ではないですよね~。 初心者丸出しの質問で本当に申し訳ございません(;´Д`)
お礼
回答ありがとうございます。 HTML4.0、XHTML、HTML5.0が何に重点を置いているのかがよくわかりました。 また、googleがサイトの構文エラーをどのように扱っているのかについても理解できました。 終了タグ省略のことをNETというのも初めて知りました。 私がサイトを作成する上でXHTMLを今後どのように考えれば良いのか、またHTML5.0の必要性などについて、Chaireさんの回答のおかげでさらに明確に理解できた感じがします。 初心者の私でも非常によく理解できる回答でしたので大変助かりました。 私もサイトを持っている以上、もう少し文法の意味や文書の立ち位置を知っておくべきだと感じました。 入門編が書かれている本でも買って勉強しようと思います! 詳しく教えていただき本当にありがとうございました。