2013-07-08 17 views
8

Sto cercando di migliorare l'accessibilità della mia applicazione Delphi agli utenti ipovedenti. La mia applicazione utilizza molti componenti GUI personalizzati. Discendono per lo più da TWinControl o TGraphicControl.Come rendere visibili i controlli GUI personalizzati agli screen reader?

I miei componenti personalizzati sembrano essere invisibili durante il test con NVDA. Ad esempio, NVDA risponderà leggendo il nome del controllo (o altri dettagli) quando si muove il mouse su controlli Delphi VCL regolari come pulsanti o moduli. Al contrario, NVDA non risponde affatto quando si passa il mouse su uno dei miei controlli personalizzati.

Come si rendono visibili i componenti personalizzati su NVDA e altri software di lettura dello schermo?

+2

possibile duplicato di [Creazione di componenti UI accessibili in Delphi] (http://stackoverflow.com/questions/16320914/creating-accessible-ui-components-in-delphi) L'eccellente risposta di Remy a questa domanda ti guiderà alla soluzione –

+1

@DavidHeffernan Grazie per il link. Non penso che questa domanda sia un duplicato esatto. La risposta di Remy riguarda l'implementazione di IAccessible, che è solo una delle possibili API che potrebbero essere implementate. – Shannon

risposta

4

Trovato la risposta nella pagina NVDA Design Overview. NVDA utilizza una serie di API di accessibilità per raccogliere informazioni sui controlli della GUI. NVDA supporta:

Sembra che avrò bisogno di implementare uno dei sopra le API. Non sono sicuro di quali siano i pro e i contro di ciascuna API.

Creating Accessible UI components in Delphi fornisce dettagli sull'implementazione di IAccessible. (Grazie per il collegamento David)

+1

Ho il sospetto che MSAA sia più facile da implementare rispetto a UIAutomation. Penso anche che il vecchio MSAA avrà un supporto più ampio rispetto al più recente UIAutomation. Pertanto, a meno che non sia necessario supportare funzionalità disponibili solo in UIAutomation, è possibile che venga offerto un servizio migliore con MSAA. –