• ベストアンサー

HTMLとブラウザについて

ブラウザは、レンダリングエンジン(TridentやWebkitなど)によって、HTMLの構文違いでちょっとした表示の違いなどを生むと思います。 そんな中、W3Cという認証がHTMLにはあると思います。 この認証は100点を取ってればいいと記載されてるかと思いますが、TridentやWebkitなど各種レンダリングエンジンでも大きな違いなくHTMLが表示されるということでしょうか。 (ブラウザ、たとえばIE,FireFox,Chromeなどでの表示に差が出なくなる?)

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

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

いやはや・・・ HTMLは、 【引用】____________ここから どんな環境からもWebの情報を利用できるようにすべきだという方針の下に開発されている。例えば、様々な解像度や色深度のグラフィックディスプレイを持つPCや、携帯電話、モバイル機器、音声入出力機器、帯域が広いコンピュータや狭いコンピュータ、等の環境である。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Introduction to HTML 4 (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.2.1 )]より  点字端末や、携帯電話やスクリーンリーダーで同じ表示???なんて無理でしょう。  HTMLは、文書を読み解き,それを構成する要素(Element)に分解し、それぞれの要素(Element)が何であるかをタグを使ってマークアップする方法です。  ひとつの段落なら<p></p>で、見出しなら<h1></h1>で、表であるなら<table>で。。。  どのように表示するかは、HTMLにはまったく関係ありません。スクリーンリーダーでしたら段落前後で一呼吸おくでしょうし、男性の声で読むようにスタイルシートで指定してあれば男声で読み上げられるでしょう。 ★また★  W3CのValidatorであっても、本来は段落でないのに、行間を空けるために<p></p>で囲まれていても判断はできないでしょう。 >ブラウザは、レンダリングエンジン(TridentやWebkitなど)によって、HTMLの構文違いでちょっとした表示の違いなどを生むと思います。  これは違います。従来(HTML5より前)のHTMLでは、doctypeによって構文が定められていました。 (例)P要素にはブロック要素を含むことができない。A要素は行内要素しか含むことができない。OLやUL要素にはLI要素を一つ以上持つ・・など  この構文が誤っている場合のブラウザの処理は定められていませでしが、ブラウザはそのような場合も適当に解釈して構文として成立させてきました。(そうするべきとされていた)  そのため、その構文解釈がブラウザによって異なっていた  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  という限定的な意味です。それをどのようにレンダリングするかとはまったく別の問題です。 >そんな中、W3Cという認証がHTMLにはあると思います。  あくまで、文法上のチェックであって、内容との齟齬までは判断できません。またブラウザがどのように表示するべきかも無関係です。 >この認証は100点を取ってればいいと記載されてるかと思いますが、TridentやWebkitなど各種レンダリングエンジンでも大きな違いなくHTMLが表示されるということでしょうか。  いいえ、典型的な例が、標準モードと互換モードの差です。文書宣言<doctype>とマークアップが正しかったとしても、ブラウザ(特にIE)は、それをどのように表示するかはブラウザの仕様によります。  ⇒doctypeスイッチ - Google 検索( http://www.google.co.jp/#hl=ja&gs_rn=1&gs_ri=hp&cp=11&gs_id=az&xhr=t&q=DOCTYPE%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81&es_nrs=true&pf=p&tbo=d&sclient=psy-ab&oq=DOCTYPE%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81&gs_l=&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.&bvm=bv.41524429,d.dGY&fp=b1b54db026cf473a&biw=1024&bih=618 )  HTML5では、基本的にDOCTYPEを文書宣言としては用いず、単に標準モードへの切り替えスイッチして用いること。間違った構文をどのように解釈するかも定められていることから、現在の多くのscreenメディアに分類されるブラウザは、標準モードで描画しますから、どのブラウザでも表示の差はなくなると期待されています。--相変わらずIEが足を引っ張ってますが--- ★大事なことは、 1) HTMLではひたすら文書構造だけを正しくマークアップすることだけにすること。   W3CのValidatorやAnother HTML-lint( http://www.htmllint.net/html-lint/htmllint.html )では、内容との齟齬は判断できません。   すくなくともHTML4.01strictを使用しましょう。transitinalやframesetは使わない。   『HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/conform.html#h-4.1 )』 2) プレゼンテーションはスタイルシートにすべて任せること   すくなくともCSS2.1がウェブ標準とされていますから、それによって指定すること。   IEの場合は、いまだにIE7,8も多く使われているので配慮が必要

nao-221
質問者

お礼

返事が遅くなりましたが、丁寧な回答を頂きありがとうございました。 久々にHTMLのことを人からふと聞かれて疑問になり投稿しましたが、スタイルシートの存在を忘れておりました。

その他の回答 (2)

  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

W3C仕様は、全ての動作を定義しているわけではありません。 そして、定義外の動作がブラウザ毎の表示の差に繋がります。 例えば、適度に端折っても解釈してくれたり、端折ったりするのは不可としたりですね。 バグを除けば、たしかに大きな違いなく表示されるのですが、 その小さな違いを指摘されるのがHTMLです。どうしても差異はありますよ。

nao-221
質問者

お礼

返事が遅くなりましたが、丁寧な回答を頂きありがとうございました。

  • notnot
  • ベストアンサー率47% (4900/10361)
回答No.1

HTMLは、ページの構造を示すだけで、どう表示されるかはスタイルシートで設定します。 従って、正しいHTML構文だと言うだけで、どのブラウザでも同じ表示になるわけではありません。 デフォルトのスタイルはブラウザによって違います。

nao-221
質問者

お礼

返事が遅くなりましたが、丁寧な回答を頂きありがとうございました。 久々にHTMLのことを人からふと聞かれて疑問になり投稿しましたが、スタイルシートの存在を忘れておりました。