VoiceOverと同じように機能するiPhone用の支援アプリケーションを構築することは可能ですか?(UIAccessibility APIを使用)-明確にするために、VoiceOverと同じようにスクリーンリーダーを作成します。または、VoiceOverはiOSデバイスで動作することが許可されている唯一の支援技術ですか?
3 に答える
はい、独自のスクリーンリーダーテクノロジーを独自のアプリに組み込むことができます。
CMU FLiteなどの独自の音声合成ライブラリを含めると、VoiceOverほど良く聞こえない場合があります。また、プライベートな支援動作をサポートするために、アプリのすべてのUIおよびテキストオブジェクトにカテゴリをサブクラス化または追加します。
iOS App Storeには、VoiceOverをオンにすることなく、アプリの一部のビュー内で限定されたカスタム音声支援を実行する会話型アプリがいくつかあります。(広告:私のトーキングチューナーはその一例です。)
あなたの支援技術はあなた自身のアプリ内でのみ機能し、SiriやVoiceOverのように物理的なボタンや他のアプリと対話することはできません。
VoiceOverは現在iOS上で唯一の支援技術アプリであり、Appleはそれをそのように維持すると私は思う。スクリーンリーダーをパッケージ全体の一部にすることには、サードパーティのアプリを許可するのではなく、次のような多くの利点があります。
スクリーンリーダーは、定義上、他のアプリのUIとコンテンツにアクセスできる必要があります。ここにはセキュリティとプライバシーの問題がたくさんあります。これを軽減する方法はいくつかありますが、たとえば。Androidでは、コントロールパネルで支援技術に特別な許可を与える必要があります。必要がないのに、なぜそこに行くのでしょうか。
VoiceOverが行うことのいくつか(タッチの傍受など)には、特別なシステムサポートが必要になる可能性があります。繰り返しになりますが、これは通常、どのアプリにも許可したいことではありません。スクリーンリーダーはアプリの特殊なケースであるという感覚があり、スクリーンリーダーがすべて社内でサポートをサードパーティに拡張する必要がある場合よりも、OSからの特別なサポートが必要な場合の管理がはるかに簡単です。 API、およびそのAPIは誤用から何らかの方法で保護する必要があり(上記のポイントを参照)、APIは文書化され、将来のOSリリースでサポートされる必要があります。
スクリーンリーダーが1つあるということは、アクセシビリティをテストするアプリが1つしかないことを意味します。これにより、開発者の生活が大幅に簡素化されます。iOSでは、VoiceOverでテストすれば完了です。対照的に、Windowsでは、おそらくJAWS、NVDA、そしておそらくWindowsEyesに対してもテストする必要があります。また、これらのアプリの中には、他のアプリが実行しないことを実行するものもあるため、アプリで回避策を講じる必要がある場合があります。
スクリーンリーダーがパッケージの一部であるということは、OSリリースからすぐに新しい機能で動作することも意味します。Appleは、新しいiOS機能が1日目からアクセス可能であることを保証できます。サードパーティのアクセシビリティソフトウェアでこれを行うには、サードパーティに新しいOS機能を許可する必要があります。これは、Appleほど秘密主義の企業にとってはありそうもないことです。
残念ながら、VoiceOver は現在許可されている唯一の支援技術です。VoiceOver を使用する必要がある場合は、非常に簡単です。ユーザーに識別させたい項目ごとに、次のコード行を追加するだけです。
[myView setIsAccessibilityElement:YES];
[myView setAccessibilityTraits:UIAccessibilityTraitImage];
[myView setAccessibilityLabel:NSLocalizedString(@"Image of dog", nil)];