uga.dev - A Front-end Engineer's shed

現在のテーマは「ライトモード」です。

Render Text in React Playground

Reactでテキストを出力する際の書き方の違いが、どのような読み上げの違いが生じさせるか確認してみましょう。

iOS 18 Safari + VoiceOverで読み上げが変わる様子が確認できます。

参考記事:Reactのテキストは記述の仕方で読み上げが変わってしまう件について

出力方法

💡Note

JSX(TSX)でテキストをレンダリングする際、1つのstringに結合せずにレンダリングした場合、テキストノードは分断された状態でレンダリングされます。

テンプレートリテラルを使わない場合:

<p aria-live="assertive">
  Clicked
  <!-- -->
  0
  <!-- -->
  times
</p>

テンプレートリテラルを使う場合:

<p aria-live="assertive">
  Clicked 0 times
</p>

テンプレートリテラルを使わない動作サンプル

Clicked 0 times

コードイメージ

export const Example = () => {
  const [count, setCount] = useState(0);

  function handleClick() {
    setCount(count + 1);
  }

  return (
    <>
      <p aria-live="assertive">Clicked {count} times</p>
      <button onClick={handleClick}>Click me!</button>
    </>
  );
}

𝕏拍手する

† YOUR COOKIE PREFERENCES †

当サイトは「うぇぶ⭐︎ひょーじゅん!」の二次創作を扱う非公式ファンサイトです。

  • 当サイトの画像および内容などの無断転載、加工使用、再配布、直リンクなどは禁止です。
  • 表示がおかしい場合はIE6.0以上、800×600以上の環境でご覧ください。
  • この先、BGMが自動再生されます。不要な方はBGMオフのリンクからご入場ください。

uga.dev

推奨環境:Windows XP IE6.0↑/フォントサイズ:中↑/解像度:1024x768↑

なお、ここまでの内容はすべてうそです。

当サイトでは Google社が提供するアクセス解析ツール「Google Analytics」を利用しています。

Cookieの利用に同意していただける場合はEnterからご入場ください。

もっと詳しく

「Google Analytics」は利用状況の把握およびサービス改善のためにCookieを使用して、利用者のウェブサイト訪問履歴などの情報を収集しています。

収集されたデータは匿名で集計されており、個人を特定する情報は含まれません。

「同意しない」を選択すると、Cookieを利用せずに当サイトが閲覧できます。

同意後もプライバシーポリシーページから再度拒否することができます。

詳細はGoogleのプライバシーポリシーおよびオプトアウト方法をご確認ください。