概要
絵文字はテキストベースのコミュニケーションにおいて感情や意図を伝える重要な要素となっている。しかし、スクリーンリーダーでの読み上げはブラウザや支援技術によって異なるため、意図した情報を正しく伝えられない場合がある。
状況
WCAGでの位置付け
WCAGでは H86: Providing text alternatives for emojis, emoticons, ASCII art, and leetspeak というテクニックを公式に提供している。これは WCAG 達成基準 1.1.1「非テキストコンテンツ」(レベルA) を満たすためのテクニック(Sufficient Technique)として位置付けられている。
絵文字は技術的にはフォント(Unicode文字)だが、意味的には画像に近い。スクリーンリーダーは絵文字に遭遇しても「これは絵文字である」とは通知せず、Unicode名をそのまま読み上げる。そのため、ユーザーはそれが絵文字なのか実際に書かれたテキストなのか判断できない場合がある。
スクリーンリーダーの読み上げ
素の <span>🥺</span> の場合、スクリーンリーダーによって読み上げが異なる。多くのスクリーンリーダーは絵文字をCLDR名(Unicode Common Locale Data Repository)で読み上げる(例:🥺の場合「pleading face」など)。
ただし、環境や絵文字の種類によって読み上げ方に差異があり、一部のスクリーンリーダーでは一貫性に欠ける場合がある。
2025年現在のネイティブサポート
NVDA 2025.xではeSpeak NGとUnicode CLDRが更新され、絵文字のローカライゼーションデータも追加されている。現代のスクリーンリーダーは絵文字をネイティブでかなり正確に読み上げるようになった。
ただし、以下の問題は存在している。
- Unicode名と実際の使用意図の不一致(例:Unicode名が「pleading face」でも、日本語では「甘え」「お願い」「ぴえん」などの意図で使用される)
- 複数の絵文字を組み合わせた場合、個別に読み上げられると意味が伝わらない
- 絵文字の修飾子(肌の色、性別など)が冗長に読み上げられる