6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【HTML】alt属性内の特殊記号・機種依存文字はどう書くのが正解?

Last updated at Posted at 2021-05-25

はじめに

コードレビューをしていて、こんなコードを見かけました。
<img src="hoge" alt="Apple & Orange">

「むむむ?:thinking:
&は特殊記号だからalt属性の中でも&amp;って書くべきだよね?:thinking:

絶対的な自信を持って指摘ができなかったので
正解を知るためにいろいろ検証をしてみました!

検証端末はWindows10です。

検証

【1】ブラウザ上の表示

下記のようなテストHTMLを用意してブラウザで開きます。
故意に画像をリンク切れにして、altをテキストで表示させます。

test.html
<section class="box">
  <h1>記号&#58;アンパサンド&amp;</h1>

  <h2>参照なし</h2>
  <img src="fruit.png" alt="Apple & Orange">

  <h2>文字実体参照</h2>
  <img src="fruit.png" alt="Apple &amp; Orange">

  <h2>数値文字参照 10進数</h2>
  <img src="fruit.png" alt="Apple &#38; Orange">

  <h2>数値文字参照 16進数</h2>
  <img src="fruit.png" alt="Apple &#x26; Orange">
</section>

ブラウザでの表示はこのようになりました。
1.png

どの書き方でも&として表示されています:ok_hand:
Chrome, Firefox, Edge, IE11どれも同じ表示となりました。

【2】デベロッパーツールの表示

【1】で用意したHTMLを、ブラウザのデベロッパーツールで開いてaltの中身を表示します。
デベロッパーツールでの表示はこのようになりました。
2.png

どの書き方でも&として表示されています:ok_hand:
Chrome, Firefox, Edge, IE11どれも同じ表示となりました。

【3】Windows10 ナレーターでの読み上げ

alt属性をつける最大の理由はスクリーンリーダー(音声読み上げソフト)対応のため。
実際にスクリーンリーダーで読み上げをさせてみます。

Windows10に標準搭載されている「ナレーター」を使って確認。

Apple & Orange
読み上げ :mega:「あっぷるあんどおれんじ」

どの書き方でも「あんど」と読み上げてくれました!:ok_hand:

しかし...

テストでいろいろな特殊記号・機種依存文字を読ませていたところ
50μはどの書き方でも :mega:「ごじゅう」と読み上げられてしまい
まいくろ」をスルーする結果に:no_good:

(ナレーターは精度が低いって記事をチラ見したので「なるほど:joy:」と思いました)

【4】スクリーンリーダーでの読み上げ(NVDA)

違うスクリーンリーダーではどのような結果になるのか気になったので
NVDA」というオープンソースのスクリーンリーダーを使って確認。

Apple & Orange
読み上げ :mega:「あっぷるあんどおれんじ」

50μ
読み上げ :mega:「ごじゅうまいくろ

どの書き方でも「あんど」「まいくろ」を読み上げてくれました!!

結果

特殊記号・機種依存文字は、alt属性の中でも文字実体参照・数値文字参照で書くべき!!!

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?