Jintrick.netagenda2002年06月アーカイブ → 2002年06月03日

画像のwidthとheight - 2 -

ろばQさんから再反論を頂きました。論点がずれているとのことですが、自説のコアに有利な仮説を立てて説得力を補うのは、不特定多数の読者を説得するという目的の上では合理的であるという判断で行っています。が、今回はろばQさん個人の主張に対してまともな反論をする、つまりろばQさんの主張をより堅固なものにするため、という主旨で書いてみます。

結論から先に書きますと:

width、height属性を記述したことによって一部のブラウザでalt属性値の可読性が損なわれることは、ある条件の下でアクセシビリティ的に問題があるものの、致命的であるとは言い難く、また、根本的原因はwidth、height属性にはないので、width、height属性を記述べきではないとは言えない

(仮定)画像を非表示にした際、グラフィカルブラウザはIMG要素のwidth、height属性を無視するのが正しい。

不具合のあるブラウザの使用と、ユーザーの自助努力の否定を前提にすると、アクセシビリティの問題は幾らでも発生します。それをもって「致命的」と評価し、否定論を展開するのは行き過ぎだと、私は思うわけです。

「ある条件の下、起こりうる問題の指摘」であるなら、私は何も反論はできません。しかし、img tag に height、width 属性は書くべきではない。を読んだ(2002年5月24日)限りでは、「原則として否定」しているように見受けられました。誤読なのでしょうが、その2で登場したような前提が明確に記述されていないので仕方ないと思います。しかも、文書タイトルからして「原則的に書いても問題がない」とする私の考えとは真っ向から対立するものだと考えてしまったわけです。

ちなみに、私の立てた「仮定」は、正しいか否かその正当な論拠を見つけることができませんでしたが、おかしな仮定であるとは言えないことは確かです。つまりwidth、heightを無視しないことによって、何らユーザーに利益は生じませんから[仮定の信憑性]。

この仮定を破棄した場合、つまり「画像を非表示にしても、width、heightの評価を保持すべきである(保持するのが正しい挙動である)」とした場合についても考えてみます。あまり意味がありませんが。

この場合、「ユーザーが画像を再表示させることができない止むを得ない理由」を詳しく論じる必要がありましょう。私の小さな頭では:

という理由しか思いつきません(他に止むを得ない状況があるなら、それらを列挙するべきでしょう)。このサーバーの不調が原因のアクセシビリティ障害ですが、これは読んで字のごとくサーバーの不調が原因であって、width、heightの否定論の論拠とするには足りません。何か書けるとすれば「具合の悪いサーバー対策としてのwidth、heightの扱い」、という形になります。CSSに対応しているブラウザは少ない、だからCSSは駄目だ、と言えないのと同じです。

また、ろばQさんの主張への反論とは無関係ですが、私には幾つか「width、heidth属性否定論」を否定したくなる理由があります。

多くの制作者はユーザーの利益を考慮して、width、height属性を指定しています(所謂spacer.gifを除く)。target=_blankのように、何も損なわずに完全にベターな方法が存在するものを否定することとはわけが違うんです。パレート最適という言葉をご存知なら話は早いのですが、ともかく、一方は改善されるが、一方は悪化するという場合には、読者に判断材料を豊富に提供する必要があると思うのです。つまり否定論の前提は箇条書きにでもして、冒頭で明示すべきです。

もう一つ私が恐れるのは、width、height属性はプレゼンテーション要素だから、それらは外部CSSで指定すべきだ、という思想の台頭です。極右Strict派が、それを声を大にして唱え始めると、多分一般のauthorは「引き」始めます。何故ならあまりにも非効率だからです。では何故非効率になってしまうのでしょう。プレゼンテーションと文書構造は分離した方が効率的であること、それがCSSの理念の一つであるのにも拘わらず、です。それゆえ、本当にIMG要素のwidth、height属性がプレゼンテーション要素と言えるのかどうか、それは考える余地があるのだ、と、釘を刺しておきたいと思い、前回の反論を書きました。そのため、ろばQさんの主張全体に対する反論としては愚文となっています。あれは、引用させていただいた部分についてのみ、否定しにかかったものだと思われて差し支えありません。お手数をおかけしました。

部分的反応

When specified, the width and height attributes tell user agents to override the natural image or object size in favor of these values.と明言されていました。所謂プログラムのコマンド (= 命令) とは違いますが、少なくとも HTML 4.01 の仕様に沿って img と height、width を解釈するUAは可能であれば height と width の属性値通りにレタリングをせねばならない様です。

img tag に height、width 属性は書くべきではない。 その 2。 より

私はこのtellが納得いかなかったので「HTMLは命令ではない」を「仮定」としたのです。個人的には、width、heightを値通りにレンダリングせず、別の形で利用するUAがあっても問題ないと思っているからです。私は、この一端の記述ではなく、HTMLの「理念」の方を尊重します。

HTML has been developed with the vision that all manner of devices should be able to use information on the Web: PCs with graphics displays of varying resolution and color depths, cellular telephones, hand held devices, devices for speech for output and input, computers with high or low bandwidth, and so on.

Introduction to HTML 4 より

HTMLが何か特定のレンダリング方法を「指示」「命令」しだしたなら、この理念は失われます。私はHTMLは飽くまで、UAに「告げて」いる、或いは「ある概念をこう理解せよと命令」しているだけなのだ、という一貫した解釈をしています。

例えば、画像をかき集める為の専用ツール(UAの一種)は、IMG要素を解釈するでしょう。画像はレンダリングせず、ハイパーリンクリスト等を提供します。しかし、ユーザーに、その画像に指定されているwidthとheight属性値を参考情報として告げたとしたらそれは間違いでしょうか。この場合、このUAは、明らかにwidth、height属性をプレゼンテーション要素とは解釈していません。要するに、W3Cの両属性の定義が納得いかないといったところです。どうも私は信者失格らしいです。しかしまあ、「推奨しない」とは言っていませんから、まだ十分信頼はしています。が、もし今後、naturalwidth、naturalheightのような代替となる属性も定義せずに「非推奨」にされてしまったとしたら、信頼はがた落ちですね。何故なら、画像の本来の幅と高さの情報は、本質的にプレゼンテーション要素ではないからです。

もちろん定義として「画像の本来の幅と高さの情報」イコール「現存のwidth、height属性」でないことは明らかです。しかし実質的にイコールに近いからこそ、それが失われた時にユーザー体験全体として莫大な損失が予想されるわけです。W3Cの「定義」に固執する価値を、私は感じません。一応念を押しておきますが、BLOCKQUOTEタグをインデントとして利用するのとはわけが違います。インデントはCSSで代替できますし両者は全く異なる概念ですが、実質的にnatural sizeとして利用されているwidth、height属性は、CSSでは代替できません。もとい表示整形においてのみ代替可能ですが、著しく非効率です。


webmaster@jintrick.net
公開: 2002年06月03日
カテゴリ: HTML ,意見交換, 批判等