[Namazu-users-ja 26] Re: [Namazu-users-ja]検索ページの妥当性について

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2004年 7月 21日 (水) 03:34:18 JST


寺西です。

Tadamasa Teranishi wrote:
> 
> Noriki Okada wrote:
> >
> > テスト的にインデックスを作り、生成されるウェブページの妥当性を検証して
> > います。結果、テンプレートを書き換えただけでは、W3C勧告に対して妥当で
> > はない箇所があり、その報告と、簡単に修正できるものならその修正箇所を教え
> > て頂きたくて投稿します。
...
> なお、Namazu では HTML には対応していますが、XHTML には対応してい
> ません。(一部対応していますが、正式なものではありません。)

まだ、XHTML に対応したとはとてもいえるものではありませんが、少しだけ
対応しました。
とりあえず、HEAD のみ修正し、commit しました。

テンプレートを XHTML で作成した場合には、XHTML 準拠で出力するように
努力しました。(完全対応というわけではないので、まだまだ不具合はある
ものと思いますが。)
本来ですと、テンプレートの DOCTYPE を見て判断すべきところですが、
'/>' が出現した時点で XHTML とみなすという簡易な判断を行っています。
このため、'/>' を NMZ.head の最初の方で現れるように作ると良いで
しょう。

XHTML は、互換性を考慮したものではありますが、古い Web ブラウザでは
完全に対応しておらず不具合が生じることもあるようですので、デフォルトは
従来通りの HTML 出力としました。
 
なお、Namazu の HTML 構文解析処理はお粗末なものですので、テンプレートの
カスタマイズを行う場合には、注意が必要です。
・属性の指定する順番には決まりがあり、順番が異なると処理できません。
・余計な空白、改行文字を含む場合は正しく処理できない場合があります。
・属性の値は '"' ダブルクォーテーションで囲まれているものとし、
  シングルクォーテーションや、省略したものについては処理できません。

* この修正は、XHTML 文書を mknmz で処理できるようになったということ
ではありません。あくまでも namazu, namazu.cgi で使うテンプレートの話
です。

> ----------------------------------------------------------------------
> (1) 検索用(検索前)のウェブページ
> ----------------------------------------------------------------------
>   ・input要素のvalue属性が重複する。
...
>     ※NMZ.head.jaのvalue属性をなくすと、WCAG 1.0に違反。

NMZ.head の query には value属性がないことが前提となっていました。
これを input タグの name="query" で、value="..." を記述できるように修正
しました。

つまり、

<input type="text" name="query" value="..." .... >

という形式なら value属性が重複しないようになりました。
input タグの属性は、type, name, value の順で並んでいる必要があります。

> >   ・br要素の開始タグが不正。
> >     (誤)
> >     <strong>現在のリスト: 1 - 10</strong><br>
> >     (正)
> >     <strong>現在のリスト: 1 - 10</strong><br />

テンプレートが XHTML で書かれていると判断した場合には、<br /> を出力
するようにしました。
  
> >   ・</A>要素名が大文字になる。
> 
> HTML の文法上 </A> が大文字であっても正しいです。ただ、小文字の方が
> 良いとは思うので、該当箇所のソースを小文字に書き換えれば良いでしょう。

こちらは、HTML でも </a> を出力するように修正しました。

> > ----------------------------------------------------------------------
> >   2.NMZ.head.jaにインデックス選択用のチェックボックスをおき、checked="
> >     checked"とする。このチェックを入れたまま検索した場合、発生する現象。

checked="checked" または checked='checked' も認識するようにしました。
テンプレートが HTML と認識した場合は、出力は checked とし、
XHTML と認識した場合には checked="checked" と出力するようにしました。

<input type="checkbox" name="idxname" ...>
なお、こちらも input の後、type, name の順に並んでいる必要があります。

同様に selected="selected" selected='selected' も認識し、
テンプレートが HTML と認識した場合は、出力は selected とし、
XHTML と認識した場合には selected="selected" と出力するようにしました。

<select name= ...>
select の次に name の順に並んでいる必要があります。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




Namazu-users-ja メーリングリストの案内