ブラウザの画像ラベル自動生成が普及した近未来における代替テキストの妄想

Edge が代替テキストの設定されていない画像に対して、自動生成されたラベルを提供するようになったそうです。

alt="" のように alt 属性値が空とされた画像や小さなアイコン画像が除外される面も含めて、2019年に Chrome に実装された機能(www.blog.google)と同様なものと思われます。

今後 Firefox や Safari 、あるいは各種モバイルブラウザにも導入が進む可能性もありそうですが、将来的に多くのブラウザが有する機能になった場合、どういうことが起こりうるか考えてみました。

  1. 画像ラベルが自動生成されるケース
  2. 画像ラベル自動生成は当たり前になるのか
  3. alt 属性がないときの画像非表示環境の動作
  4. 近未来における、不適切な代替テキストが書かれた場合の懸念

画像ラベルが自動生成されるケース

§

まず前提として、どのような場合にラベルが自動生成されるのかを軽く説明します。

冒頭に挙げた Edge Blog の記事によると、代替テキスト未設定の画像において自動生成が除外されるケースとして以下の4つが挙げられています。

  • 制作者によって装飾的(www.w3.org)とされた画像(alt="" のように alt 属性値が空とされた場合)
  • 50 × 50 ピクセル未満の画像(アイコンサイズ以下)
  • 大きすぎる画像
  • Vision API によってポルノ、残酷、性的描写に分類された画像
  • ちなみに「50 × 50 ピクセル未満」の条件について実際にテストしてみたところ、HTML の width, height 属性や CSS の width, height プロパティで縮小表示したケースは関係なく、あくまで画像そのものが小さい場合にのみ除外されるようです。

逆に言うと、以下のすべての条件を満たす場合、ラベル自動生成の対象になります。

  • ユーザーがブラウザ設定で自動生成の機能を有効にしている
  • img 要素の alt 属性が書かれていない(alt="" ではなく、属性そのものが存在しない)
  • 小さなアイコンではなく、幅と高さがいずれも 50px 以上の大きさがある
  • 巨大すぎる画像ではない
  • ポルノ、残酷、性的描写と判断される画像ではない

画像ラベル自動生成は当たり前になるのか

§

現状 Edge はこの機能がデフォルトでは有効になっておらず、ユーザーが明示的に設定変更をしなければなりません。

実際に動作を確認してみると、設定で機能を有効にし、なおかつスクリーンリーダーを立ち上げており[1]、そのうえで Web ページの画像部分に読み上げが到達した場合に初めて API との通信が行われます。

画像を目で見る大多数のユーザーにとっては必要性の薄い機能ですから、無駄な API 通信を避けるためにデフォルトではオフになっていると考えると、逆にこの機能を必要としているユーザーでも機能の存在に気づかなかったり、図書館やインターネットカフェでのゲスト利用等の理由で設定変更できないケースは多いと思います。すなわち、仮に将来的にすべてのブラウザが自動生成機能を実装したとしても必要な人が常にその恩恵にあずかれる可能性は低いのではないかと思います。

またプライバシー上の理由から、ユーザーがこの機能を有効にしているかどうかを Web サイトの運営側が知る方法は存在しません。このため、制作者は自動生成機能の存在に頼ってはいけないと思います。これはこの機能に限ったことではなく、 CSS にしろ JavaScript にしろ昔も今も同じことで、それらの機能が有効でなくても情報へのアクセスが阻害されないように設計するべきです。

もちろん実際にどう発展してゆくかは分かりませんが、可能性の一つとして「現在人間の手入力に頼っている代替テキスト提示の一部が AI に代わられる」可能性を考慮しつつ、適切な代替テキストが書ける人は今までとやり方を変える必要はないと思います。

一方で考慮すべきことはあるので、それを書いてみます。

alt 属性がないときの画像非表示環境の動作

§

本題に入る前に(実はまだ本題ではない)、先に挙げた自動生成の条件のうち「img 要素の alt 属性が書かれていない」ケースについて HTML 仕様とブラウザの動作をおさらいします。

原則論をいえば、ほとんどのケースにおいて alt 属性を省略してはいけません。省略が認められるのは、 CAPTCHA 画像や画像投稿サービスのように運営者が画像内容を関知できない場合など例外的なケースのみです[2]。その場合ですら <figcaption> 要素や title 属性にてテキストデータを提示しなければなりませんから、ラベルをまったく提示しなくて良いケースというのは HTML メールなど私的な通信に限られます[3]

しかし現実は残念なことに alt 属性がなく、 <figcaption> 等でのラベルも提示されていない Web ページは今も多数存在します。そういうときに、いくつかのブラウザはユーザーに少しでも情報を提示しようと、画像のファイル名や(リンク画像の場合は)リンク先 URL の一部を伝えるものも存在しますが、画像ファイル名が単なる連番やランダム文字列だったりしてまったく意味が伝わらないことも多い状況です。

近未来における、不適切な代替テキストが書かれた場合の懸念

§

ここからが本題であり、かつ仮定の未来に対する妄想を多分に含みます。

もし将来的に多くのブラウザが画像ラベル自動生成機能を有することになった場合、どうなるか。私は最近、不適切な代替テキストが設定されるくらいなら AI に任せた方が良くなるかもしれないということを考えています。

例えば Twitter は画像の代替テキストを設定できる機能が2016年に追加(blog.twitter.com)されました。導入から6年経ってなお、個人、法人問わず未設定のツイートが圧倒的多数ですが、それでも少しずつ認知が進んでいるように見受けられます[4]。ただ残念なのは、一部のアカウント運営者は代替テキストとキャプションを混同しているのか、画像のタイトルを設定しているケースが散見されることです[5]。現状ではそれでも何も設定しないよりはマシかもしれませんが、画像ラベル自動生成が当たり前になった未来ではどうでしょうか。

Twitter の Web 画面は2022年3月現在、代替テキストが未設定の画像は一律で alt="画像" となります。昔は alt="" だったと思いますが、いずれにせよこれはシステム側で変更可能なものです。 Twitter 社が必要と感じれば alt 属性なしにすることも可能でしょう。

前章でも少し言及しましたが、ユーザーによる画像投稿サービスにおいて、適切な代替テキストが提示できない場合は別途ラベルを提示した上で alt 属性なしにすることも一つの正しい選択肢です。 HTML 仕様書のガイドラインから引用します。

In some unfortunate cases, there might be no alternative text available at all,

(中略)

because the page is being generated by a script using user-provided images where the user did not provide suitable or usable alternative text (e.g. photograph sharing sites),

(中略)

In such cases, the alt attribute may be omitted, but one of the following conditions must be met as well:

4.8.4.4 Requirements for providing text to act as an alternative for images - Images whose contents are not known(html.spec.whatwg.org)

ページが、ユーザーが適切なまたは有用な代替テキストを提供できない場所でのユーザーが提供する画像を使用するスクリプトによって生成されている(たとえば写真共有サイト)、

(中略)

などの、一部の不幸な例において、使用可能な代替テキストがまったく存在しないかもしれない。

そのような場合、alt属性を省略してもよいが、次のいずれかの条件をさらに満たさなければならない:

4.8.4.4 画像に対して代替として動作するテキストを提供に対する要件 - コンテンツが未知である画像(momdo.github.io)

しかし Twitter をはじめ画像投稿サービスやブログの多くは、画像がリンクになっていることから alt 属性なしにすることもできず、次善の措置として alt="画像" であったり、画像ファイル名を alt に適用したりする対策が行われているのだと思います。

現時点ではそれが最適解かもしれませんが、もし AI による自動生成が一般的になったら、 HTML 上は alt 属性なしにしたうえで、代替テキストの生成を AI に任せる方がユーザーの利便性が高まるようになるかもしれません。

ところが、そのときに問題になってくるのが不適切な代替テキストが設定されたケースです。代替テキストが設定されていなければ「AI に任せる」選択肢が生まれますが、下手に代替テキストが設定されているとそれを無視するわけにもいきません。設定された代替テキストが適切か否かまで AI が判断できるようになれば良いのですが、それは実現可能だとしても遠い未来の出来事でしょう。

とすると、今は「最適でなくとも付けないよりはマシ」である不適切な代替テキストが、近い将来テキトーな代替テキストを付けるくらいなら付けない方がマシだったということになりかねないのではと思います。

「代替テキストを付ける」という行動をしている時点で、ある程度のリテラシーと良識があるわけですが、知識が追いついていないばかりに却って事態を悪化させてしまう可能性があるならばそれは悲しいことなので、もう一歩進んで適切な代替テキストとは何かを考えてみると、代替テキストを人間だけでなく AI も考えるのが当たり前になった未来が来ても対応できるのではないかと思う次第です。