トピックを検索
実際のテキストの代わりに使われた文字画像
ショップがサイズ表と発送の締め切りを商品画像に描き込んでいます。alt は正しくても、スマートフォンでは画像と一緒に文字が縮み、誰も拡大、配色の変更、翻訳ができません。
<img src="linen-shirt-details.png" alt="サイズガイド(cm)。S:胸囲96…"> 問題
画像に描かれたサイズ表は、拡大も見た目の変更も翻訳もできず、スマートフォンでは読めないほど小さくなります。
衣料品のショップがリネンシャツを販売しています。商品写真の下にある1枚の画像に、サイズガイド(S、M、Lの胸囲、着丈、袖丈をcmで)と、赤い文字の「15時までのご注文は当日発送します。」が描かれています。デザイナーが幅640ピクセル、文字の大きさ16ピクセルで作ったもので、パソコンでは問題なく読めます。スマートフォンでは、ショップでよく使われる img { max-width: 100%; } によって画像が画面の幅、約330ピクセルまで縮み、文字も約8ピクセルになります。Mの胸囲を知るには、ピンチ操作で拡大し、ぼやけた表を左右に動かして探す必要があります。端末の「文字を大きく」の設定をオンにすると、商品名と価格は大きくなりますが、サイズ表は変わりません。ダークモードではページが暗くなり、サイズ表だけが明るいパネルのまま残ります。ページ内検索では「M」が見つからず、ページを翻訳してもサイズ表は日本語のままです。
サイズ表とお知らせは、ピクセルとしてしか存在しません。alt がすべての数値を繰り返しているため、スクリーンリーダーは読み上げ、1.1.1(非テキストコンテンツ)は満たしています。しかし1.4.5(文字画像)が求めるのは別のことです。技術的に文字をテキストで表示できるなら、テキストにする必要があります。HTMLの表と段落なら、デザインに必要な色、罫線、フォントを付けて、このサイズ表とお知らせを表示できます。画像はロゴではなく、言葉と数値が画像のすべてで、写真や図の中のラベルでもないため、例外にも当たりません。パソコンでページ全体を拡大すると画像も大きくなるため、1.4.4(テキストのサイズ変更)は満たせることがあります。問題は、読み手が変えるそれ以外の設定が、文字にまったく届かないことです。
買い物客の多くはスマートフォンで閲覧し、そこでは誰にとってもサイズ表が縮みます。そのため、この問題は売上にも響きます。自分のサイズが読めない客は、違うサイズを注文するか、買わずに去ります。ブラウザーの翻訳でショップを読む人には、サイズ表がまったく読めません。
10グループ中2グループに影響
- 全盲 (影響なし)
- 弱視 (影響あり)
- 色覚 (影響なし)
- ろう (影響なし)
- 難聴 (影響なし)
- 発話 (影響なし)
- 手の操作 (影響なし)
- 届く範囲・力 (影響なし)
- 認知 (影響あり)
- 光過敏 (影響なし)
- 視覚が限られる スマートフォンでは、画像と一緒にサイズ表の文字が縮み、弱視の人の多くが読める大きさを下回ります。ピンチ操作で拡大しても、表を左右に動かしながら見る文字はぼやけます。「文字を大きく」の設定、ダークモード、自分で選んだ配色も、サイズ表には反映されません。
- 言語・認知・学習の能力が限られる ディスレクシアがあり、読みやすいフォントや広い文字間隔に切り替える人や、テキストを強調しながら読み上げるツールを使う人には、サイズ表だけが変わりません。数値を選択してコピーすることもできません。
自動チェックは alt がないことを探しますが、この画像には丁寧な alt があるため、axe などのツールは合格にします。ピクセルは読めないため、表の画像と写真を区別できません。光学文字認識(OCR)は画像の中の文字を見つけられますが、時間がかかるため、たいていは大きな画像の一部にしか使われません。また英語専用のOCRでは、日本語の文字は何も読み取れません。この診断では、画像レビューを有効にしたときに大きな画像をOCRにかけます。OCRを使わなくても、表やお知らせのように読める alt(長く、数字をいくつも含む)を持つ画像と、見える内容が横長の画像だけの見出し、メニューのリンク、ボタンを、人が確認する候補として挙げます。AIによる手早い修正は、問題ではない alt を書き直しがちです。
試してみる
画面をスマートフォンの幅まで狭くして、自分のサイズを探してください。
「画面の幅」のスライダーを320pxまで動かしてください。Mの胸囲と、いつ発送されるかを読めますか?
問題あり 修正できますか?
リネンシャツ
¥8,800
再現デモです。「問題あり」は意図的にアクセシブルでない状態にしています。
修正方法
サイズ表とお知らせを画像から出して、HTMLの表と段落にし、CSSで見た目を付けます。
- 1表、価格、日付、お知らせはHTMLのテキストにし、画像の中の文字にしない。
- 2見た目はCSSとWebフォントで付け、大きさは rem か em で指定する。
- 3画像は写真、図、ロゴに使い、文字は短いラベルだけにする。
<img src="/img/linen-shirt-details.png" width="640" height="400" alt="サイズガイド(cm)。S:胸囲96、着丈68、袖丈20。M:胸囲102、着丈70、袖丈21。L:胸囲108、着丈72、袖丈22。15時までのご注文は当日発送します。"><section class="size-guide"><table> <caption>サイズガイド(cm)</caption> <thead> <tr><th scope="col">サイズ</th><th scope="col">胸囲</th><th scope="col">着丈</th><th scope="col">袖丈</th></tr> </thead> <tbody> <tr><th scope="row">S</th><td>96</td><td>68</td><td>20</td></tr> <tr><th scope="row">M</th><td>102</td><td>70</td><td>21</td></tr> <tr><th scope="row">L</th><td>108</td><td>72</td><td>22</td></tr> </tbody></table><p class="ship">15時までのご注文は当日発送します。</p></section>この方法を選ぶ理由:文字はテキストのままにする
数値はピクセルとしてしか存在しません。alt はスクリーンリーダーに同じ言葉を伝えますが、目に見える画像は画面と一緒に縮み、拡大、配色や間隔の変更、選択、翻訳ができません。
パネル、太字のタイトル、色の付いた見出し行、行の間の罫線、赤い1行は、すべてCSSで付けているため、画面が広ければ画像のときと同じ見た目になります。違うのは、数値がテキストになったことです。スマートフォンでも4つの列が元の大きさのまま収まり、端末の「文字を大きく」の設定で大きくなり、ダークモードや強制配色では色が変わり、ページ内検索や翻訳も使えます。表がすべてを伝えるため、画像と長い alt はなくなります。スクリーンリーダーも、長い1文としてではなく、見出し付きのセルごとにサイズ表を読めるようになります。
例外があるため、文字を含む画像がすべて問題になるわけではありません。文字が主役ではない絵や、見た目自体が欠かせないものは許されます。
- ロゴとブランド名:ロゴタイプは欠かせないものとみなされるため、ショップのロゴは alt 付きの画像のままで構いません。
- 写真と図:シャツの絵にA、B、Cの矢印を付けた図は、寸法自体が表にあれば画像のままで構いません。街の写真に写った看板は、写真の一部です。
- 書体見本:書体を紹介するページでは、その見た目が内容そのものなので、画像で見せても構いません。
デザインを保つ。 画像にする理由は、たいてい見た目です。Webフォント、色、罫線、角の丸いパネル、text-shadow、縦書きの writing-mode: vertical-rl など、ほとんどはCSSで再現できます。日本語のフォントは1書体で数MBあるため、unicode-range で分割して配信するサービスを使うか、使う文字だけにサブセット化し、font-display: swap と大きさの近い代替フォントを指定します。
列の多い表。 4列なら幅320ピクセルの画面に収まります。列がもっと多い表は、専用の枠の中で横にスクロールさせます(フォーカスを受け取れ、名前のある要素に overflow-x: auto)。そうすれば文字は元の大きさのままです。表を縮めて収めると、画像と同じ問題が戻ってきます。
プレーンテキストへのスイッチ。 ページの先頭近くに、文字画像をすべて実際のテキストに切り替える操作があれば、文字画像を残すこともできます(W3Cの達成方法C30)。1.4.5の「カスタマイズ可能」の例外で適合しますが、スイッチを見つけて押すまでは問題のあるページのままで、この達成方法自体も、可能ならプレーンテキストを既定にするよう求めています。最初から実際のテキストにすることを目指してください。
SVG。 文字を <text> 要素で書いたインラインのSVGはテキストで、読み上げ、選択、翻訳ができます。ただし、大きさは文字サイズではなく図に合わせて変わり、折り返しもしないため、図の短いラベルに使います。文字をアウトライン化して書き出したSVGは、再び文字画像になります。
ショップのプラットフォームと編集者。 商品説明は、説明欄に画像しか入れられないように見えるため、デザインツールで作って画像としてアップロードされることがよくあります。多くのプラットフォームでは、その欄に表と段落を入れられます。編集者が埋めるだけのサイズガイドのテンプレートを用意し、新しい商品のたびに画像に戻らないようにします。
AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得
修正の確認
マウスを使わない5つの確認
確認方法: ズーム、強制配色
OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。商品ページのテンプレートや説明欄のエディターを変更した際は、再度確認します。
制限
このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。コード内のパス、色、クラス名は仮のものです。残った画像がロゴか、文字がラベルにすぎない写真や図かは判断が必要なため、デザインと公開前のレビューに含めてください。実際の商品と実際のスマートフォンで、操作全体を確認してください。
よくある問題を再現した学習用のサンプルです。実在のクライアントの診断結果ではありません。コードは出発点となる実装例のため、実際の製品でも確認してください。ここでは支援技術でのテスト結果は報告していません。
コードを更新しても、使いやすさを保つために
ガイドの内容を、コーディングエージェントやCIで使える開発ルールにまとめます。更新後は、キーボードとスクリーンリーダーで再テストし、問題が再発していないか確認します。