Skip to content

Glossary

テキストをアプリ間で移動させるシステムパス

macOS アクセシビリティ API は、支援ツールがテキストをアプリに直接入力する仕組みです。音声入力アプリがどのように機能するか、サポート外のアプリで何が起こるかを解説。

· 約8分

目次(4項目)
  1. 音声入力アプリがどのように使うか
  2. ペーストにフォールバックするとき
  3. 権限について
  4. これが重要な理由

macOS アクセシビリティ API は、あるアプリケーションが他のアプリケーションのキーボード入力を送信して、その内容を読み取ることを可能にするフレームワークです。音声入力の場合、トランスクリプションエンジンが生成したテキストをあなたが作業していたアプリに直接入力できます。クリップボードを経由したり、合成キーストロークを使わずにすみます。

音声入力アプリがどのように使うか

プッシュ・トゥ・トークキーを持ったまま話すと、音声入力アプリは3つのステップを実行します:

  1. 音声をテキストにトランスクライブする。
  2. テキストが着地する場所を決定する。 この決定はキーを放すときではなく、キーを押した瞬間に行われます。言葉を持つ前にアプリはどのウィンドウに入力するかを知っておく必要があるからです。
  3. アクセシビリティ API を使ってテキストを入力する。ターゲットアプリが対応していない場合はペーストにフォールバック。

アクセシビリティ API は直接ルートです。これは macOS に「これらの言葉をフォーカスのあるテキストフィールドに入力してください」と指示します。実際のキーストロークではありません(キーボード設定を通さず、キーボードショートカットをトリガーしません)。またクリップボード操作でもありません(クリップボードを変更しないでペーストが必要な場合は元の内容を復元します)。

ペーストにフォールバックするとき

一部のアプリケーションはアクセシビリティ API をサポートしていません。これには以下が含まれます:

  • パスワードフィールド。ほとんどのアプリがセキュリティ上の理由からペーストをブロック。
  • 非常に古い、または署名されていないアプリ。システムにテキスト入力インターフェースを公開していないかもしれません。
  • 一部のターミナルエミュレータと Unix ツール。実際のキーストロークではなく高レベルのテキスト挿入を期待します。
  • サンドボックス化されたアプリ。入力のまわりに権限制限がある場合があります。

アプリがアクセシビリティ API テキスト入力をサポートしていない場合、音声入力アプリはフォールバック:テキストをクリップボードにコピーして、シミュレート ⌘V を送信し、ペースト前のクリップボード内容を復元します。これはほぼすべてのアプリで機能しますが、遅く、すでにコピーしていたものは失われてから復元する必要があります。パスワードフィールドでは特殊なルールが適用されており、このシステム制限を理解することが重要です。

権限について

アクセシビリティ API を使用するには、アプリはシステムに権限をリクエストする必要があります。macOS はカーネルレベルでこれを強制します。ユーザーが明示的に許可しない限り、プロセスは API を使用できません。システム設定の「プライバシーとセキュリティ」に権限が表示されます。いつでも取り消すことができます。取り消すとアプリが完全に壊れてしまい、他のアプリに入力する方法がありません。

これはスクリーンリーダーが使う権限と同じもので、Sticky Keys と Voice Control が依存している権限です。音声入力アプリに限った権限ではありません。

これが重要な理由

音声入力ツールはこのシステム境界の上に構築されています。どんな音声入力アプリの速度、信頼性、動作は、このアクセシビリティフレームワークが提供するものと各オペレーティングシステムのバージョンが強制するものに依存しています。これが、音声入力ツールが正確にこのアクセシビリティフレームワークが許可する機能のみを約束できる理由です。あなたの実際のキーボードへの本当のアクセスや隠れたバックグラウンドリスナーが必要な機能は不可能なのです。

よくある質問

全てのアプリがアクセシビリティ API に対応している?
ほとんどのアプリが対応しています。古いアプリや独自アプリが対応していない場合は、音声入力アプリはペーストにフォールバック。テキストをクリップボードにコピーして ⌘V をシミュレートし、元のクリップボード内容を復元します。
アクセシビリティ API に特別な権限が必要?
必要です。アプリは「アクセシビリティ」権限をリクエストする必要があります。権限が付与されていない場合、アプリはテキストを入力できません。macOS がシステムレベルで強制します。
アクセシビリティ API は安全?
権限の厳格さと同じレベルです。かなり厳格です。アクセシビリティ権限を持つアプリはキーボードと同じように任意のアプリに入力できます。スクリーンリーダーとmacOS Sticky Keys が使う権限と同じです。