tumblr

tumblr(タンブラー)は、メディアミックスブログサービス。ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。アメリカのDavidville.inc(現: Tumblr, Inc.)により2007年3月1日にサービスが開始された。

そろそろしっかりHTML その1:HTMLの概説

東日本大震災の影響による自粛ブームにのっかって、僕も1ヶ月ほどブログを書くのを自粛していたわけであります。

スマートフォン市場が半端ないくらい盛り上がっちゃってる訳で、そのあまり高機能さにガラケーゴミすぎワロタって感じです。多分これからもっとスマートフォンが普及していくと、スマートフォンからwebサイトを見られる機会が増え、しかもガラケー並みのゴミブラウザIEもスマフォには入ってないわけですから、html5とかバリバリ使えるようになっちゃって、web業界はもっと面白くなるんじゃないかなぁと思っています。
なので、そのwebで情報を提供する基盤となる技術の一つのhtmlをもっと勉強せなならんと思った訳です。pタグとbrタグってどっちも改行のための要素でしょ?とかh1やh2みたいな見出しタグってフォントの大きさ変えるためのものなんでしょ?とか思っていた2010年の僕を殺したいです。

というわけで、html4の仕様書(http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/)を自分なりの言葉で再構成しながら半写経な感じで覚書。

wwwとは何か

World Wide Web (Web)は、情報資源のネットワークである。Webは、情報資源が可能な限り多くの人々に入手可能であるよう、次の3つの機構から成り立っている。

  • URIなど、Web上の資源の所在を示す統一的な命名機構。
  • HTTPなど、命名された資源にWebでアクセスするためのプロトコル
  • HTMLなど、各資源間を容易に移動できるハイパーテキスト機構。

http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/intro/intro.html

wwwを構成している要素は3つ、ということ。wwwでの情報の取得を電話に例えると、URIが電話番号、httpがNTTが提供してるダイヤルのシステム、htmlがつながった相手との会話内容という感じだろうか。htmlはただのデータじゃなくて、データをどんな環境でも適切に共有できるための仕組みという感じなので、あまり例えが適切ではないのかもしれないけど。とにかく、これら3つの要素なしにインターネットはできないということ。電話番号がなければ相手に電話はつながらないし、番号が分かっても着信拒否されてたらこれまたやっぱり電話はできない。

HTMLとは何か

地球規模での配信を目的に情報を公開するためには、全てのコンピュータが潜在的に理解可能であるような出版用母語の一種である、世界中で理解される言語が必要となる。World Wide Webで使われる出版言語は、HTML (HyperText Markup Languageの略)である。
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/intro/intro.html

HTMLは画面をレイアウトするためではなく、文書を環境に依存せずに共有できるように記述するための約束です。そこを正しく理解すると、実はHTMLは簡単で強力な情報発信ツールになるのです。
http://www.kanzaki.com/docs/htminfo.html

なんだか少し仰々しい気もするが、とにかくHTMLは地球上のどんな計算機の環境でも、同じ意味を伝えられるような文書を構成するための言語であるということ。windowsだろうがmacだろうがlinuxだろうがどんな環境でも、フォントだとかの細かい部分のプレゼンテーションはブラウザに任せるとして、見出しや段落などの文書構造だけはとにかく一致させようじゃないかということ。

HTMLの一般原則

本仕様は、HTML 4で作業を行う著者並びに実装者に対し、次の一般原則に従うよう推奨する。
構造とプレゼンテーションの分離
HTMLは、常に構造的マーク付けを規定するところのSGMLをルーツに持っている。HTMLの性質上、プレゼンテーションに関する要素や属性は、次々と他の機構、とりわけスタイルシートに置換えられていく。 また、文書の構造をプレゼンテーションと切り離すことで広汎なプラットフォームや多様なメディアでの文書提供コストを低下でき、文書の改訂も容易になるということが、経験的に知られている。
広汎なWebアクセス性の考慮
誰にとっても、特に障害者にとってもWebをよりアクセスしやすくするため、著者は、自分の文書が音声出力ブラウザや点字出力等、様々なプラットフォームでどのようにレンダリングされるかを考慮する必要がある。 本仕様は、著者の創造性を制限しようというのではなく、設計時に代替的レンダリングのことを考慮するよう推奨するものである。 HTMLは、アクセス性方面に関して、例えば alt属性や accesskey属性など、数多くの機構を提供している。
更にまた、著者は、自分の文書が、異なる設定の計算機を利用する遠く離れた読み手にも届けられ得るということを心に留める必要がある。文書が正しく解釈されるよう、著者は文書に、何語の文書かということや、テキスト方向、文書の符号化方法、その他国際化に関わる情報を含めておかねばならない。
ユーザエージェントの逐次表示を助けること
注意深く表を設計し、HTML 4にある新しい機能を用いることで、著者はユーザエージェントがより素早く文書をレンダリングすることを助けることができる。 著者は、TABLE要素の項目を参照し、逐次表示のためにはどのように表を設計すればいいのかを学べる。 実装者は、逐次表示のアルゴリズムについて、附属書の 表に関する注意 を参照せよ。
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/intro/intro.html

正しいHTMLを書けば管理しやすくなるしレンダリングも早くなるし、何より障害のある人にも文書を伝えられるようになるから世界平和に貢献できるよ!って感じ。