このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

CSS speak-as プロパティ

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

Want more support for this feature? Tell us why.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

speak-asCSS のプロパティで、HTML コンテンツの読み上げ方法を定義するために使用されます。1 つから 3 つまでの列挙型キーワードによって、スクリーンリーダーやデジタルアシスタントなどの音声技術による要素やテキストのレンダリング方法が決定されます。

このプロパティは、擬似要素を含むすべてのコンテンツに適用されますが、@counter-stylespeak-as 記述子を定義して構築された ::marker 擬似要素を除きます。これは、継承された speak-as プロパティ値よりも優先されます。

構文

css
/* 単一の値の構文 */
speak-as: normal;
speak-as: spell-out;
speak-as: literal-punctuation;
speak-as: digits;
speak-as: no-punctuation;

/* 複数の値の構文 */
speak-as: spell-out literal-punctuation;
speak-as: spell-out no-punctuation;
speak-as: digits literal-punctuation;
speak-as: digits no-punctuation;
speak-as: spell-out digits literal-punctuation;
speak-as: spell-out digits no-punctuation;

normal

通常の発音規則に従い、句読点を休止に置き換えます。たとえば、"Hello, world!" は "Hello(休止)world(休止)" と発音されます。これがデフォルトの設定です。

spell-out

コンテンツは一文字ずつ読み上げられます。たとえば、"role" は "r" "o" "l" "e" と発音されます。

literal-punctuation

句読点は文字通り読み上げます。たとえば、"Hello, world!" は "Hello カンマ world エクスクラメーションマーク" と発音されます。

digits

数字は、それぞれの数字の読み方で発音します。例えば、"31" は "スリーワン" と発音します。

no-punctuation

コンテンツは、句読点を一切含まない通常の形で発音されます。たとえば、"Hello, world!" は "Hello" "world" と発音されます。

メモ: speak-as プロパティの対応状況は限定的であり、スクリーンリーダーや音声合成ソフトなどのさまざまな支援技術間で実装が統一されていません。発音に依存する重要な情報が、幅広いユーザーにとって使いやすく、アクセシブルな状態を維持するためには、この情報の音声による提示方法を定義する際、この CSS プロパティのみに依存しないようにしてください。

公式定義

初期値auto
適用対象すべての要素
継承あり
計算値specified value
アニメーションの種類離散値

形式文法

speak-as = 
normal |
spell-out || digits || [ literal-punctuation | no-punctuation ]
この構文は CSS Speech Module Level 1 による最新の標準を反映しています。すべてのブラウザーがすべての部分を実装しているわけではありません。サポート情報についてはブラウザーの互換性を参照してください。

HTML

html
<p class="normal">Hello, world! I'm 25.</p>
<p class="spell-out">Hello, world! I'm 25.</p>
<p class="literal-punctuation">Hello, world! I'm 25.</p>
<p class="no-punctuation">Hello, world! I'm 25.</p>
<p class="digits">Hello, world! I'm 25.</p>
<p class="multi">Hello, world! I'm 25.</p>

CSS

css
.normal {
  speak-as: normal;
}

.spell-out {
  speak-as: spell-out;
}

.literal-punctuation {
  speak-as: literal-punctuation;
}

.no-punctuation {
  speak-as: no-punctuation;
}

.digits {
  speak-as: digits;
}
.multi {
  speak-as: literal-punctuation digits;
}

仕様書

仕様書
CSS Speech Module Level 1
# speaking-props-speak-as

ブラウザーの互換性

関連情報