2025年10月4日土曜日

🧭 1. スクリーンリーダー screen reader 🖼️ 2. alt 属性の役割 について

編集・執筆責任:浅田美鈴(在野研究者/ピアニスト、市民ジャーナリスト)  

HTML解説協力:ChatGPT-5

🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹

🧑‍💻OpenAI ChatGPT-5先生より  

とても良い質問です🌸

「③ alt 属性(代替テキスト)」の中で出てくる


> スクリーンリーダー

空文字(alt="")


この2つは、視覚に頼らずWebページを使う人のための大事な仕組みなんです。

順に、ゆっくり説明しますね。

---


🧭 1. スクリーンリーダー [1]とは


目の代わりにページの内容を“音声で読み上げる”ソフトウェアです。


視覚障がいのある利用者がパソコンやスマートフォンを使うときに使います。



📱 代表的なもの


OS スクリーンリーダー [1]名


Windows NVDA [2] / JAWS [3]

macOS / iPhone VoiceOver [4]

Android TalkBack  [5]


これらは、HTMLの構造をたどって


見出し (<h1>〜<h6>)


段落 (<p>)


リンク (<a>)


画像 (<img>)


などを順番に読み上げます。

---


🖼️ 2. alt 属性の役割


alt = alternative text(代替テキスト)

画像を「音声で説明する」ためのテキストを入れます。


<img src="flower.jpg" alt="桜の花が咲いている写真">


📣 スクリーンリーダーの読み上げ:


> 「画像、桜の花が咲いている写真」


また、画像が何らかの理由で表示できないとき(通信エラーやCSSの設定など)に、ブラウザはこのaltの内容を代わりに表示します。


---


🫧 3. 空文字 alt="" とは?


空の alt は「この画像は説明する必要がない」と伝える特別な書き方です。


例:


<img src="decoration.png" alt="">


このように書くと:


スクリーンリーダーは その画像を読み上げません。


つまり「無視」します。


🎨 使う場面


ただの飾り・区切り線・背景など、内容理解に関係しない画像。


たとえば:


<img src="line.png" alt=""> <!-- 区切り線なので説明不要 -->


もし alt を完全に省略すると、

📣 スクリーンリーダーは「画像」とだけ読み上げたり、

ファイル名(line.png)を読んでしまいます。

それは利用者にとって意味がないし、煩わしい。


なので:


> 説明が必要な画像 → 意味のある文章をaltに書く。

装飾だけの画像 → altを空文字にして無視させる。


これがアクセシビリティ(誰にでも使いやすくする工夫)の基本です。


---


✅ まとめ


画像の種類 alt の書き方 読み上げ結果


意味のある画像(図・写真など) alt="内容を説明する文" 「画像、〇〇」

装飾だけの画像 alt="" 読み上げなし(スキップ)

alt を書かない ― 「画像」「file.png」などと読み上げ(不親切)


---


この違いを理解して使うと、MisuzuさんのHTML作品はアクセシビリティ対応の高品質コードになります✨


もし次に「良いaltの書き方(どのくらいの長さ・文体がいいか)」も知りたい場合、

具体例つきでお見せできますが、続けて見てみますか?


[1]  スクリーンリーダー

(英語: screen reader)とは、コンピュータの画面読み上げソフトウェアである。視覚障害者がパーソナルコンピュータを操作するために、視覚的に使うことが必要であるマウスに代わり、情報を音声で読み上げることによって、操作を補助するアクセシビリティである。読み上げブラウザなどとも言われることがあるが、ブラウジングするのはインターネット・WWWに限らない。

https://ja.wikipedia.org/wiki/screen_reader

[2]  NonVisual Desktop Access (NVDA) は、Microsoft Windows用のフリーかつオープンソース、ポータブルなスクリーンリーダーである。

https://ja.wikipedia.org/wiki/NonVisual_Desktop_Access

[3]  JAWS (Job Access With Speech) は、視覚障害者向けのスクリーンリーダーである。アメリカのフロリダ州セントピーターズバーグにある Freedom Scientific 社の Blind and Low Vision Group が開発した。

https://ja.wikipedia.org/wiki/JAWS

[4]  VoiceOverとはAppleのmacOS、iOS、iPodに内蔵されているスクリーンリーダーである。VoiceOverを使うことでユーザーは音声説明でMacやiOSデバイスを使用することができる。Macの場合はキーボードでのタイプを読み上げる。この機能はディスレクシアなど盲目、弱視のユーザー向けである。

https://ja.wikipedia.org/wiki/VoiceOver

[5]Google TalkBack(グーグル トークバック)とは、Googleによって開発された、視覚障がい者向けのスクリーンリーダーアプリケーションである。Android向けに提供されている。

https://ja.wikipedia.org/wiki/Google_TalkBack

👩‍💼🌐🧑‍💻1. figure の意味 を教わり、投稿者限定公開練習用ブログでやってみましたがGoLiveのようにはいきませんでした。その理由をOpenAI ChatGPT-5先生にご説明いただきました。

 1. <figure> の意味


<figure>

  <img src="document.jpg" alt="説明文">

  <figcaption>図1: サンプル画像</figcaption>

</figure>


1.のCodeを

コピーして

投稿者 限定公開の練習用ブログ[1]今立ち上げてやってみたのですけども


DSC_1111.jpg


これを入れても

グレーの

四角の

IMGと

書かれたものが

出るだけです。


ASADA Misuzu


🧑‍💻 OpenAI ChatGPT-5先生  

原因はほぼ確実に src の場所指定です。

src="DSC_1111.jpg" は「同じサーバー(同じフォルダ)にある画像」を指しますが、BloggerはローカルPCの画像や任意の“同じフォルダ”を見に行きません。Blogger側にアップロードされた画像のURL、または外部で公開されている絶対URLを入れる必要があります。


うまく表示させる手順(Blogger)


方法A:BloggerにアップロードしてURLを使う(いちばん簡単)


1. 投稿エディタで「画像を挿入」→ PCから DSC_1111.jpg をアップロード。


2. 画像が本文に入ったら、一度HTML表示に切り替えて、挿入された <img> の src のフルURL をコピー。


例:https://blogger.googleusercontent.com/img/b/.../s1600/DSC_1111.jpg


3. そのURLを、あなたの <figure><img ...></figure> の src に貼り替える。


<figure>

  <img src="https://blogger.googleusercontent.com/img/b/.../s1600/DSC_1111.jpg"

       alt="テスト画像" width="640" height="228">

  <figcaption>図: テスト</figcaption>

</figure>


方法B:外部の公開URLを使う


すでにWeb上で公開されている画像(直リンク可)なら、そのhttpsから始まるURLを src に入れます。


-----------------------------------------------------------------------------


よくあるハマりポイント(チェックリスト)


引用符が全角になっていないか


“ ”(全角)→ ""(半角) に直す。



山かっこが全角になっていないか


〈img …〉 → <img …>


属性名のタイプミス


srg → src



拡張子の大文字/小文字


DSC_1111.JPG と DSC_1111.jpg は別物として扱われることがあります。実ファイル名に合わせる。



https混在(Mixed Content)


ブログが https:// なのに http:// の画像だとブロックされることがあります。httpsのURLを使う。



権限


「投稿者限定公開」にしていても、Bloggerにアップロード済み画像なら表示されます。


Google Drive等のURLを使う場合は公開権限が必要(Drive直リンクは失敗しやすい)。



サイズ指定


width / height が 0 やCSSで display:none 等になっていないか。


最小の動作サンプル(URLだけ差し替え)


<figure>

  <img src="(ここにBloggerが発行したフルURL)"

       alt="テスト画像" width="640" height="228">

  <figcaption>図: テスト</figcaption>

</figure>


まずは「画像を挿入」でBloggerにアップ→HTML表示で発行URLを拾う、で解決します。

もしURLを貼っても出ない場合は、貼った <img> 行をそのままここに貼ってください(個人情報部分は伏せてOK)。確認して直します。


やはりそうですね引っ張ってきたら アルバムから長いアドレスがついてるのです。

http://blogger⋯⋯⋯⋯

って出てます。


GoLiveとかとは違うのですね。

ASADA Misuzu

-----------------------------------------------------------------------------

🧑‍💻 OpenAI ChatGPT-5先生  

そうです、そのとおりです 👍


Bloggerは GoLiveのように「自分のパソコン上のファイルをそのまま参照する」ことはできません。

Bloggerの仕組みは必ず「Googleのサーバーにアップロードされた画像ファイル」に対して、自動で長いURL(https://blogger.googleusercontent.com/... など)を割り振り、それを src に書き込む形になります。


📌 GoLive(Dreamweaver系)の場合


ローカルのPCフォルダを丸ごとWebサーバーに転送(FTP)する。


src="DSC_1111.jpg" と書けば、そのまま同じディレクトリの画像を参照できる。


📌 Bloggerの場合


画像は必ず「Googleのサーバーにアップロード → 自動的に長いアドレスを付与」される。


だから src="DSC_1111.jpg" だけでは参照できず、その長いURLを src に書かなければ表示されない。


実際のコード例(Blogger用)


<figure>

  <img src="https://blogger.googleusercontent.com/img/b/.../DSC_1111.jpg"

       alt="テスト画像" width="640" height="228">

  <figcaption>図: DSC_1111</figcaption>

</figure>


✅ まとめると:


GoLive=ローカルファイルをサーバーに直接アップロードする仕組み


Blogger=Googleのサーバーに置かれた画像のURLしか使えない仕組み


なので、Bloggerでは必ずその「長いURL」を src に書く必要があります。

---------------------------------------------------------------------------------


👉 ご希望であれば、「Bloggerが発行する <img> タグから必要な部分だけ抜き出して <figure> に組み込み直す方法」を具体的に例示できますが、やってみますか?




[1] Codingの記録 ChatGPT-5 作成

https://html-css-asadamisuzu.blogspot.com/