2013-07-08 6 views
8

私はDelphi製アプリケーションの視覚障害者へのアクセシビリティを向上させようとしています。私のアプリケーションは多くのカスタムGUIコンポーネントを使用しています。それらは主にTWinControlまたはTGraphicControlに由来します。カスタムGUIコントロールをスクリーンリーダーに表示するにはどうすればいいですか?

NVDAでテストすると、カスタムコンポーネントが表示されないようです。たとえば、NVDAは、ボタンやフォームなどの通常のDelphi VCLコントロールにマウスを移動すると、コントロールの名前(またはその他の詳細)を読み取ることで応答します。対照的に、NVDAは私のカスタムコントロールのいずれかにマウスをかざすと全く反応しません。

カスタムコンポーネントをNVDAやその他の画面読み取りソフトウェアに表示させるにはどうすればよいですか?

+2

[Delphiでアクセス可能なUIコンポーネントを作成する](http://stackoverflow.com/questions/16320914/creating-accessible-u-components-in-delphi)Remyの優れた回答この質問はあなたに解決策を導くでしょう –

+1

@DavidHeffernanリンクをありがとう。私はこの質問が正確な重複とは思わない。 Remyの回答アドレスはIAccessibleを実装していますが、実装可能なAPIの1つのみです。 – Shannon

答えて

4

NVDA Design Overviewページで回答が見つかりました。 NVDAはいくつかのアクセシビリティAPIを使用してGUIコントロールに関する情報を収集します。 NVDAはサポートされています。

Iのいずれかを実装する必要がありますように見えます上記のAPI。各APIの賛否両論がまだ何であるかは不明です。

Creating Accessible UI components in Delphiは、IAccessibleの実装の詳細を示します。 (リンクDavidさんありがとう)

+1

私はむしろ、UIAutomationよりもMSAAを実装する方が簡単だと考えています。私はまた、古いMSAAが最近のUIAutomationよりも幅広いサポートを受けると思います。したがって、UIAutomationでのみ使用可能な機能をサポートする必要がある場合を除き、MSAAでよりうまく機能する可能性があります。 –

関連する問題