このサイトの方針

この文章で書かれていることは必ずしも実行されてはいません(XML 宣言など)。未実行のものは、時間ができればやります。

文字コード

原則として XHTMLCSS の文字コードは UTF-8N を用いる( CGI は別)。

採用理由は、NT系のMicrosoft Windows、Mac OS X、LinuxやJava言語などで基本的な文字コードとして利用されているため、標準の文字コードになると思われるから。

HTML の文章型

原則として XHTML 1.0 Strict を用いる。

採用理由は、XHTML はXML であるので、将来 XML アプリケーション(SVGとかMathML)が使えるようになるであろうから。。

なぜ、1.1 ではなく 1.0 Strict を採用したかというと、2つの理由がある。まず、 1.1 では Media Typeapplication/xhtml+xml とすることが SHOULD(推奨)となっているが、ブラウザシェアトップの IE はこれをサポートしていない。そこで、 text/htmlにしてしまえばと思っても、 1.1 では Media Type を text/html にすることが SHOULD NOT (非推奨)とされている。禁止ではないが、 HTML 互換の 1.0 なら text/html は MAY (可能)となっている。次に、 1.1 では a 要素と map 要素の name 属性が使用不可だからである。詳しく言うと、 XHTML では name 属性ではなく id 属性使用することになっている。しかし、 map 要素の id 属性については Gecko と Safari が対応できてない。これらの理由により、 1.1 にすることは保留した。

XML 宣言について

このサイトの XHTML 文章では、 IE 7 以前に対してのみ XML 宣言を行っていない。

理由は、 IE 7 以前ではこの XML 宣言があると、表示モードを互換モードにしてしまうバグがあるからだ。これでは、ほかのブラウザ( Firefox やOpera )と同様の出力を得るのが困難になるため、仕方なくこのようにしている。

振り分けは SSIPHP を利用して行っている。詳細は以下のとおり。

SSI

.htaccess にて User Agent の判定。IE 7 以前のみ XML_Declaration を偽とする。

BrowserMatch .* XML_Declaration
BrowserMatch "MSIE [^7]" !XML_Declaration

ファイル先頭に判定分の挿入。XML_Declaration が真なら XML 宣言が書かれたファイルを include する。

<!--#if expr="${XML_Declaration}" -->
<!--#include virtual="/hogehoge.html" -->
<!--#endif -->
PHP

以下に示す内容のファイルを include して行う。Blog はこれでやっている。

<?php
$ua = $_SERVER['HTTP_USER_AGENT'];

if (!(ereg("Windows",$ua) && ereg("MSIE",$ua)) || ereg("MSIE 7",$ua)) {
    echo '<?xml version="1.0" encoding="utf-8"?>';
}
?>

HTML のコーディング方針

原則として XML の木構造を明示するためにすべての Section 毎に以下の例のように div 要素で囲む。

<div class="section">

  <h1>foobar</h1>

  <p>hogehoge</p>

  <div class="section">

    <h2>foobar</h2>

    <p>hogehoge</p>

  </div>

</div>

ただし、階層メニュー (hierarchical-menu)、アクセス解析に関する部分はメインの文章の一部ではないのでこれで囲わない。

自サイト内のリンクの記述方針

原則として .htaccess ファイルで Content Negotiation を有効にして、拡張子をつけない形で表記する。

拡張子をつけると、例えば .html を .shtml ( SSI を使用する場合の html の拡張子)に変更する場合、いちいちそれを変更しなければならない。しかし、Content Negotiation を使えば、サーバー側が適切なファイルを選んでくれるので、拡張子が無くても無問題なのである。

表示確認 User Agent

このサイトは管理人の手元で確認できる以下の UA で表示確認をしています。

ただし、Safari は大学で暇なときに適当に確認しているだけなので、あまり当てにはなりません。また、この文章をいちいち書き換えるのが面倒くさいので、そもそもどれもそんなにあてにはなりません。