パスワードを忘れた? アカウント作成
338225 journal

Torisugariの日記: HTMLのlongdesc属性について 1

日記 by Torisugari

ウェブに限らず、コンピューター関連の機能は、日夜、新しいものが生み出されています。しかし、人間の扱いきれる量には限りがあるものですから、それは、生き残ることができないモノが沢山ある、ということでもあります。誰にも見向きもされずに、比較的早い段階で消えてくものもあれば、5年、10年、といった、この世界では由緒を誇れる年月を経たものでも、いつの間にか無くなっていたりします。裏を返せば、「化石のような時代遅れの機能だった」ということになるのでしょうか。まあ、消えていくのは、大抵の場合、ほとんどの人にとって不要なものですから、そういう意味での「惜しさ」というものはありませんが、一方で、妙に心惹かれるものがあります。

Firefoxに関して言うなら、今まさにMicrosummariesが消えようとしています。私自身は一度も使ったことがないので、その点には痛痒を感じませんが、対応ページの提供者・利用者にとっては残念なことでしょう。大局的な観点からは、失敗(と、もう、この時点で言ってしまっていいと思うんですけれど)の理由はいくつかあるでしょうけれど、機能カットの直接的な理由はメンテナンス不足、つまり、人的資源が足りていないということです。何分、ユーザーのある話ですから、この機能を拡張で再実装して軟着陸、といきたいところでしょうが、拡張に移すのは「人が足りない」という現象への解決策になっていませんからね。相応にハードなランディングになりそうです。

では、img要素のlongdesc属性について。

HTML4.01には、img要素の属性にlongdescというものがあります。これはその名(=LONG DESCription)の通り、(主に視覚障害者のために)画像に対する詳細な記述をつけるための属性です。使い方に関してはfaireal.netの「<img longdesc=...>について」が詳しいです。しかし、この属性はHTML5で廃止となりました。一見、便利そうな機能であり、放っておいても害はなさそうなのに、わざわざ「廃止」にしてしまったのです。

無論、これは様々な人の意見や思惑を反映しているのですが、とりわけ、その決定打となったのは、「The longdesc lottery(longdesc籤)」という記事でしょう。要点をまとめると、以下のようになります。

  • Googleのキャッシュから抽出した10億のimg要素のうち、longdesc属性があるのは130万(0.13%)。
  • 130万のうち、書式が間違っているものを除くと5万(4%)。
  • 5万のうち、意味が無いものを除くと1万。
  • 視覚障碍者側からも、あまり歓迎されていないように見える。

つまり、これは、2007年の時点で、「任意のimg要素に役に立つlongdesc属性がついている確率は、10万分の1である」という調査結果なのです。ちなみに宝くじで言うと、10万分の1は大体1000万円の当選確率です。例:みずほ銀行の「1000万サマー」

生データでさらっと10億を持ってこれるGoogleも凄いですが、確かに、10万分の1はかなりインパクトのある数字です。この低さの理由を挙げるなら、やはりUAの不備に言及しないわけにはいかないでしょう。実際、「longdescは使われていないので付けない方が良い」といったような文言を見た記憶があります。UA側が対応していなければ、ウェブデザイナがその「対策」をとるのは当然の話であり、そういった悪循環が高じて、この数字になってしまったのでしょう。

longdesc属性の値がURIである、ということは、ウェブサーバ側は別のファイルを用意しなければいけない、ということです。しかし、画像にだって文脈があるわけですから、ある画像について、文書Aにおける説明が、そのまま文書Bで使えるとは限りません。そうなると、URIで指定するメリットは、「同じ事を何回も書く手間を省く」という方向よりは、むしろ「マークアップを許すかどうか」、「詳細な説明方法を提供できるかどうか」という点に現れているように思われます。単純な文字情報なら、alt属性で十分ですからね。

「百聞は一見に如かず」の諺にある通り、画像・映像に由来する視覚情報を言語で説明する場合、あるいは千言万語を費やしても追いつかない、という状況は容易に想像できます。そういった場合、説明のための文章が長くなるのであれば、マークアップできたほうが確かに便利でしょう。しかし、この理想論はやはり空論であって、その結果が前述の散々な数字なのです。あのエラーの割合は、つまるところ、longdescにURIを記入しなかった、ということに他ならないのですから。

目的が崇高で一見して合理的に見えても、実用段階における方法論にささやかなケチが付けばあっけなく沈んでしまう、それを体現しているのがこのlongdesc属性ではないでしょうか。良いところも悪いところもある、というのは一般論として当然の話で、この数字を伏せてディベートをすれば結構戦える、という程度にはlongdesc要素の存在意義に説得力があると思うのですが、現実は非情なのです。

では、longdescを使わないとして、先に挙げたような状況にどう対応するのか、という問題がありますが、この答えはそれほど簡単ではありません。各人にそれぞれ主張があって、統一的な見解はないといっていいでしょう。

1つ考えられるのは、「かなり長いalt属性をつける」ということです。IEは8からalt属性がポップアップしなくなっているので、本来の意味でalt属性を使っても、さほど問題は起きなくなっています。ですから、alt属性に全ての説明を詰め込むのは理に適っています。

また、ややマニアックですが、html5ではaria-が接頭辞についた属性が正式に採用されています。「3.2.7 WAI-ARIA

Authors may use the ARIA role and aria-* attributes on HTML elements, in accordance with the requirements described in the ARIA specifications, except where these conflict with the strong native semantics described below.

ですから、画像の説明にマークアップをしたい場合、aria-descirbedby属性が本命かな、と私は思っています。もっとも、「WAI-ARIA 1.0 Authoring Practices」ではlongdescとの差別化について触れられていますが、もはや、今となっては詮の無い話でしょう。

HTML5はHTML4.01の後継規格ではありますが、完全にHTML4.01を置き換えるものではありません。音声ブラウザを含む各UAはHTML5への対応を進めるとともに、HTML4.01をサポートしつづけるべきだと思います。そういう意味では、longdesc属性は完全に死んでしまったわけではありません。ただ、現時点では将来性がないのも事実ですから、やはり、これから書くウェブページにlongdesc属性を入れるのはやめておいた方が良いでしょう。とはいえ、aria-descirbedby属性がlongdesc属性と同じ道を辿らない、とは誰にも言えないわけで、今、ベストに見える選択肢を他人に奨めるという行為にはなかなか難しいものがあります。そもそも、ハイフンがアリなら、XML系で名前空間を決めていたのは何だったのか、とか、こんなに長いのでタイプミスしないのか、とか、ariaDescribedbyがinterCaps表記で将来後悔しないのか、とか、いろいろ気になる点はあります。

最初に言ったように、栄枯盛衰(というほど栄えてもいませんでしたが)を眺めるのは興味深いものです。が、対応策が今日明日にも必要だ、という人はそんなことも言っていられないでしょう。とりあえずは、w3に置いてあるレポート「Techniques for providing useful text alternatives」が参考になると思います。少なくとも、選択肢だけは十分に用意されているのです。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

にわかな奴ほど語りたがる -- あるハッカー

読み込み中...